[fight] Do not trigger map objects on dead fighter
Closed this issue · 0 comments
vincent4vx commented
Dead fighters doesn't have a cell, so calling "isOnArea" will fail.
Also check start turn effects (i.e. glyph)
java.lang.IllegalStateException: The fighter is not on a cell
at fr.quatrevieux.araknemu.game.fight.fighter.AbstractFighter.cell(AbstractFighter.java:69) ~[classes/:?]
at fr.quatrevieux.araknemu.game.fight.map.BattlefieldObject.isOnArea(BattlefieldObject.java:134) ~[classes/:?]
at fr.quatrevieux.araknemu.game.fight.map.BattlefieldObjects.onEndTurn(BattlefieldObjects.java:151) ~[classes/:?]
at fr.quatrevieux.araknemu.game.fight.turn.FightTurn.endTurnActions(FightTurn.java:187) ~[classes/:?]
at fr.quatrevieux.araknemu.game.fight.turn.FightTurn.lambda$stop$1(FightTurn.java:132) ~[classes/:?]
at java.util.ArrayList.forEach(ArrayList.java:1259) ~[?:1.8.0_372]
at fr.quatrevieux.araknemu.game.fight.turn.action.ActionHandler.terminate(ActionHandler.java:106) ~[classes/:?]
at fr.quatrevieux.araknemu.game.fight.Fight$Task.run(Fight.java:413) [classes/:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_372]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_372]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_372]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_372]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_372]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_372]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_372]