修改战斗

This commit is contained in:
1
2025-09-30 10:40:36 +00:00
parent 23fdd9e968
commit 5627458311
2 changed files with 14 additions and 18 deletions

View File

@@ -342,8 +342,7 @@ func (f *FightC) battleLoop() {
switch {
case faction.ItemID >= 30001 && faction.ItemID <= 300010: //胶囊
//todo 将血量和技能pp传回enterturn
//tt, ok := f.Our.Player.(*player.Player)
tt, ok := f.Our.Player.(*player.Player)
mo, ism := f.Opp.Player.(*player.AI_player)
if ok && ism && mo.CanCapture { //如果获取玩家
@@ -530,18 +529,15 @@ func (f *FightC) enterturn(fattack, sattack *action.SelectSkillAction) {
}
}
f.First.First = true
f.Second.First = false
var attacker, defender *input.Input
//开始回合操作
for i := 0; i < 2; i++ {
var attackeraction action.BattleActionI
if i != 0 {
if i == 0 { //
attacker, defender = f.First, f.Second
} else {
attacker, defender = f.Second, f.First
attackeraction = sattack
attacker.First = false //先手技能
}
@@ -552,9 +548,9 @@ func (f *FightC) enterturn(fattack, sattack *action.SelectSkillAction) {
return true
})
skill, ok := attackeraction.(*action.SelectSkillAction)
canuseskill := true
if !ok || attacker.CurrentPet.Info.Hp <= 0 { //还有系统选择放弃出手的
// 实际上攻击方 还有系统选择放弃出手的
if fattack.Skill == nil || attacker.CurrentPet.Info.Hp <= 0 {
attacker.AttackValue.SkillID = 0
canuseskill = false
@@ -570,11 +566,11 @@ func (f *FightC) enterturn(fattack, sattack *action.SelectSkillAction) {
SkillEntity: skill.Skill,
}) //返回本身结算,如果false,说明不能使用技能了
})
if !canuseskill || !canuseskillok { //可以使用技能
})
if !canuseskill || !canuseskillok { //可以使用技能
f.processSkillAttack(attacker, defender, skill)
skill.Skill = oldskill.(*info.SkillEntity) //还原技能效果
f.processSkillAttack(attacker, defender, skill)
skill.Skill = oldskill.(*info.SkillEntity) //还原技能效果
}
skill.Skill.Info.PP-- //减少PP

View File

@@ -19,11 +19,11 @@ func (u *Input) UseSkill(opp *Input, skill *info.SkillEntity) {
CritRate := utils.Max(skill.CritRate, 1)
//CritAtkFirst: 先出手时必定致命一击; 默认: 0
if skill.CritAtkFirst != 0 && u.FightC {
if skill.CritAtkFirst != 0 && u.FightC.IsFirst(u.Player) {
CritRate = 16
}
//CritAtkSecond: 后出手时必定致命一击; 默认: 0
if skill.CritAtkSecond != 0 && !u.First {
if skill.CritAtkSecond != 0 && !u.FightC.IsFirst(u.Player) {
CritRate = 16
}
// CritSelfHalfHp: 自身体力低于一半时必定致命一击; 默认: 0