Fix more character technique(s) that apply debuffs on attack

This commit is contained in:
Melledy
2023-12-06 04:31:51 -08:00
parent 417c8c105d
commit 6d95f2b641
4 changed files with 13 additions and 10 deletions

View File

@@ -23,12 +23,12 @@ public class SkillAbilityInfo {
// Skip if not a maze skill // Skip if not a maze skill
if (ability.getName().contains("MazeSkill")) { if (ability.getName().contains("MazeSkill")) {
skill = new MazeSkill(avatarExcel, 2); skill = new MazeSkill(avatarExcel, 1);
avatarExcel.setMazeSkill(skill); avatarExcel.setMazeSkill(skill);
actionList = skill.getCastActions(); actionList = skill.getCastActions();
} else if (ability.getName().contains("NormalAtk")) { } else if (ability.getName().contains("NormalAtk")) {
skill = new MazeSkill(avatarExcel, 1); skill = new MazeSkill(avatarExcel, 0);
avatarExcel.setMazeAttack(skill); avatarExcel.setMazeAttack(skill);
actionList = skill.getAttackActions(); actionList = skill.getAttackActions();
@@ -70,7 +70,7 @@ public class SkillAbilityInfo {
parseTask(skill, skill.getAttackActions(), t); parseTask(skill, skill.getAttackActions(), t);
} }
} }
if (skill.getIndex() == 2) { if (skill.getIndex() == 1) {
skill.setTriggerBattle(task.isTriggerBattle()); skill.setTriggerBattle(task.isTriggerBattle());
} }
} else if (task.getType().contains("AdventureFireProjectile")) { } else if (task.getType().contains("AdventureFireProjectile")) {
@@ -79,6 +79,11 @@ public class SkillAbilityInfo {
parseTask(skill, skill.getAttackActions(), t); parseTask(skill, skill.getAttackActions(), t);
} }
} }
if (task.getOnProjectileLifetimeFinish() != null) {
for (TaskInfo t : task.getOnProjectileLifetimeFinish()) {
parseTask(skill, skill.getAttackActions(), t);
}
}
} }
} }

View File

@@ -24,6 +24,7 @@ public class TaskInfo {
private List<TaskInfo> OnAttack; private List<TaskInfo> OnAttack;
private List<TaskInfo> SuccessTaskList; private List<TaskInfo> SuccessTaskList;
private List<TaskInfo> OnProjectileHit; private List<TaskInfo> OnProjectileHit;
private List<TaskInfo> OnProjectileLifetimeFinish;
public String getType() { public String getType() {
return this.$type; return this.$type;

View File

@@ -24,7 +24,6 @@ public class AvatarExcel extends GameResource {
private long AvatarName; private long AvatarName;
private DamageType DamageType; private DamageType DamageType;
private AvatarBaseType AvatarBaseType; private AvatarBaseType AvatarBaseType;
private double SPNeed;
private int ExpGroup; private int ExpGroup;
private int MaxPromotion; private int MaxPromotion;
@@ -39,7 +38,6 @@ public class AvatarExcel extends GameResource {
private transient List<AvatarSkillTreeExcel> defaultSkillTrees; private transient List<AvatarSkillTreeExcel> defaultSkillTrees;
private transient IntSet skillTreeIds; private transient IntSet skillTreeIds;
private transient String nameKey; private transient String nameKey;
private transient int maxSp;
@Setter private transient MazeSkill mazeAttack; @Setter private transient MazeSkill mazeAttack;
@Setter private transient MazeSkill mazeSkill; @Setter private transient MazeSkill mazeSkill;
@@ -73,9 +71,6 @@ public class AvatarExcel extends GameResource {
this.promotionData[i] = GameData.getAvatarPromotionExcel(getId(), i); this.promotionData[i] = GameData.getAvatarPromotionExcel(getId(), i);
} }
// Cache max sp
this.maxSp = (int) this.SPNeed * 100;
// Get name key // Get name key
Matcher matcher = namePattern.matcher(this.JsonPath); Matcher matcher = namePattern.matcher(this.JsonPath);

View File

@@ -135,9 +135,11 @@ public class BattleService extends BaseGameService {
if (isPlayerCaster) { if (isPlayerCaster) {
GameAvatar avatar = player.getCurrentLeaderAvatar(); GameAvatar avatar = player.getCurrentLeaderAvatar();
if (avatar != null && castedSkill != null) { if (avatar != null) {
// Maze skill attack event // Maze skill attack event
castedSkill.onAttack(avatar, battle); if (castedSkill != null) {
castedSkill.onAttack(avatar, battle);
}
// Add elemental weakness buff to enemies // Add elemental weakness buff to enemies
MazeBuff buff = battle.addBuff(avatar.getExcel().getDamageType().getEnterBattleBuff(), battle.getLineup().getLeader()); MazeBuff buff = battle.addBuff(avatar.getExcel().getDamageType().getEnterBattleBuff(), battle.getLineup().getLeader());
if (buff != null) { if (buff != null) {