From 53e1dfbc5b6f4d278efafaddcc7f6558c9cd088b Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Fri, 6 Jun 2014 12:50:27 +0200 Subject: [PATCH] GCW rank buffs should be granted Chances are that the actual buffs themselves aren't functional, however. --- scripts/gcw/gcwrank_imperial.py | 44 ++++++++++++++++++++++++++++++++ scripts/gcw/gcwrank_rebel.py | 44 ++++++++++++++++++++++++++++++++ src/services/gcw/GCWService.java | 5 ++++ 3 files changed, 93 insertions(+) create mode 100644 scripts/gcw/gcwrank_imperial.py create mode 100644 scripts/gcw/gcwrank_rebel.py diff --git a/scripts/gcw/gcwrank_imperial.py b/scripts/gcw/gcwrank_imperial.py new file mode 100644 index 00000000..e1021597 --- /dev/null +++ b/scripts/gcw/gcwrank_imperial.py @@ -0,0 +1,44 @@ +import sys +from resources.datatables import GcwRank + +def handleRankUp(actor, newrank): + if newrank > GcwRank.LIEUTENANT: + actor.addAbility('pvp_retaliation_ability') + + if newrank > GcwRank.CAPTAIN: + actor.addAbility('pvp_adrenaline_ability') + + if newrank > GcwRank.MAJOR: + actor.addAbility('pvp_unstoppable_ability') + + if newrank > GcwRank.LTCOLONEL: + actor.addAbility('pvp_last_man_ability') + + if newrank > GcwRank.COLONEL: + actor.addAbility('pvp_aura_buff_self_ability') + + if newrank > GcwRank.GENERAL: + actor.addAbility('pvp_airstrike_ability') + + return + +def handleRankDown(actor, newrank): + if newrank < GcwRank.LIEUTENANT: + actor.removeAbility('pvp_retaliation_ability') + + if newrank < GcwRank.CAPTAIN: + actor.removeAbility('pvp_adrenaline_ability') + + if newrank < GcwRank.MAJOR: + actor.removeAbility('pvp_unstoppable_ability') + + if newrank < GcwRank.LTCOLONEL: + actor.removeAbility('pvp_last_man_ability') + + if newrank < GcwRank.COLONEL: + actor.removeAbility('pvp_aura_buff_self_ability') + + if newrank < GcwRank.GENERAL: + actor.removeAbility('pvp_airstrike_ability') + + return \ No newline at end of file diff --git a/scripts/gcw/gcwrank_rebel.py b/scripts/gcw/gcwrank_rebel.py new file mode 100644 index 00000000..79f39731 --- /dev/null +++ b/scripts/gcw/gcwrank_rebel.py @@ -0,0 +1,44 @@ +import sys +from resources.datatables import GcwRank + +def handleRankUp(actor, newrank): + if newrank > GcwRank.LIEUTENANT: + actor.addAbility('pvp_retaliation_rebel_ability') + + if newrank > GcwRank.CAPTAIN: + actor.addAbility('pvp_adrenaline_rebel_ability') + + if newrank > GcwRank.MAJOR: + actor.addAbility('pvp_unstoppable_rebel_ability') + + if newrank > GcwRank.COMMANDER: + actor.addAbility('pvp_last_man_rebel_ability') + + if newrank > GcwRank.COLONEL: + actor.addAbility('pvp_aura_buff_self_rebel_ability') + + if newrank > GcwRank.GENERAL: + actor.addAbility('pvp_airstrike_rebel_ability') + + return + +def handleRankDown(actor, newrank): + if newrank < GcwRank.LIEUTENANT: + actor.removeAbility('pvp_retaliation_rebel_ability') + + if newrank < GcwRank.CAPTAIN: + actor.removeAbility('pvp_adrenaline_rebel_ability') + + if newrank < GcwRank.MAJOR: + actor.removeAbility('pvp_unstoppable_rebel_ability') + + if newrank < GcwRank.COMMANDER: + actor.removeAbility('pvp_last_man_rebel_ability') + + if newrank < GcwRank.COLONEL: + actor.removeAbility('pvp_aura_buff_self_rebel_ability') + + if newrank < GcwRank.GENERAL: + actor.removeAbility('pvp_airstrike_rebel_ability') + + return \ No newline at end of file diff --git a/src/services/gcw/GCWService.java b/src/services/gcw/GCWService.java index 06dfa237..902f527c 100644 --- a/src/services/gcw/GCWService.java +++ b/src/services/gcw/GCWService.java @@ -555,6 +555,11 @@ public class GCWService implements INetworkDispatch { player.setCurrentRank(newrank); player.setRankProgress((float) Math.floor(newprogress)); + + if (newrank > oldrank) + core.scriptService.callScript("scripts/gcw/", "gcwrank_" + actor.getFaction(), "handleRankUp", actor, newrank); + else + core.scriptService.callScript("scripts/gcw/", "gcwrank_" + actor.getFaction(), "handleRankDown", actor, newrank); } public List getSFPlayers() {