diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Common.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Common.java index 37d6fa2..db511b1 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Common.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Common.java @@ -17,6 +17,19 @@ public final class Common { } } } + public static void linkEffects(HitEffect effect, Project proj, GameDataElement backlink){ + linkEffects((DeathEffect) effect, proj, backlink); + if (effect != null) + { + linkConditions(effect.conditions_target, proj, backlink); + } + } + public static void linkEffects(DeathEffect effect, Project proj, GameDataElement backlink){ + if (effect != null) + { + linkConditions(effect.conditions_source, proj, backlink); + } + } public static class TimedActorConditionEffect extends ActorConditionEffect { //Available from parsed state diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java index c5accbf..58ee109 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java @@ -226,19 +226,9 @@ public class Item extends JSONElement { linkConditions(this.equip_effect.conditions, proj, this); } - if (this.hit_effect != null) { - linkConditions(this.hit_effect.conditions_source, proj, this); - linkConditions(this.hit_effect.conditions_target, proj, this); - } - - if (this.hit_received_effect != null) { - linkConditions(this.hit_received_effect.conditions_source, proj, this); - linkConditions(this.hit_received_effect.conditions_target, proj, this); - } - - if (this.kill_effect != null) { - linkConditions(this.kill_effect.conditions_source, proj, this); - } + linkEffects(this.hit_effect, proj, this); + linkEffects(this.hit_received_effect, proj, this); + linkEffects(this.kill_effect, proj, this); this.state = State.linked; } diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java index e128f82..71e7fb5 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java @@ -230,17 +230,9 @@ public class NPC extends JSONElement { if (this.droplist_id != null) this.droplist = proj.getDroplist(this.droplist_id); if (this.droplist != null) this.droplist.addBacklink(this); - if (this.hit_effect != null) { - linkConditions(this.hit_effect.conditions_source, proj, this); - linkConditions(this.hit_effect.conditions_target, proj, this); - } - if (this.hit_received_effect != null) { - linkConditions(this.hit_received_effect.conditions_source, proj, this); - linkConditions(this.hit_received_effect.conditions_target, proj, this); - } - if (this.death_effect != null) { - linkConditions(this.death_effect.conditions_source, proj, this); - } + linkEffects(this.hit_effect, proj, this); + linkEffects(this.hit_received_effect, proj, this); + linkEffects(this.death_effect, proj, this); this.state = State.linked; }