From 4f9466458433d76f3fdad367bb81326059550359 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Mon, 25 Nov 2013 17:00:32 -0500 Subject: [PATCH] Added ent skillmods, fixed attribute points in buff workshop --- scripts/buffs/buildabuff_inspiration.py | 2 ++ scripts/skillMods/face.py | 10 ++++++++++ scripts/skillMods/hair.py | 10 ++++++++++ scripts/skillMods/markings.py | 10 ++++++++++ .../BuffBuilderChangeMessage.java | 5 +++-- src/resources/common/BuffBuilder.java | 4 +++- src/resources/objects/BuffItem.java | 4 ++-- src/services/BuffService.java | 1 - src/services/EntertainmentService.java | 16 ++++++++++++---- 9 files changed, 52 insertions(+), 10 deletions(-) create mode 100644 scripts/skillMods/face.py create mode 100644 scripts/skillMods/hair.py create mode 100644 scripts/skillMods/markings.py diff --git a/scripts/buffs/buildabuff_inspiration.py b/scripts/buffs/buildabuff_inspiration.py index 5aa473b7..bfcff248 100644 --- a/scripts/buffs/buildabuff_inspiration.py +++ b/scripts/buffs/buildabuff_inspiration.py @@ -8,6 +8,8 @@ def setup(core, actor, buff): if buffWorkshop is None: return + buff.setDuration(3600) #1 hour + for BuffBuilder in buffWorkshop: core.skillModService.addSkillMod(actor, BuffBuilder.getStatAffects(), BuffBuilder.getTotalAffected()) print (' gave the skill mod ' + BuffBuilder.getStatAffects() + ' with affect of ' + str(BuffBuilder.getTotalAffected())) diff --git a/scripts/skillMods/face.py b/scripts/skillMods/face.py new file mode 100644 index 00000000..49050a23 --- /dev/null +++ b/scripts/skillMods/face.py @@ -0,0 +1,10 @@ +import sys + +# Only for entertainers? +def add(core, actor, name, base): + actor.addSkillMod(name, base) + return + +def deduct(core, actor, name, base): + actor.deductSkillMod(name, base) + return \ No newline at end of file diff --git a/scripts/skillMods/hair.py b/scripts/skillMods/hair.py new file mode 100644 index 00000000..49050a23 --- /dev/null +++ b/scripts/skillMods/hair.py @@ -0,0 +1,10 @@ +import sys + +# Only for entertainers? +def add(core, actor, name, base): + actor.addSkillMod(name, base) + return + +def deduct(core, actor, name, base): + actor.deductSkillMod(name, base) + return \ No newline at end of file diff --git a/scripts/skillMods/markings.py b/scripts/skillMods/markings.py new file mode 100644 index 00000000..49050a23 --- /dev/null +++ b/scripts/skillMods/markings.py @@ -0,0 +1,10 @@ +import sys + +# Only for entertainers? +def add(core, actor, name, base): + actor.addSkillMod(name, base) + return + +def deduct(core, actor, name, base): + actor.deductSkillMod(name, base) + return \ No newline at end of file diff --git a/src/protocol/swg/objectControllerObjects/BuffBuilderChangeMessage.java b/src/protocol/swg/objectControllerObjects/BuffBuilderChangeMessage.java index cbe6ce87..a877944a 100644 --- a/src/protocol/swg/objectControllerObjects/BuffBuilderChangeMessage.java +++ b/src/protocol/swg/objectControllerObjects/BuffBuilderChangeMessage.java @@ -64,9 +64,10 @@ public class BuffBuilderChangeMessage extends ObjControllerObject { item.setInvested(investedPoints); int maxAmount = buffer.getInt(); - item.setAmount(maxAmount); + item.setBonusAmount(maxAmount); statBuffs.add(item); + System.out.println("Added buff item with " + investedPoints + " invested points " + " which has a bonus amount of " + maxAmount); } } @@ -95,7 +96,7 @@ public class BuffBuilderChangeMessage extends ObjControllerObject { for (BuffItem item : statBuffs) { result.put(getAsciiString(item.getSkillName())); result.putInt(item.getInvested()); - result.putInt(item.getAmount()); + result.putInt(item.getBonusAmount()); } } diff --git a/src/resources/common/BuffBuilder.java b/src/resources/common/BuffBuilder.java index e372c58c..c376ae5a 100644 --- a/src/resources/common/BuffBuilder.java +++ b/src/resources/common/BuffBuilder.java @@ -54,7 +54,9 @@ public class BuffBuilder { } public int getTotalAffected() { - int totalAffected = getMaxTimesApplied() + getAffectAmount(); + // 10 * 10 = 100 + int totalAffected = getMaxTimesApplied() * getAffectAmount(); + Console.println("Total Affected: " + totalAffected + getEntBonus()); return totalAffected + getEntBonus(); } diff --git a/src/resources/objects/BuffItem.java b/src/resources/objects/BuffItem.java index 79e28b8a..8d647d4a 100644 --- a/src/resources/objects/BuffItem.java +++ b/src/resources/objects/BuffItem.java @@ -52,11 +52,11 @@ public class BuffItem { this.invested = invested; } - public int getAmount() { + public int getBonusAmount() { return bonusAmount; } - public void setAmount(int amount) { + public void setBonusAmount(int amount) { this.bonusAmount = amount; } } diff --git a/src/services/BuffService.java b/src/services/BuffService.java index 8e28b62c..50de0f71 100644 --- a/src/services/BuffService.java +++ b/src/services/BuffService.java @@ -23,7 +23,6 @@ package services; import java.nio.ByteOrder; import java.util.Map; -import java.util.Vector; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; diff --git a/src/services/EntertainmentService.java b/src/services/EntertainmentService.java index e5789cb0..896f2525 100644 --- a/src/services/EntertainmentService.java +++ b/src/services/EntertainmentService.java @@ -86,6 +86,16 @@ public class EntertainmentService implements INetworkDispatch { if (sentPacket.getAccepted() == true && sentPacket.getBuffRecipientAccepted() == 1) { System.out.println("both accepted!"); + + if (sentPacket.getBuffCost() > 0) { + CreatureObject recipientCreature = (CreatureObject) buffRecipient; + if (recipientCreature.getCashCredits() >= sentPacket.getBuffCost()) { + recipientCreature.setCashCredits(recipientCreature.getCashCredits() - sentPacket.getBuffCost()); + } else { + return; + } + } + OkMessage closeMsg = new OkMessage(); buffer.getClient().getSession().write(closeMsg.serialize()); @@ -153,11 +163,9 @@ public class EntertainmentService implements INetworkDispatch { for (BuffItem item : buffVector) { for (BuffBuilder builder : availableSkills) { if (builder.getStatName().equals(item.getSkillName())) { - builder.setEntBonus(item.getAmount()); + builder.setEntBonus(item.getBonusAmount()); buffsToAdd.add(builder); - Console.println("Added buff item: " + builder.getStatName()); - break; - } else { + Console.println("Added buff item: " + builder.getStatAffects() + " with total affect of " + builder.getTotalAffected() + " and ent bonus of " + builder.getEntBonus()); continue; } }