From 1216cf6d4579d764a240ca70bed96ad5a0f7afb0 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Thu, 6 Feb 2014 17:50:11 -0500 Subject: [PATCH 01/27] Changes to variables and MISO3 baseline --- src/main/NGECore.java | 6 +- src/protocol/swg/ChatFriendsListUpdate.java | 2 - .../mission/MissionMessageBuilder.java | 40 +++--- .../objects/mission/MissionObject.java | 126 +++++++++--------- src/services/CharacterService.java | 2 + src/services/MissionService.java | 102 ++++++++------ 6 files changed, 154 insertions(+), 124 deletions(-) diff --git a/src/main/NGECore.java b/src/main/NGECore.java index 84ca2611..b053a018 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -155,7 +155,7 @@ public class NGECore { public WeatherService weatherService; public SpawnService spawnService; public AIService aiService; - //public MissionService missionService; + public MissionService missionService; // Login Server public NetworkDispatch loginDispatch; @@ -260,7 +260,7 @@ public class NGECore { } spawnService = new SpawnService(this); aiService = new AIService(this); - //missionService = new MissionService(this); + missionService = new MissionService(this); // Ping Server try { @@ -292,7 +292,7 @@ public class NGECore { zoneDispatch.addService(playerService); zoneDispatch.addService(buffService); zoneDispatch.addService(entertainmentService); - //zoneDispatch.addService(missionService); + zoneDispatch.addService(missionService); zoneServer = new MINAServer(zoneDispatch, config.getInt("ZONE.PORT")); zoneServer.start(); diff --git a/src/protocol/swg/ChatFriendsListUpdate.java b/src/protocol/swg/ChatFriendsListUpdate.java index bd6debb0..313235d7 100644 --- a/src/protocol/swg/ChatFriendsListUpdate.java +++ b/src/protocol/swg/ChatFriendsListUpdate.java @@ -6,8 +6,6 @@ import main.NGECore; import org.apache.mina.core.buffer.IoBuffer; -import engine.resources.config.Config; -import engine.resources.config.DefaultConfig; public class ChatFriendsListUpdate extends SWGMessage { diff --git a/src/resources/objects/mission/MissionMessageBuilder.java b/src/resources/objects/mission/MissionMessageBuilder.java index 190773ad..ad024381 100644 --- a/src/resources/objects/mission/MissionMessageBuilder.java +++ b/src/resources/objects/mission/MissionMessageBuilder.java @@ -48,8 +48,8 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.put(getAsciiString(mission.getStfFilename())); buffer.putInt(0); buffer.put(getAsciiString(mission.getStfName())); - - if (mission.getCustomName() == null) { buffer.put(getUnicodeString("")); } + + if (mission.getCustomName() == null) { buffer.putInt(0); } else { buffer.put(getUnicodeString(mission.getCustomName())); } buffer.putInt(0); // volume @@ -57,10 +57,10 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putInt(mission.getMissionLevel()); buffer.putFloat(mission.getMissionStartX()); - buffer.putFloat(0); // missionStartZ + buffer.putFloat(mission.getMissionStartZ()); // missionStartZ buffer.putFloat(mission.getMissionStartY()); - buffer.putLong(0); // ?? + buffer.putLong(0); // Start Object ID if (mission.getMissionStartPlanet() == null) { buffer.putInt(0); @@ -69,13 +69,13 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { } buffer.put(getUnicodeString(mission.getMissionCreator())); - buffer.putInt(mission.getMissionCredits()); + buffer.putInt(mission.getCreditReward()); buffer.putFloat(mission.getMissionDestinationX()); - buffer.putFloat(0); // missionDestinationZ + buffer.putFloat(mission.getMissionDestinationZ()); buffer.putFloat(mission.getMissionDestinationY()); - buffer.putLong(0); // ?? + buffer.putLong(0); // Destination Object ID if (mission.getMissionDestinationPlanet() == null) { buffer.putInt(0); @@ -83,10 +83,10 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putInt(CRC.StringtoCRC(mission.getMissionDestinationPlanet())); } - if (mission.getTargetTemplateObject() == null) { + if (mission.getMissionTemplateObject() == null) { buffer.putInt(0); } else { - buffer.putInt(CRC.StringtoCRC(mission.getTargetTemplateObject())); + buffer.putInt(CRC.StringtoCRC(mission.getMissionTemplateObject())); } buffer.put(getAsciiString(mission.getMissionDescription())); @@ -107,7 +107,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.put(getAsciiString(mission.getMissionTargetName())); - WaypointObject wp = mission.getMissionAttachedWaypoint(); + WaypointObject wp = mission.getAttachedWaypoint(); if (wp == null) { buffer.putInt(0); @@ -116,7 +116,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putFloat(0); // y buffer.putLong(0); // target id buffer.putInt(0); // planet crc - buffer.put(getUnicodeString("")); + buffer.putInt(0); buffer.putLong(0); // waypoint id buffer.put((byte) 0); // color buffer.put((byte) 0x01); //active @@ -130,13 +130,14 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.put((byte) 0); buffer.put((byte) 0x01); } + int size = buffer.position(); buffer = bufferPool.allocate(size, false).put(buffer.array(), 0, size); buffer.flip(); buffer = createBaseline("MISO", (byte) 3, buffer, size); - Console.println("Bytes: " + StringUtilities.bytesToHex(buffer.array())); + //Console.println("MISO3 Bytes: " + StringUtilities.bytesToHex(buffer.array())); return buffer; } @@ -144,7 +145,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { IoBuffer buffer = IoBuffer.allocate(4, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.putInt(121); // unk + buffer.putInt(121); // server id int size = buffer.position(); buffer.flip(); @@ -191,8 +192,11 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putLong(0); - buffer.putInt(CRC.StringtoCRC(planet)); - + if (planet == null) { + buffer.putInt(CRC.StringtoCRC(object.getPlanet().name)); + } else { + buffer.putInt(CRC.StringtoCRC(planet)); + } int size = buffer.position(); buffer.flip(); buffer = createDelta("MISO", (byte) 3, (short) 1, (short) 0x06, buffer, size + 4); @@ -236,7 +240,11 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putLong(0); // Destination Object ID - buffer.putInt(CRC.StringtoCRC(planet)); + if (planet == null) { + buffer.putInt(CRC.StringtoCRC(object.getPlanet().name)); + } else { + buffer.putInt(CRC.StringtoCRC(planet)); + } int size = buffer.position(); buffer.flip(); diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index 69562ef6..0576b7be 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -37,25 +37,25 @@ import engine.resources.scene.Quaternion; @Persistent(version=0) public class MissionObject extends IntangibleObject implements IPersistent { - private float missionDestinationX; - private float missionDestinationY; - private float missionDestinationZ; - private float missionStartX; - private float missionStartY; - private float missionStartZ; - private String missionStartPlanet; - private int missionLevel; // Difficulty level displayed in details - private String missionDestinationPlanet; - private int missionRepeatCounter; // increases for each player using the mission; used for redisplaying on mission term too - private int missionCredits; - private String missionCreator = ""; - private String missionDescription = ""; - private String missionTitle = ""; - private String missionTargetName = ""; // Target object I guess? - private String missionDescId = ""; - private String missionTitleId = ""; - private String missionType; - private WaypointObject missionAttachedWaypoint; + private float destX; + private float destY; + private float destZ; + private float startX; + private float startY; + private float startZ; + private String startPlanet; + private int difficultyLevel; // Difficulty level displayed in details + private String destinationPlanet; + private int repeatCount; // increases for each player using the mission; used for redisplaying on mission term too + private int reward; + private String creator; + private String description; // TODO: Base off of a new Object, SWGString? + private String title; // TODO: Base off of a new Object, SWGString? + private String missionTargetName; // Target object I guess? + private String descId; + private String titleId; + private String type; + private WaypointObject attachedWaypoint; private String missionTemplateObject; @@ -75,28 +75,28 @@ public class MissionObject extends IntangibleObject implements IPersistent { public float getMissionStartX() { synchronized(objectMutex) { - return missionStartX; + return startX; } } public float getMissionStartY() { synchronized(objectMutex) { - return missionStartY; + return startY; } } public float getMissionStartZ() { synchronized(objectMutex) { - return missionStartZ; + return startZ; } } public void setMissionStart(float x, float y, float z, String planet) { synchronized(objectMutex) { - this.missionStartZ = z; - this.missionStartX = x; - this.missionStartY = y; - this.missionStartPlanet = planet; + this.startZ = z; + this.startX = x; + this.startY = y; + this.startPlanet = planet; } notifyObservers(messageBuilder.buildStartLocationDelta(x, z, y, planet), false); @@ -104,117 +104,119 @@ public class MissionObject extends IntangibleObject implements IPersistent { public float getMissionDestinationX() { synchronized(objectMutex) { - return missionDestinationX; + return destX; } } public float getMissionDestinationY() { synchronized(objectMutex) { - return missionDestinationY; + return destY; } } public float getMissionDestinationZ() { synchronized(objectMutex) { - return missionDestinationZ; + return destZ; } } public void setMissionDestination(float x, float y, float z, String planet) { synchronized(objectMutex) { - this.missionDestinationZ = z; - this.missionDestinationY = y; - this.missionDestinationZ = z; - this.missionDestinationPlanet = planet; + this.destZ = z; + this.destY = y; + this.destZ = z; + this.destinationPlanet = planet; } + notifyObservers(messageBuilder.buildDestinationDelta(x, z, y, planet), false); } public String getMissionDestinationPlanet() { synchronized(objectMutex) { - return missionDestinationPlanet; + return destinationPlanet; } } public int getMissionLevel() { synchronized(objectMutex) { - return missionLevel; + return difficultyLevel; } } public void setMissionLevel(int missionLevel) { synchronized(objectMutex) { - this.missionLevel = missionLevel; + this.difficultyLevel = missionLevel; } + notifyObservers(messageBuilder.buildDifficultyLevelDelta(missionLevel), false); } public String getMissionStartPlanet() { synchronized(objectMutex) { - return missionStartPlanet; + return startPlanet; } } public int getMissionRepeatCounter() { synchronized(objectMutex) { - return missionRepeatCounter; + return repeatCount; } } - public void setMissionRepeatCounter(int missionRepeatCounter) { + public void setRepeatCount(int missionRepeatCounter) { synchronized(objectMutex) { - this.missionRepeatCounter = missionRepeatCounter; + this.repeatCount = missionRepeatCounter; } } - public int getMissionCredits() { + public int getCreditReward() { synchronized(objectMutex) { - return missionCredits; + return reward; } } - public void setMissionCredits(int missionCredits) { + public void setCreditReward(int missionCredits) { synchronized(objectMutex) { - this.missionCredits = missionCredits; + this.reward = missionCredits; } notifyObservers(messageBuilder.buildCreditsRewardDelta(missionCredits), false); } public String getMissionCreator() { synchronized(objectMutex) { - return missionCreator; + return creator; } } public void setMissionCreator(String missionCreator) { synchronized(objectMutex) { - this.missionCreator = missionCreator; + this.creator = missionCreator; } notifyObservers(messageBuilder.buildCreatorNameDelta(missionCreator), false); } public String getMissionDescription() { synchronized(objectMutex) { - return missionDescription; + return description; } } public void setMissionDescription(String missionDescription, String id) { synchronized(objectMutex) { - this.missionDescription = missionDescription; - this.missionDescId = id; + this.description = missionDescription; + this.descId = id; } notifyObservers(messageBuilder.buildMissionDescriptionDelta(missionDescription, id), false); } public String getMissionTitle() { synchronized(objectMutex) { - return missionTitle; + return title; } } public void setMissionTitle(String missionTitle, String id) { synchronized(objectMutex) { - this.missionTitle = missionTitle; - this.missionTitleId = id; + this.title = missionTitle; + this.titleId = id; } notifyObservers(messageBuilder.buildMissionTitleDelta(missionTitle, id), false); } @@ -232,25 +234,25 @@ public class MissionObject extends IntangibleObject implements IPersistent { notifyObservers(messageBuilder.buildTargetNameDelta(missionTargetName), false); } - public WaypointObject getMissionAttachedWaypoint() { + public WaypointObject getAttachedWaypoint() { synchronized(objectMutex) { - return missionAttachedWaypoint; + return attachedWaypoint; } } - public void setMissionAttachedWaypoint(WaypointObject missionAttachedWaypoint) { + public void setAttachedWaypoint(WaypointObject missionAttachedWaypoint) { synchronized(objectMutex) { - this.missionAttachedWaypoint = missionAttachedWaypoint; + this.attachedWaypoint = missionAttachedWaypoint; } } - public String getTargetTemplateObject() { + public String getMissionTemplateObject() { synchronized(objectMutex) { return missionTemplateObject; } } - public void setTargetTemplateObject(String missionTemplateObject) { + public void setMissionTemplateObject(String missionTemplateObject) { synchronized(objectMutex) { this.missionTemplateObject = missionTemplateObject; } @@ -259,25 +261,25 @@ public class MissionObject extends IntangibleObject implements IPersistent { public String getMissionDescId() { synchronized(objectMutex) { - return missionDescId; + return descId; } } public String getMissionTitleId() { synchronized(objectMutex) { - return missionTitleId; + return titleId; } } public String getMissionType() { synchronized(objectMutex) { - return missionType; + return type; } } public void setMissionType(String missionType) { synchronized(objectMutex) { - this.missionType = missionType; + this.type = missionType; } notifyObservers(messageBuilder.buildMissionTypeDelta(missionType), false); } diff --git a/src/services/CharacterService.java b/src/services/CharacterService.java index 57318516..df9d5bdf 100644 --- a/src/services/CharacterService.java +++ b/src/services/CharacterService.java @@ -297,6 +297,8 @@ public class CharacterService implements INetworkDispatch { object.addObjectToEquipList(missionBag); object.addObjectToEquipList(appInventory); + core.missionService.createDefaultMissions(object); + WeaponObject defaultWeapon = (WeaponObject) core.objectService.createObject("object/weapon/creature/shared_creature_default_weapon.iff", object.getPlanet()); defaultWeapon.setDamageType("@obj_attr_n:armor_eff_kinetic"); defaultWeapon.setStringAttribute("cat_wpn_damage.damage", "0-0"); diff --git a/src/services/MissionService.java b/src/services/MissionService.java index 78fce706..ca915841 100644 --- a/src/services/MissionService.java +++ b/src/services/MissionService.java @@ -114,33 +114,27 @@ public class MissionService implements INetworkDispatch { for(int missionsAdded = 0; missionsAdded < 12; missionsAdded++) { MissionObject mission = (MissionObject) core.objectService.createObject("object/mission/shared_mission_object.iff", creature.getPlanet()); - int textId = ran.nextInt(deliveryEntries); - Console.println("Random Int Value: " + textId); - Console.println("Now the value is: " + textId); + //mission.setStfFilename("mission/mission_object"); + //mission.setStfName("destroy_mission"); - mission.setMissionLevel(5); + mission.setMissionLevel(50); + mission.setMissionStart(0, 0, 0, null); + mission.setMissionCreator(""); + mission.setCreditReward(100); - mission.setMissionStart(0, 0, 0, player.getPlanet().name); + mission.setMissionDestination(0, 0, 0, null); - mission.setMissionCreator("Waverunner"); - mission.setMissionCredits(9000); - - // TODO: Base this off of textId + f - mission.setTargetTemplateObject("object/tangible/mission/shared_mission_datadisk.iff"); - // TODO: Base this off of textId + l - mission.setMissionTargetName("Osskscosco"); - - mission.setMissionDescription("mission/mission_deliver_neutral_easy", "m" + textId + "d"); - mission.setMissionTitle("mission/mission_deliver_neutral_easy", "m" + textId + "t"); - - mission.setMissionType("deliver"); - - mission.setMissionDestination(-5962, 0, -6259, player.getPlanet().name); - deliveryCount.getAndIncrement(); + //mission.setMissionTemplateObject(missionTemplateObject); + mission.setMissionDescription("mission/mission_npc_survey_neutral_easy", "m1o"); + mission.setMissionTitle("mission/mission_npc_survey_neutral_easy", "m1t"); + mission.setMissionType("survey"); // 0x19C9FAC1 + mission.setMissionTargetName("Testing target name"); + missionBag._add(mission); + Console.println("Added mission " + missionsAdded); } return; @@ -156,28 +150,23 @@ public class MissionService implements INetworkDispatch { MissionObject mission = (MissionObject) child; int textId = ran.nextInt(deliveryEntries); - Console.println("Random Int Value: " + textId); - Console.println("Now the value is: " + textId); - - mission.setMissionLevel(5); - - mission.setMissionStart(0, 0, 0, player.getPlanet().name); - - mission.setMissionCreator("Waverunner"); - mission.setMissionCredits(9000); - - // TODO: Base this off of textId + f - mission.setTargetTemplateObject("object/tangible/mission/shared_mission_datadisk.iff"); - // TODO: Base this off of textId + l - mission.setMissionTargetName("Osskscosco"); - - mission.setMissionDescription("mission/mission_deliver_neutral_easy", "m" + textId + "d"); - mission.setMissionTitle("mission/mission_deliver_neutral_easy", "m" + textId + "t"); - - mission.setMissionType("deliver"); - - mission.setMissionDestination(-5962, 0, -6259, player.getPlanet().name); deliveryCount.getAndIncrement(); + + mission.setMissionLevel(10); + mission.setMissionStart(0, 0, 0, null); + mission.setMissionCreator("Waverunner"); + mission.setCreditReward(100); + + mission.setMissionDestination(0, 0, 0, null); + + //mission.setMissionTemplateObject(missionTemplateObject); + mission.setMissionDescription("mission/mission_npc_survey_neutral_easy", "m1o"); + mission.setMissionTitle("mission/mission_npc_survey_neutral_easy", "m1t"); + + mission.setMissionType("survey"); // 0x19C9FAC1 + + mission.setMissionTargetName("Testing target name"); + Console.println("Sent delta/'s!"); } }); @@ -207,6 +196,37 @@ public class MissionService implements INetworkDispatch { return 0; } + public void createDefaultMissions(CreatureObject player) { + for(int missionsAdded = 0; missionsAdded < 12; missionsAdded++) { + MissionObject mission = (MissionObject) core.objectService.createObject("object/mission/shared_mission_object.iff", player.getPlanet()); + + + //mission.setStfFilename("mission/mission_object"); + //mission.setStfName("destroy_mission"); + + mission.setMissionLevel(50); + mission.setMissionStart(0, 0, 0, null); + mission.setMissionCreator(""); + mission.setCreditReward(100); + + mission.setMissionDestination(0, 0, 0, null); + + //mission.setMissionTemplateObject(missionTemplateObject); + mission.setMissionDescription("mission/mission_npc_survey_neutral_easy", "m1o"); + mission.setMissionTitle("mission/mission_npc_survey_neutral_easy", "m1t"); + + mission.setMissionType("survey"); // 0x19C9FAC1 + + mission.setMissionTargetName("Testing target name"); + + TangibleObject missionBag = (TangibleObject) player.getSlottedObject("mission_bag"); + missionBag._add(mission); + + Console.println("Added mission " + missionsAdded); + } + Console.println("Successfully created default missions"); + } + @Override public void shutdown() { From e19c0048a5c45acf02b69990a02312a67d7d7817 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Fri, 14 Feb 2014 17:57:18 -0500 Subject: [PATCH 02/27] Changed MISO6, Added MISO8 and MISO9 baselines --- .../mission/MissionMessageBuilder.java | 31 +++++++++++++++++-- .../objects/mission/MissionObject.java | 2 ++ src/services/MissionService.java | 7 +++-- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/resources/objects/mission/MissionMessageBuilder.java b/src/resources/objects/mission/MissionMessageBuilder.java index ad024381..ff874ee2 100644 --- a/src/resources/objects/mission/MissionMessageBuilder.java +++ b/src/resources/objects/mission/MissionMessageBuilder.java @@ -143,9 +143,12 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { public IoBuffer buildBaseline6() { - IoBuffer buffer = IoBuffer.allocate(4, false).order(ByteOrder.LITTLE_ENDIAN); + IoBuffer buffer = IoBuffer.allocate(18, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.putInt(121); // server id + buffer.putShort((short) 3); + buffer.putInt(76); // server id + buffer.putLong(0); // detail stf + buffer.putInt(0xFFFFFFFF); // unknown int size = buffer.position(); buffer.flip(); @@ -154,6 +157,30 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } + public IoBuffer buildBaseline8() { + IoBuffer buffer = IoBuffer.allocate(2, false).order(ByteOrder.LITTLE_ENDIAN); + + buffer.putShort((short) 0); // unknown + + int size = buffer.position(); + buffer.flip(); + buffer = createBaseline("MISO", (byte) 8, buffer, size); + + return buffer; + } + + public IoBuffer buildBaseline9() { + IoBuffer buffer = IoBuffer.allocate(2, false).order(ByteOrder.LITTLE_ENDIAN); + + buffer.putShort((short) 0); // unknown + + int size = buffer.position(); + buffer.flip(); + buffer = createBaseline("MISO", (byte) 9, buffer, size); + + return buffer; + } + public IoBuffer buildStfDelta(String stfFile, String stfName) { IoBuffer buffer = IoBuffer.allocate(4 + stfFile.length() + stfName.length(), false).order(ByteOrder.LITTLE_ENDIAN); diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index 0576b7be..5855d4b3 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -302,6 +302,8 @@ public class MissionObject extends IntangibleObject implements IPersistent { destination.getSession().write(messageBuilder.buildBaseline3()); destination.getSession().write(messageBuilder.buildBaseline6()); + destination.getSession().write(messageBuilder.buildBaseline8()); + destination.getSession().write(messageBuilder.buildBaseline9()); } } diff --git a/src/services/MissionService.java b/src/services/MissionService.java index ca915841..c7135da7 100644 --- a/src/services/MissionService.java +++ b/src/services/MissionService.java @@ -110,8 +110,9 @@ public class MissionService implements INetworkDispatch { final int bagSize = core.objectService.objsInContainer(creature, missionBag); Console.println("Delivery Entries: " + deliveryEntries); - if (bagSize != 12) { - for(int missionsAdded = 0; missionsAdded < 12; missionsAdded++) { + if (bagSize != 10) { + for(int missionsAdded = 0; missionsAdded < 10; missionsAdded++) { + // object/mission/shared_mission_object.iff MissionObject mission = (MissionObject) core.objectService.createObject("object/mission/shared_mission_object.iff", creature.getPlanet()); @@ -197,7 +198,7 @@ public class MissionService implements INetworkDispatch { } public void createDefaultMissions(CreatureObject player) { - for(int missionsAdded = 0; missionsAdded < 12; missionsAdded++) { + for(int missionsAdded = 0; missionsAdded < 10; missionsAdded++) { MissionObject mission = (MissionObject) core.objectService.createObject("object/mission/shared_mission_object.iff", player.getPlanet()); From a1556032b46030fedbe866cb1a2cf15a81e8e353 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Sat, 15 Feb 2014 15:00:46 -0500 Subject: [PATCH 03/27] Mission deltas send to client only --- .../mission/MissionMessageBuilder.java | 78 +++++++++++++- .../objects/mission/MissionObject.java | 54 +++++++--- src/services/MissionService.java | 102 +++++++----------- 3 files changed, 149 insertions(+), 85 deletions(-) diff --git a/src/resources/objects/mission/MissionMessageBuilder.java b/src/resources/objects/mission/MissionMessageBuilder.java index ff874ee2..eb84b539 100644 --- a/src/resources/objects/mission/MissionMessageBuilder.java +++ b/src/resources/objects/mission/MissionMessageBuilder.java @@ -68,7 +68,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putInt(CRC.StringtoCRC(mission.getMissionStartPlanet())); } - buffer.put(getUnicodeString(mission.getMissionCreator())); + buffer.put(getUnicodeString(mission.getCreator())); buffer.putInt(mission.getCreditReward()); buffer.putFloat(mission.getMissionDestinationX()); @@ -110,13 +110,13 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { WaypointObject wp = mission.getAttachedWaypoint(); if (wp == null) { - buffer.putInt(0); + buffer.putInt(0); // cell buffer.putFloat(0); // x buffer.putFloat(0); // z buffer.putFloat(0); // y buffer.putLong(0); // target id buffer.putInt(0); // planet crc - buffer.putInt(0); + buffer.putInt(0); // name buffer.putLong(0); // waypoint id buffer.put((byte) 0); // color buffer.put((byte) 0x01); //active @@ -127,7 +127,9 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putFloat(wp.getPosition().y); buffer.putLong(0); buffer.putInt(CRC.StringtoCRC(wp.getPlanet().name)); - buffer.put((byte) 0); + buffer.put(getUnicodeString(wp.getName())); + buffer.putLong(mission.getObjectId() + 1); + buffer.put(wp.getColor()); buffer.put((byte) 0x01); } @@ -361,7 +363,73 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } - + + public IoBuffer buildMissionDelta() { + IoBuffer buffer = IoBuffer.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN); + buffer.isAutoExpand(); + + MissionObject mission = (MissionObject) object; + + buffer.putShort((short) 0x05); + buffer.putInt(mission.getMissionLevel()); + + buffer.putShort((short) 0x06); + buffer.putFloat(mission.getMissionStartX()); + buffer.putFloat(mission.getMissionStartZ()); + buffer.putFloat(mission.getMissionStartY()); + buffer.putLong(0); + buffer.putInt(CRC.StringtoCRC(mission.getMissionStartPlanet())); + + buffer.putShort((short) 0x07); + buffer.put(getUnicodeString(mission.getCreator())); + + buffer.putShort((short) 0x08); + buffer.putInt(mission.getCreditReward()); + + buffer.putShort((short) 0x09); + buffer.putFloat(mission.getMissionDestinationX()); + buffer.putFloat(mission.getMissionDestinationZ()); + buffer.putFloat(mission.getMissionDestinationY()); + buffer.putLong(0); + buffer.putInt(CRC.StringtoCRC(mission.getMissionDestinationPlanet())); + + buffer.putShort((short) 0x0A); + buffer.putInt(CRC.StringtoCRC(mission.getMissionTemplateObject())); + + buffer.putShort((short) 0x0B); + buffer.put(getAsciiString(mission.getMissionDescription())); + buffer.putInt(0); + buffer.put(getAsciiString(mission.getMissionDescId())); + + buffer.putShort((short) 0x0C); + buffer.put(getAsciiString(mission.getMissionTitle())); + buffer.putInt(0); + buffer.put(getAsciiString(mission.getMissionTitleId())); + + buffer.putShort((short) 0x0E); + buffer.putInt(CRC.StringtoCRC(mission.getMissionType())); + + buffer.putShort((short) 0x0F); + buffer.put(getAsciiString(mission.getMissionTargetName())); + + buffer.putShort((short) 0x10); + WaypointObject wp = mission.getAttachedWaypoint(); + buffer.putInt(wp.getCellId()); // wp cell + buffer.putFloat(wp.getPosition().x); + buffer.putFloat(wp.getPosition().z); + buffer.putFloat(wp.getPosition().y); + buffer.putLong(0); + buffer.putInt(CRC.StringtoCRC(wp.getPlanet().name)); + buffer.put(getUnicodeString(wp.getName())); + buffer.putLong(mission.getObjectId() + 1); + buffer.put(wp.getColor()); + buffer.put((byte) 0x01); + + int size = buffer.position(); + buffer.flip(); + buffer = createDelta("MISO", (byte) 3, (short) 11, buffer, size + 4); + return buffer; + } @Override public void sendListDelta(byte viewType, short updateType, IoBuffer buffer) { diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index 5855d4b3..ed3f6064 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -55,9 +55,8 @@ public class MissionObject extends IntangibleObject implements IPersistent { private String descId; private String titleId; private String type; - private WaypointObject attachedWaypoint; - private String missionTemplateObject; + private WaypointObject attachedWaypoint; @NotPersistent MissionMessageBuilder messageBuilder = new MissionMessageBuilder(this); @@ -98,8 +97,9 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.startY = y; this.startPlanet = planet; } - - notifyObservers(messageBuilder.buildStartLocationDelta(x, z, y, planet), false); + if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { + getContainer().getClient().getSession().write(messageBuilder.buildStartLocationDelta(x, z, y, planet)); + } } public float getMissionDestinationX() { @@ -127,7 +127,9 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.destZ = z; this.destinationPlanet = planet; } - notifyObservers(messageBuilder.buildDestinationDelta(x, z, y, planet), false); + if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { + getContainer().getClient().getSession().write(messageBuilder.buildDestinationDelta(x, z, y, planet)); + } } public String getMissionDestinationPlanet() { @@ -146,7 +148,9 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.difficultyLevel = missionLevel; } - notifyObservers(messageBuilder.buildDifficultyLevelDelta(missionLevel), false); + if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { + getContainer().getClient().getSession().write(messageBuilder.buildDifficultyLevelDelta(missionLevel)); + } } public String getMissionStartPlanet() { @@ -177,20 +181,24 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.reward = missionCredits; } - notifyObservers(messageBuilder.buildCreditsRewardDelta(missionCredits), false); + if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { + getContainer().getClient().getSession().write(messageBuilder.buildCreditsRewardDelta(missionCredits)); + } } - public String getMissionCreator() { + public String getCreator() { synchronized(objectMutex) { return creator; } } - public void setMissionCreator(String missionCreator) { + public void setCreator(String missionCreator) { synchronized(objectMutex) { this.creator = missionCreator; } - notifyObservers(messageBuilder.buildCreatorNameDelta(missionCreator), false); + if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { + getContainer().getClient().getSession().write(messageBuilder.buildCreatorNameDelta(missionCreator)); + } } public String getMissionDescription() { @@ -204,7 +212,9 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.description = missionDescription; this.descId = id; } - notifyObservers(messageBuilder.buildMissionDescriptionDelta(missionDescription, id), false); + if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { + getContainer().getClient().getSession().write(messageBuilder.buildMissionDescriptionDelta(missionDescription, id)); + } } public String getMissionTitle() { @@ -218,7 +228,9 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.title = missionTitle; this.titleId = id; } - notifyObservers(messageBuilder.buildMissionTitleDelta(missionTitle, id), false); + if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { + getContainer().getClient().getSession().write(messageBuilder.buildMissionTitleDelta(missionTitle, id)); + } } public String getMissionTargetName() { @@ -231,7 +243,9 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.missionTargetName = missionTargetName; } - notifyObservers(messageBuilder.buildTargetNameDelta(missionTargetName), false); + if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { + getContainer().getClient().getSession().write(messageBuilder.buildTargetNameDelta(missionTargetName)); + } } public WaypointObject getAttachedWaypoint() { @@ -256,7 +270,9 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.missionTemplateObject = missionTemplateObject; } - notifyObservers(messageBuilder.buildTargetObjectIffDelta(missionTemplateObject), false); + if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { + getContainer().getClient().getSession().write(messageBuilder.buildTargetObjectIffDelta(missionTemplateObject)); + } } public String getMissionDescId() { @@ -281,7 +297,15 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.type = missionType; } - notifyObservers(messageBuilder.buildMissionTypeDelta(missionType), false); + if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { + getContainer().getClient().getSession().write(messageBuilder.buildMissionTypeDelta(missionType)); + } + } + + public void sendMissionDelta() { + if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { + getContainer().getClient().getSession().write(messageBuilder.buildMissionDelta()); + } } public Transaction getTransaction() { diff --git a/src/services/MissionService.java b/src/services/MissionService.java index c7135da7..7141dee8 100644 --- a/src/services/MissionService.java +++ b/src/services/MissionService.java @@ -39,12 +39,14 @@ import resources.common.ObjControllerOpcodes; import resources.objects.creature.CreatureObject; import resources.objects.mission.MissionObject; import resources.objects.tangible.TangibleObject; +import resources.objects.waypoint.WaypointObject; import engine.clientdata.ClientFileManager; import engine.clientdata.visitors.DatatableVisitor; import engine.clients.Client; import engine.resources.container.Traverser; import engine.resources.objects.SWGObject; import engine.resources.scene.Planet; +import engine.resources.scene.Point3D; import engine.resources.service.INetworkDispatch; import engine.resources.service.INetworkRemoteEvent; @@ -101,78 +103,48 @@ public class MissionService implements INetworkDispatch { CreatureObject creature = (CreatureObject) player; TangibleObject missionBag = (TangibleObject) creature.getSlottedObject("mission_bag"); - final AtomicInteger deliveryCount = new AtomicInteger(); - final AtomicInteger destroyCount = new AtomicInteger(); - - final int deliveryEntries = 30; - - final Random ran = new Random(); - - final int bagSize = core.objectService.objsInContainer(creature, missionBag); - Console.println("Delivery Entries: " + deliveryEntries); - if (bagSize != 10) { - for(int missionsAdded = 0; missionsAdded < 10; missionsAdded++) { - // object/mission/shared_mission_object.iff - MissionObject mission = (MissionObject) core.objectService.createObject("object/mission/shared_mission_object.iff", creature.getPlanet()); - - - //mission.setStfFilename("mission/mission_object"); - //mission.setStfName("destroy_mission"); - - mission.setMissionLevel(50); - mission.setMissionStart(0, 0, 0, null); - mission.setMissionCreator(""); - mission.setCreditReward(100); - - mission.setMissionDestination(0, 0, 0, null); - - //mission.setMissionTemplateObject(missionTemplateObject); - mission.setMissionDescription("mission/mission_npc_survey_neutral_easy", "m1o"); - mission.setMissionTitle("mission/mission_npc_survey_neutral_easy", "m1t"); - - mission.setMissionType("survey"); // 0x19C9FAC1 - - mission.setMissionTargetName("Testing target name"); - - missionBag._add(mission); - - Console.println("Added mission " + missionsAdded); - } - return; - } - - missionBag.viewChildren(player, false, false, new Traverser() { + final AtomicInteger deCount = new AtomicInteger(); + final AtomicInteger dCount = new AtomicInteger(); + //createDefaultMissions(creature); + missionBag.viewChildren(creature, true, false, new Traverser() { @Override public void process(SWGObject child) { - if (deliveryCount.get() == 6) - return; - MissionObject mission = (MissionObject) child; - int textId = ran.nextInt(deliveryEntries); - - deliveryCount.getAndIncrement(); - + if (deCount.get() <= 7) { + mission.setMissionType("destroy"); + deCount.getAndIncrement(); + Console.println("Destroy missions: " + String.valueOf(deCount.get())); + } + else if (dCount.get() <= 7) { + mission.setMissionType("deliver"); + dCount.getAndIncrement(); + Console.println("Deliver missions: " + String.valueOf(dCount.get())); + } else { + return; + } + mission.setCreditReward(1337); + mission.setCreator("Waverunner"); mission.setMissionLevel(10); - mission.setMissionStart(0, 0, 0, null); - mission.setMissionCreator("Waverunner"); - mission.setCreditReward(100); + mission.setMissionDescription("mission/mission_destroy_neutral_hard_creature_tatooine", "m17d"); + mission.setMissionTitle("mission/mission_destroy_neutral_hard_creature_tatooine", "m17t"); + mission.setMissionDestination(0, 0, 0, "tatooine"); + mission.setMissionTemplateObject("object/tangible/lair/womp_rat/shared_lair_womp_rat_desert"); + mission.setMissionTargetName("@lair_n:tatooine_giant_worrt_lair_neutral_medium"); - mission.setMissionDestination(0, 0, 0, null); + WaypointObject wp = new WaypointObject(); + wp.setName("@mission/mission_destroy_neutral_hard_creature_tatooine:m17t"); + wp.setColor(WaypointObject.ORANGE); + wp.setPosition(new Point3D(10, 10, 10)); + wp.setCellId(0); + wp.setPlanet(core.terrainService.getPlanetByName("tatooine")); + //mission.sendMissionDelta(); - //mission.setMissionTemplateObject(missionTemplateObject); - mission.setMissionDescription("mission/mission_npc_survey_neutral_easy", "m1o"); - mission.setMissionTitle("mission/mission_npc_survey_neutral_easy", "m1t"); - - mission.setMissionType("survey"); // 0x19C9FAC1 - - mission.setMissionTargetName("Testing target name"); - Console.println("Sent delta/'s!"); } }); - Console.println("Outside of the traverser now!"); + Console.println("Sent deltas"); } // May want to create a map for the server with needed info @@ -198,16 +170,16 @@ public class MissionService implements INetworkDispatch { } public void createDefaultMissions(CreatureObject player) { - for(int missionsAdded = 0; missionsAdded < 10; missionsAdded++) { + for(int missionsAdded = 0; missionsAdded <= 16; missionsAdded++) { MissionObject mission = (MissionObject) core.objectService.createObject("object/mission/shared_mission_object.iff", player.getPlanet()); - //mission.setStfFilename("mission/mission_object"); - //mission.setStfName("destroy_mission"); + mission.setStfFilename("mission/mission_object"); + mission.setStfName("destroy_mission"); mission.setMissionLevel(50); mission.setMissionStart(0, 0, 0, null); - mission.setMissionCreator(""); + mission.setCreator(""); mission.setCreditReward(100); mission.setMissionDestination(0, 0, 0, null); From e9abd57db931df094c0edb2e864710fc9e7e4fd1 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Sat, 15 Mar 2014 15:02:09 -0400 Subject: [PATCH 04/27] Changed deltas and variables for MissionObject's --- .../MissionListRequest.java | 2 +- .../mission/MissionMessageBuilder.java | 77 ++++++++----------- .../objects/mission/MissionObject.java | 35 +++++---- src/services/MissionService.java | 42 +++++----- 4 files changed, 76 insertions(+), 80 deletions(-) diff --git a/src/protocol/swg/objectControllerObjects/MissionListRequest.java b/src/protocol/swg/objectControllerObjects/MissionListRequest.java index 7fbe2d02..6a2878cd 100644 --- a/src/protocol/swg/objectControllerObjects/MissionListRequest.java +++ b/src/protocol/swg/objectControllerObjects/MissionListRequest.java @@ -37,7 +37,7 @@ public class MissionListRequest extends ObjControllerObject { @Override public void deserialize(IoBuffer data) { - Console.println("MissionListRequest: " + StringUtilities.bytesToHex(data.array())); + //Console.println("MissionListRequest: " + StringUtilities.bytesToHex(data.array())); setObjectId(data.getLong()); data.getInt(); // unk data.get(); // unk byte diff --git a/src/resources/objects/mission/MissionMessageBuilder.java b/src/resources/objects/mission/MissionMessageBuilder.java index eb84b539..1baca6ee 100644 --- a/src/resources/objects/mission/MissionMessageBuilder.java +++ b/src/resources/objects/mission/MissionMessageBuilder.java @@ -45,9 +45,9 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putShort((short) 17); buffer.putFloat(1); // mission complexity ?? - buffer.put(getAsciiString(mission.getStfFilename())); + buffer.put(getAsciiString("mission/mission_object")); buffer.putInt(0); - buffer.put(getAsciiString(mission.getStfName())); + buffer.put(getAsciiString("destroy_mission")); if (mission.getCustomName() == null) { buffer.putInt(0); } else { buffer.put(getUnicodeString(mission.getCustomName())); } @@ -83,11 +83,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putInt(CRC.StringtoCRC(mission.getMissionDestinationPlanet())); } - if (mission.getMissionTemplateObject() == null) { - buffer.putInt(0); - } else { - buffer.putInt(CRC.StringtoCRC(mission.getMissionTemplateObject())); - } + buffer.putInt(mission.getMissionTemplateObject()); buffer.put(getAsciiString(mission.getMissionDescription())); buffer.putInt(0); @@ -182,7 +178,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } - +/* public IoBuffer buildStfDelta(String stfFile, String stfName) { IoBuffer buffer = IoBuffer.allocate(4 + stfFile.length() + stfName.length(), false).order(ByteOrder.LITTLE_ENDIAN); @@ -363,71 +359,64 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } - +*/ + @SuppressWarnings("unused") public IoBuffer buildMissionDelta() { - IoBuffer buffer = IoBuffer.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN); + IoBuffer buffer = IoBuffer.allocate(500, false).order(ByteOrder.LITTLE_ENDIAN); buffer.isAutoExpand(); + buffer.isAutoShrink(); MissionObject mission = (MissionObject) object; - buffer.putShort((short) 0x05); + buffer.putShort((short) 11); + buffer.put(getAsciiString(mission.getMissionDescription())); + buffer.putInt(0); + buffer.put(getAsciiString(mission.getMissionDescId())); + + buffer.putShort((short) 5); buffer.putInt(mission.getMissionLevel()); - buffer.putShort((short) 0x06); - buffer.putFloat(mission.getMissionStartX()); - buffer.putFloat(mission.getMissionStartZ()); - buffer.putFloat(mission.getMissionStartY()); - buffer.putLong(0); - buffer.putInt(CRC.StringtoCRC(mission.getMissionStartPlanet())); - - buffer.putShort((short) 0x07); + buffer.putShort((short) 7); buffer.put(getUnicodeString(mission.getCreator())); - buffer.putShort((short) 0x08); + buffer.putShort((short) 8); buffer.putInt(mission.getCreditReward()); - buffer.putShort((short) 0x09); + buffer.putShort((short) 9); buffer.putFloat(mission.getMissionDestinationX()); buffer.putFloat(mission.getMissionDestinationZ()); buffer.putFloat(mission.getMissionDestinationY()); buffer.putLong(0); buffer.putInt(CRC.StringtoCRC(mission.getMissionDestinationPlanet())); - buffer.putShort((short) 0x0A); - buffer.putInt(CRC.StringtoCRC(mission.getMissionTemplateObject())); + buffer.putShort((short) 10); + buffer.putInt(mission.getMissionTemplateObject()); - buffer.putShort((short) 0x0B); - buffer.put(getAsciiString(mission.getMissionDescription())); - buffer.putInt(0); - buffer.put(getAsciiString(mission.getMissionDescId())); - - buffer.putShort((short) 0x0C); + buffer.putShort((short) 12); buffer.put(getAsciiString(mission.getMissionTitle())); buffer.putInt(0); buffer.put(getAsciiString(mission.getMissionTitleId())); - buffer.putShort((short) 0x0E); + buffer.putShort((short) 13); + buffer.putInt(mission.getMissionRepeatCounter()); + + buffer.putShort((short) 14); buffer.putInt(CRC.StringtoCRC(mission.getMissionType())); - buffer.putShort((short) 0x0F); + buffer.putShort((short) 15); buffer.put(getAsciiString(mission.getMissionTargetName())); - buffer.putShort((short) 0x10); - WaypointObject wp = mission.getAttachedWaypoint(); - buffer.putInt(wp.getCellId()); // wp cell - buffer.putFloat(wp.getPosition().x); - buffer.putFloat(wp.getPosition().z); - buffer.putFloat(wp.getPosition().y); - buffer.putLong(0); - buffer.putInt(CRC.StringtoCRC(wp.getPlanet().name)); - buffer.put(getUnicodeString(wp.getName())); - buffer.putLong(mission.getObjectId() + 1); - buffer.put(wp.getColor()); - buffer.put((byte) 0x01); + buffer.putShort((short) 6); + buffer.putFloat(mission.getMissionStartX()); + buffer.putFloat(mission.getMissionStartZ()); + buffer.putFloat(mission.getMissionStartY()); + buffer.putLong(0); // Start Object ID + buffer.putInt(CRC.StringtoCRC(mission.getMissionStartPlanet())); int size = buffer.position(); buffer.flip(); - buffer = createDelta("MISO", (byte) 3, (short) 11, buffer, size + 4); + buffer = createDelta("MISO", (byte) 3, (short) 8, buffer, size + 4); + Console.println("MISO3 Delta: " + StringUtilities.bytesToHex(buffer.array())); return buffer; } @Override diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index ed3f6064..baca60e7 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -21,6 +21,8 @@ ******************************************************************************/ package resources.objects.mission; +import java.util.List; + import com.sleepycat.je.Environment; import com.sleepycat.je.Transaction; import com.sleepycat.persist.model.NotPersistent; @@ -55,8 +57,9 @@ public class MissionObject extends IntangibleObject implements IPersistent { private String descId; private String titleId; private String type; - private String missionTemplateObject; + private int missionTemplateObject; private WaypointObject attachedWaypoint; + @NotPersistent MissionMessageBuilder messageBuilder = new MissionMessageBuilder(this); @@ -98,7 +101,7 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.startPlanet = planet; } if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - getContainer().getClient().getSession().write(messageBuilder.buildStartLocationDelta(x, z, y, planet)); + //getContainer().getClient().getSession().write(messageBuilder.buildStartLocationDelta(x, z, y, planet)); } } @@ -128,7 +131,7 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.destinationPlanet = planet; } if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - getContainer().getClient().getSession().write(messageBuilder.buildDestinationDelta(x, z, y, planet)); + //getContainer().getClient().getSession().write(messageBuilder.buildDestinationDelta(x, z, y, planet)); } } @@ -149,7 +152,7 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.difficultyLevel = missionLevel; } if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - getContainer().getClient().getSession().write(messageBuilder.buildDifficultyLevelDelta(missionLevel)); + //getContainer().getClient().getSession().write(messageBuilder.buildDifficultyLevelDelta(missionLevel)); } } @@ -182,7 +185,7 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.reward = missionCredits; } if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - getContainer().getClient().getSession().write(messageBuilder.buildCreditsRewardDelta(missionCredits)); + //getContainer().getClient().getSession().write(messageBuilder.buildCreditsRewardDelta(missionCredits)); } } @@ -197,7 +200,7 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.creator = missionCreator; } if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - getContainer().getClient().getSession().write(messageBuilder.buildCreatorNameDelta(missionCreator)); + //getContainer().getClient().getSession().write(messageBuilder.buildCreatorNameDelta(missionCreator)); } } @@ -213,7 +216,7 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.descId = id; } if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - getContainer().getClient().getSession().write(messageBuilder.buildMissionDescriptionDelta(missionDescription, id)); + //getContainer().getClient().getSession().write(messageBuilder.buildMissionDescriptionDelta(missionDescription, id)); } } @@ -229,7 +232,7 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.titleId = id; } if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - getContainer().getClient().getSession().write(messageBuilder.buildMissionTitleDelta(missionTitle, id)); + //getContainer().getClient().getSession().write(messageBuilder.buildMissionTitleDelta(missionTitle, id)); } } @@ -244,7 +247,7 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.missionTargetName = missionTargetName; } if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - getContainer().getClient().getSession().write(messageBuilder.buildTargetNameDelta(missionTargetName)); + //getContainer().getClient().getSession().write(messageBuilder.buildTargetNameDelta(missionTargetName)); } } @@ -260,18 +263,18 @@ public class MissionObject extends IntangibleObject implements IPersistent { } } - public String getMissionTemplateObject() { + public int getMissionTemplateObject() { synchronized(objectMutex) { return missionTemplateObject; } } - public void setMissionTemplateObject(String missionTemplateObject) { + public void setMissionTemplateObject(int missionTemplateObject) { synchronized(objectMutex) { this.missionTemplateObject = missionTemplateObject; } if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - getContainer().getClient().getSession().write(messageBuilder.buildTargetObjectIffDelta(missionTemplateObject)); + //getContainer().getClient().getSession().write(messageBuilder.buildTargetObjectIffDelta(missionTemplateObject)); } } @@ -298,13 +301,17 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.type = missionType; } if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - getContainer().getClient().getSession().write(messageBuilder.buildMissionTypeDelta(missionType)); + //getContainer().getClient().getSession().write(messageBuilder.buildMissionTypeDelta(missionType)); } } public void sendMissionDelta() { + getGrandparent().getClient().getSession().write(messageBuilder.buildMissionDelta()); + //getContainer().getClient().getSession().write(messageBuilder.buildMissionDelta()); + System.out.println("Sent delta"); if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - getContainer().getClient().getSession().write(messageBuilder.buildMissionDelta()); + //getContainer().getClient().getSession().write(messageBuilder.buildMissionDelta()); + //System.out.println("Sent delta"); } } diff --git a/src/services/MissionService.java b/src/services/MissionService.java index 7141dee8..fcc25005 100644 --- a/src/services/MissionService.java +++ b/src/services/MissionService.java @@ -43,6 +43,7 @@ import resources.objects.waypoint.WaypointObject; import engine.clientdata.ClientFileManager; import engine.clientdata.visitors.DatatableVisitor; import engine.clients.Client; +import engine.resources.common.CRC; import engine.resources.container.Traverser; import engine.resources.objects.SWGObject; import engine.resources.scene.Planet; @@ -99,6 +100,7 @@ public class MissionService implements INetworkDispatch { }); } + @SuppressWarnings("unused") private void populateMissions(final SWGObject player, int type) { CreatureObject creature = (CreatureObject) player; TangibleObject missionBag = (TangibleObject) creature.getSlottedObject("mission_bag"); @@ -111,13 +113,15 @@ public class MissionService implements INetworkDispatch { @Override public void process(SWGObject child) { MissionObject mission = (MissionObject) child; - if (deCount.get() <= 7) { + if (deCount.get() < 5) { mission.setMissionType("destroy"); + mission.setMissionStart(200, 0, 200, "tatooine"); deCount.getAndIncrement(); Console.println("Destroy missions: " + String.valueOf(deCount.get())); } - else if (dCount.get() <= 7) { + else if (dCount.get() < 5) { mission.setMissionType("deliver"); + mission.setMissionStart(0, 0, 0, "tatooine"); dCount.getAndIncrement(); Console.println("Deliver missions: " + String.valueOf(dCount.get())); } else { @@ -125,26 +129,26 @@ public class MissionService implements INetworkDispatch { } mission.setCreditReward(1337); mission.setCreator("Waverunner"); - mission.setMissionLevel(10); + mission.setMissionLevel(5); mission.setMissionDescription("mission/mission_destroy_neutral_hard_creature_tatooine", "m17d"); mission.setMissionTitle("mission/mission_destroy_neutral_hard_creature_tatooine", "m17t"); - mission.setMissionDestination(0, 0, 0, "tatooine"); - mission.setMissionTemplateObject("object/tangible/lair/womp_rat/shared_lair_womp_rat_desert"); + mission.setMissionDestination(400, 0, 400, "tatooine"); + mission.setMissionTemplateObject(CRC.StringtoCRC("object/tangible/lair/base/shared_objective_power_generator.iff")); mission.setMissionTargetName("@lair_n:tatooine_giant_worrt_lair_neutral_medium"); - - WaypointObject wp = new WaypointObject(); + mission.setRepeatCount(1); + /*WaypointObject wp = new WaypointObject(); wp.setName("@mission/mission_destroy_neutral_hard_creature_tatooine:m17t"); wp.setColor(WaypointObject.ORANGE); wp.setPosition(new Point3D(10, 10, 10)); wp.setCellId(0); - wp.setPlanet(core.terrainService.getPlanetByName("tatooine")); - //mission.sendMissionDelta(); + wp.setPlanet(core.terrainService.getPlanetByName("tatooine"));*/ + mission.sendMissionDelta(); } }); - Console.println("Sent deltas"); + //Console.println("Sent deltas"); } // May want to create a map for the server with needed info @@ -170,27 +174,23 @@ public class MissionService implements INetworkDispatch { } public void createDefaultMissions(CreatureObject player) { - for(int missionsAdded = 0; missionsAdded <= 16; missionsAdded++) { + for(int missionsAdded = 0; missionsAdded <= 10; missionsAdded++) { MissionObject mission = (MissionObject) core.objectService.createObject("object/mission/shared_mission_object.iff", player.getPlanet()); - - mission.setStfFilename("mission/mission_object"); - mission.setStfName("destroy_mission"); - - mission.setMissionLevel(50); + mission.setMissionLevel(0); mission.setMissionStart(0, 0, 0, null); mission.setCreator(""); - mission.setCreditReward(100); + mission.setCreditReward(0); mission.setMissionDestination(0, 0, 0, null); //mission.setMissionTemplateObject(missionTemplateObject); - mission.setMissionDescription("mission/mission_npc_survey_neutral_easy", "m1o"); - mission.setMissionTitle("mission/mission_npc_survey_neutral_easy", "m1t"); + mission.setMissionDescription("", ""); + mission.setMissionTitle("", ""); - mission.setMissionType("survey"); // 0x19C9FAC1 + mission.setMissionType("destroy"); // 0x19C9FAC1 - mission.setMissionTargetName("Testing target name"); + mission.setMissionTargetName(""); TangibleObject missionBag = (TangibleObject) player.getSlottedObject("mission_bag"); missionBag._add(mission); From f8909fbda199b787c12baed5495ddc94d79dcaea Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sat, 19 Apr 2014 05:08:37 +0200 Subject: [PATCH 05/27] Command and animation done --- options.cfg | 4 +- scripts/commands/forage.py | 12 +++++ src/services/TreasureService.java | 88 +++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 scripts/commands/forage.py create mode 100644 src/services/TreasureService.java diff --git a/options.cfg b/options.cfg index 5a3a7f8e..cb743c88 100644 --- a/options.cfg +++ b/options.cfg @@ -1,3 +1,3 @@ -LOAD.SNAPSHOT_OBJECTS=1 -LOAD.BUILDOUT_OBJECTS=1 +LOAD.SNAPSHOT_OBJECTS=0 +LOAD.BUILDOUT_OBJECTS=0 LOAD.RESOURCE.SYSTEM=1 \ No newline at end of file diff --git a/scripts/commands/forage.py b/scripts/commands/forage.py new file mode 100644 index 00000000..3b7c2d66 --- /dev/null +++ b/scripts/commands/forage.py @@ -0,0 +1,12 @@ +import sys + +def setup(): + return + +def run(core, actor, target, commandString): + actor.sendSystemMessage('@skl_use:sys_forage_start', 1) + + actor.setCurrentAnimation('forage') + + return + \ No newline at end of file diff --git a/src/services/TreasureService.java b/src/services/TreasureService.java new file mode 100644 index 00000000..4684d045 --- /dev/null +++ b/src/services/TreasureService.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package services; + +import java.util.Collections; +import java.util.Map; +import java.util.Vector; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; +import main.NGECore; +import engine.resources.objects.SWGObject; +import engine.resources.service.INetworkDispatch; +import engine.resources.service.INetworkRemoteEvent; + +public class TreasureService implements INetworkDispatch { + + private NGECore core; + private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); + + private Vector allRequesters = new Vector(); + + public TreasureService(NGECore core) { + this.core = core; + + scheduleTreasureService(); + } + + @Override + public void insertOpcodes(Map swgOpcodes, Map objControllerOpcodes) { + + } + + public void scheduleTreasureService(){ + + final ScheduledFuture task = scheduler.scheduleAtFixedRate(new Runnable() { + + @Override + public void run() { + ServiceProcessing(); + } + + }, 10, 5000, TimeUnit.MILLISECONDS); + } + + + public void ServiceProcessing(){ + synchronized(allRequesters){ + for (SWGObject requester : allRequesters){ + if (requester!=null) + handleRequester(requester); + } + allRequesters.removeAll(Collections.singleton(null)); + } + + } + + public void handleRequester(SWGObject requester){ + + } + + @Override + public void shutdown() { + // TODO Auto-generated method stub + + } + +} From ea947869ebf5dd01bf2959adb215a4f84b01e52e Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sat, 19 Apr 2014 23:56:15 +0200 Subject: [PATCH 06/27] Added foraged items and worms worms spawn Enzymes and maps can be foraged --- scripts/commands/forage.py | 65 +++++++- scripts/commands/suspendtest.py | 30 ++++ scripts/mobiles/forage/worm.py | 30 ++++ src/resources/common/Forager.java | 260 ++++++++++++++++++++++++++++++ 4 files changed, 384 insertions(+), 1 deletion(-) create mode 100644 scripts/commands/suspendtest.py create mode 100644 scripts/mobiles/forage/worm.py create mode 100644 src/resources/common/Forager.java diff --git a/scripts/commands/forage.py b/scripts/commands/forage.py index 3b7c2d66..8d47c825 100644 --- a/scripts/commands/forage.py +++ b/scripts/commands/forage.py @@ -1,12 +1,75 @@ import sys +import engine.resources.scene.Point3D +import resources.common.Forager +import time + def setup(): return def run(core, actor, target, commandString): - actor.sendSystemMessage('@skl_use:sys_forage_start', 1) + #if actor.getSkills('Foraging')==0: + #actor.sendSystemMessage('@skl_use:sys_forage_noskill'),0) + + #if actor.isForaging()==1: + #actor.sendSystemMessage('@skl_use:sys_forage_already',0) + #return + + if actor.getCombatFlag()!=0: + actor.sendSystemMessage('@skl_use:sys_forage_combatfail',0) + return + + if actor.getPosture()!=0: + actor.sendSystemMessage('@skl_use:sys_forage_cant',0) + return + + if core.terrainService.isWater(actor.getPlanet(), actor.getPosition().x, actor.getPosition().z): + actor.sendSystemMessage('You cannot forage while in water.',0) + return + + if actor.getContainer() != None: + actor.sendSystemMessage('@skl_use:sys_forage_inside',0) + return + + if actor.getAction() < 200: + actor.sendSystemMessage('@skl_use:sys_forage_attrib',0) + return + + somepoint = engine.resources.scene.Point3D(0,0,0) + if actor.getAttachment('PostForagePosition')==None: + actor.setAttachment('PostForagePosition', somepoint) + + oldposition = actor.getAttachment('PostForagePosition') + if actor.getPosition().getDistance2D(oldposition)<5: + + System.out.println("actor.getPosition().getDistance2D(oldposition) " + actor.getPosition().getDistance2D(oldposition)); + actor.sendSystemMessage("@skl_use:sys_forage_empty", 0); + return + + + actor.sendSystemMessage('@skl_use:sys_forage_start', 0) + + actor.setAttachment("PreForagePosition", actor.getPosition()) actor.setCurrentAnimation('forage') + time.sleep(1) # does NOT stall other python scripts, tested + # Each command might be its own thread + + actor.setAttachment("PostForagePosition", actor.getPosition()) + + if actor.getCombatFlag()!=0: + actor.sendSystemMessage('@skl_use:sys_forage_combatfail',0) + return + + oldposition = actor.getAttachment("PreForagePosition") + if actor.getPosition().getDistance2D(oldposition)>2: + actor.sendSystemMessage('@skl_use:sys_forage_movefail',0) + return + + + + forager = resources.common.Forager() + forager.handleForageResults(actor) return \ No newline at end of file diff --git a/scripts/commands/suspendtest.py b/scripts/commands/suspendtest.py new file mode 100644 index 00000000..61d95fd7 --- /dev/null +++ b/scripts/commands/suspendtest.py @@ -0,0 +1,30 @@ +import sys +import resources.common.Forager +import time + + +def setup(): + return + +def run(core, actor, target, commandString): + actor.sendSystemMessage('Test1', 1) + time.sleep(1) + actor.sendSystemMessage('Test2', 1) + time.sleep(1) + actor.sendSystemMessage('Test3', 1) + time.sleep(1) + actor.sendSystemMessage('Test4', 1) + time.sleep(1) + actor.sendSystemMessage('Test5', 1) + time.sleep(1) + actor.sendSystemMessage('Test6', 1) + time.sleep(1) + actor.sendSystemMessage('Test7', 1) + time.sleep(1) + actor.sendSystemMessage('Test8', 1) + time.sleep(1) + + + + return + \ No newline at end of file diff --git a/scripts/mobiles/forage/worm.py b/scripts/mobiles/forage/worm.py new file mode 100644 index 00000000..605b5a28 --- /dev/null +++ b/scripts/mobiles/forage/worm.py @@ -0,0 +1,30 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from java.util import Vector + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('forage_worm') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(6) + mobileTemplate.setAttackSpeed(1.0) + mobileTemplate.setWeaponType(6) + + templates = Vector() + templates.add('object/mobile/shared_col_forage_aggravated_worm.iff') + templates.add('object/mobile/shared_col_forage_angry_worm.iff') + templates.add('object/mobile/shared_col_forage_brutal_worm.iff') + templates.add('object/mobile/shared_col_forage_carnivorous_worm.iff') + templates.add('object/mobile/shared_col_forage_ferocious_worm.iff') + templates.add('object/mobile/shared_col_forage_fierce_worm.iff') + templates.add('object/mobile/shared_col_forage_hungry_worm.iff') + templates.add('object/mobile/shared_col_forage_oozing_worm.iff') + templates.add('object/mobile/shared_col_forage_savage_worm.iff') + templates.add('object/mobile/shared_col_forage_territorial_worm.iff') + mobileTemplate.setTemplates(templates) + + core.spawnService.addMobileTemplate('forage_worm', mobileTemplate) + \ No newline at end of file diff --git a/src/resources/common/Forager.java b/src/resources/common/Forager.java new file mode 100644 index 00000000..8a4f49fc --- /dev/null +++ b/src/resources/common/Forager.java @@ -0,0 +1,260 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package resources.common; + +import java.util.Random; +import engine.resources.objects.SWGObject; +import engine.resources.scene.Point3D; +import main.NGECore; +import resources.objects.creature.CreatureObject; +import resources.objects.tangible.TangibleObject; + +/** + * @author Charon + */ + +public class Forager { + + public static final int LYASE_ENZYME = 0; + public static final int RARE_COMPONENT = 1; + public static final int INSECT_BAIT = 2; + public static final int GRUB_BAIT = 3; + public static final int WORM_BAIT = 4; + public static final int MYSTERIOUS_DATA_DISC = 5; + // consider foraged food food/foraged + + + // tangible/item/treasure_map/shared_relic_buff_s01.iff + + public Forager(){ + + } + + public boolean handleForageResults(CreatureObject forager){ + // determine foraged object + SWGObject foragerInventory = forager.getSlottedObject("inventory"); + + + // you can use Kommerken Steak food which increases your + // foraging chance by 12% and gives you a + // 5% bonus chance of finding a treasure map. + + int randomForageRoll = new Random().nextInt(100); + int randomForageObjectRoll = new Random().nextInt(100); + int remainder = 0; + int forageResultChance = 50; + int kommerkenBonus = 0; + + int[] forageChances = new int[]{10,10,25,25,25,5}; + int[] forageChances2 = new int[]{12,10,21,23,24,10}; // Kommerken Steak + int[] forageChances3 = new int[]{20,9,22,22,22,5}; // if you got the pig + + + int chosenObject = 0; + +// if (forager.hasChuckedIn(KommerkenSteak)){ +// kommerkenBonus = 12; +// forageChances = forageChances2; +// } + +// if (forager.gotThePig(pig)){ +// forageChances = forageChances3; +//} + forager.sendSystemMessage("randomForageRoll " + randomForageRoll,(byte) 0); + if (randomForageRoll=80){ + chosenObject = 6; + forager.sendSystemMessage("@skl_use:sys_forage_noroom",(byte) 0); + } + + forager.sendSystemMessage("chosenObject " + chosenObject,(byte) 0); + switch (chosenObject) { + + case LYASE_ENZYME: String template = "object/tangible/loot/beast/shared_enzyme_2.iff"; + TangibleObject foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet()); + // determine color here + foragedObject.setCustomizationVariable("/private/index_color_1", (byte) new Random().nextInt(10)); // edb_vial.pal + foragerInventory.add(foragedObject); + forager.sendSystemMessage("",(byte) 0); + break; + + case RARE_COMPONENT: template = "object/tangible/loot/beast/shared_enzyme_1.iff"; // for now, must find temp + foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet()); + foragerInventory.add(foragedObject); + forager.sendSystemMessage("",(byte) 0); + break; + + case INSECT_BAIT: template = "object/tangible/fishing/bait/shared_bait_insect.iff"; + foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet()); + foragerInventory.add(foragedObject); + forager.sendSystemMessage("",(byte) 0); + break; + + case GRUB_BAIT: template = "object/tangible/fishing/bait/shared_bait_grub.iff"; + foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet()); + foragerInventory.add(foragedObject); + forager.sendSystemMessage("",(byte) 0); + break; + + case WORM_BAIT: template = "object/tangible/fishing/bait/shared_bait_worm.iff"; + foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet()); + foragerInventory.add(foragedObject); + forager.sendSystemMessage("",(byte) 0); + break; + + case MYSTERIOUS_DATA_DISC: template = "object/tangible/loot/generic_usable/shared_datadisk_generic.iff"; + foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet()); + foragedObject.setCustomName(getLevelDependentMapName(forager.getLevel())); + foragedObject.setAttachment("MapLevel", forager.getLevel()); + foragerInventory.add(foragedObject); + forager.sendSystemMessage("",(byte) 0); + break; + + default: break; + + } + + if (chosenObject<6) + forager.sendSystemMessage("@skl_use:sys_forage_success",(byte) 0); + + // spawn adversaries + int adversaryRoll = new Random().nextInt(100); + // A new buff is imaginable that would decrease the chance of running into adversaries here, just an idea + + if (chosenObject>6) + adversaryRoll=999; + + if (adversaryRoll<100) { + int adversaryTypeRoll = new Random().nextInt(100); + if (adversaryTypeRoll<100){ + // wormie + spawnWormie(forager); + } else { + // goon + spawnGoon(forager); + } + } + + } else { + forager.sendSystemMessage("@skl_use:sys_forage_fail",(byte) 0); + + } + + return true; + } + + private String getLevelDependentMapName(int level){ + if (level>=1 && level<=10) + return "Mysterious Data Disk (Adventurer's Treasure)"; + if (level>=11 && level<=20) + return "Mysterious Data Disk (Villager's Hidden Savings)"; + if (level>=21 && level<=30) + return "A map to a Trader's Hidden Treasure"; + if (level>=31 && level<=40) + return "A map to a Bounty Hunter's Hidden Stash"; + if (level>=41 && level<=50) + return "A droid's data disk with map coordinates"; + if (level>=51 && level<=60) + return "A map to a Jedi Knight's body"; + if (level>=61 && level<=70) + return "A map to Jedi Artifacts"; + if (level>=71 && level<=80) + return "A map to a cursed item"; + if (level>=81 && level<=90) + return "Mysterious Data Disk (Mysterious Container) "; + return ""; + } + + + + + public void spawnWormie(CreatureObject forager){ + int level = forager.getLevel(); + String name = ""; + Point3D wormiePosition = SpawnPoint.getRandomPosition(forager.getPosition(), 1, 6, forager.getPlanetId()); + CreatureObject wormie = NGECore.getInstance().spawnService.spawnCreature("forage_worm", forager.getPlanet().getName(), 0L, wormiePosition.x, wormiePosition.y, wormiePosition.z, (short)level); + + switch (wormie.getTemplate()) { + + case "object/mobile/shared_col_forage_aggravated_worm.iff": + name = "An Aggravated Worm"; + break; + + case "object/mobile/shared_col_forage_angry_worm.iff": + name = "An Angry Worm"; + break; + + case "object/mobile/shared_col_forage_brutal_worm.iff": + name = "A Brutal Worm"; + break; + + case "object/mobile/shared_col_forage_carnivorous_worm.iff": + name = "A Carnivorous Worm"; + break; + + case "object/mobile/shared_col_forage_ferocious_worm.iff": + name = "A Ferocious Worm"; + break; + + case "object/mobile/shared_col_forage_fierce_worm.iff": + name = "A Fierce Worm"; + break; + + case "object/mobile/shared_col_forage_hungry_worm.iff": + name = "A Hungry Worm"; + break; + + case "object/mobile/shared_col_forage_oozing_worm.iff": + name = "An Oozing Worm"; + break; + + case "object/mobile/shared_col_forage_savage_worm.iff": + name = "A Savage Worm"; + break; + + case "object/mobile/shared_col_forage_territorial_worm.iff": + name = "A Territorial Worm"; + break; + } + wormie.setCustomName(name); + wormie.setCustomName2(name); + wormie.setLevel(forager.getLevel()); + } + + public void spawnGoon(CreatureObject forager){ + int level = forager.getLevel(); + String name = ""; + Point3D wormiePosition = SpawnPoint.getRandomPosition(forager.getPosition(), 1, 6, forager.getPlanetId()); + CreatureObject goon = NGECore.getInstance().spawnService.spawnCreature("forage_goon", forager.getPlanet().getName(), 0L, wormiePosition.x, wormiePosition.y, wormiePosition.z, (short)level); + + } + +} From 44f5c0bd9237a87de001274d99dc8fe68863b156 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sun, 20 Apr 2014 17:00:34 +0200 Subject: [PATCH 07/27] Forage enemies now attack the forager Worms/goons attack --- scripts/mobiles/forage/goon.py | 39 +++++++++++++++++++++ scripts/mobiles/forage/worm.py | 9 +++++ src/resources/common/Forager.java | 56 +++++++++++++++++++++++++++++-- 3 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 scripts/mobiles/forage/goon.py diff --git a/scripts/mobiles/forage/goon.py b/scripts/mobiles/forage/goon.py new file mode 100644 index 00000000..071fdafa --- /dev/null +++ b/scripts/mobiles/forage/goon.py @@ -0,0 +1,39 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from java.util import Vector + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('forage_goon') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(2) + mobileTemplate.setAttackRange(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dressed_criminal_assassin_human_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_assassin_human_male_01.iff') + templates.add('object/mobile/shared_twilek_male.iff') + templates.add('object/mobile/shared_dressed_binayre_pirate_zabrak_male_01.iff') + templates.add('object/mobile/shared_dressed_borvos_thug.iff') + templates.add('object/mobile/shared_wookiee_male.iff') + + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_dh17.iff', 1, 0.6) + weaponTemplates.add(weapontemplate) + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_dl44.iff', 2, 0.4) + weaponTemplates.add(weapontemplate) + weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_dlt20a.iff', 0, 0.8) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedshot') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('forage_goon', mobileTemplate) + \ No newline at end of file diff --git a/scripts/mobiles/forage/worm.py b/scripts/mobiles/forage/worm.py index 605b5a28..c8e96a8c 100644 --- a/scripts/mobiles/forage/worm.py +++ b/scripts/mobiles/forage/worm.py @@ -26,5 +26,14 @@ def addTemplate(core): templates.add('object/mobile/shared_col_forage_territorial_worm.iff') mobileTemplate.setTemplates(templates) + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + #mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + core.spawnService.addMobileTemplate('forage_worm', mobileTemplate) \ No newline at end of file diff --git a/src/resources/common/Forager.java b/src/resources/common/Forager.java index 8a4f49fc..cfd63791 100644 --- a/src/resources/common/Forager.java +++ b/src/resources/common/Forager.java @@ -22,11 +22,14 @@ package resources.common; import java.util.Random; + import engine.resources.objects.SWGObject; import engine.resources.scene.Point3D; import main.NGECore; +import resources.datatables.Options; import resources.objects.creature.CreatureObject; import resources.objects.tangible.TangibleObject; +import services.ai.AIActor; /** * @author Charon @@ -152,9 +155,9 @@ public class Forager { if (chosenObject>6) adversaryRoll=999; - if (adversaryRoll<100) { + if (adversaryRoll<14) { int adversaryTypeRoll = new Random().nextInt(100); - if (adversaryTypeRoll<100){ + if (adversaryTypeRoll<50){ // wormie spawnWormie(forager); } else { @@ -247,14 +250,63 @@ public class Forager { wormie.setCustomName(name); wormie.setCustomName2(name); wormie.setLevel(forager.getLevel()); + wormie.setOptions(Options.AGGRESSIVE, true); + wormie.setOptions(Options.ATTACKABLE, true); + AIActor actor = (AIActor) wormie.getAttachment("AI"); + actor.addDefender(forager); } public void spawnGoon(CreatureObject forager){ + System.out.println("GOON"); int level = forager.getLevel(); String name = ""; Point3D wormiePosition = SpawnPoint.getRandomPosition(forager.getPosition(), 1, 6, forager.getPlanetId()); CreatureObject goon = NGECore.getInstance().spawnService.spawnCreature("forage_goon", forager.getPlanet().getName(), 0L, wormiePosition.x, wormiePosition.y, wormiePosition.z, (short)level); + // thief wookie criminal scavenger @forage_enemy:bark_thief + String barkString = ""; + + switch (goon.getTemplate()) { + case "object/mobile/shared_dressed_criminal_assassin_human_female_01.iff": + name = "A criminal"; + barkString = "@forage_enemy:bark_criminal"; + break; + + case "object/mobile/shared_dressed_criminal_assassin_human_male_01.iff": + name = "A Scavenger"; + barkString = "@forage_enemy:bark_scavenger"; + break; + + case "object/mobile/shared_twilek_male.iff": + name = "A Thief"; + barkString = "@forage_enemy:bark_thief"; + break; + + case "object/mobile/shared_dressed_binayre_pirate_zabrak_male_01.iff": + name = "A Pirate"; + barkString = "@forage_enemy:bark_thief"; + break; + + case "object/mobile/shared_dressed_borvos_thug.iff": + name = "A Thug"; + barkString = "@forage_enemy:bark_criminal"; + break; + + case "object/mobile/shared_wookiee_male.iff": + name = "A Thug"; + barkString = "@forage_enemy:bark_wookiee"; + break; + + } + goon.setCustomName(name); + goon.setCustomName2(name); + goon.setLevel(forager.getLevel()); + goon.setOptions(Options.AGGRESSIVE, true); + goon.setOptions(Options.ATTACKABLE, true); + AIActor actor = (AIActor) goon.getAttachment("AI"); + actor.addDefender(forager); + NGECore.getInstance().chatService.spatialChat(goon, forager, barkString, short chatType, short moodId, int languageId, OutOfBand outOfBand); + long targetId; } } From 851ba612527fae9e9832b3f28e081a84ebda08b1 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Sun, 20 Apr 2014 20:21:38 -0400 Subject: [PATCH 08/27] More work on Missions --- .../mission/MissionMessageBuilder.java | 111 ++++------------ .../objects/mission/MissionObject.java | 94 +++++++------- src/services/CharacterService.java | 7 +- src/services/MissionService.java | 121 ++++++++---------- 4 files changed, 121 insertions(+), 212 deletions(-) diff --git a/src/resources/objects/mission/MissionMessageBuilder.java b/src/resources/objects/mission/MissionMessageBuilder.java index 1baca6ee..c97226cd 100644 --- a/src/resources/objects/mission/MissionMessageBuilder.java +++ b/src/resources/objects/mission/MissionMessageBuilder.java @@ -42,46 +42,47 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { IoBuffer buffer = IoBuffer.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN); buffer.setAutoExpand(true); - buffer.putShort((short) 17); + buffer.putShort((short) 16); - buffer.putFloat(1); // mission complexity ?? - buffer.put(getAsciiString("mission/mission_object")); + buffer.putFloat(object.getComplexity()); // mission complexity ?? + + buffer.put(getAsciiString(object.getStfFilename())); buffer.putInt(0); - buffer.put(getAsciiString("destroy_mission")); + buffer.put(getAsciiString(object.getStfName())); if (mission.getCustomName() == null) { buffer.putInt(0); } else { buffer.put(getUnicodeString(mission.getCustomName())); } - buffer.putInt(0); // volume + buffer.putInt(object.getVolume()); // volume + buffer.putInt(0); // unused + buffer.putInt(mission.getMissionLevel()); buffer.putFloat(mission.getMissionStartX()); buffer.putFloat(mission.getMissionStartZ()); // missionStartZ buffer.putFloat(mission.getMissionStartY()); - buffer.putLong(0); // Start Object ID - - if (mission.getMissionStartPlanet() == null) { + if (mission.getMissionStartPlanet() == null) buffer.putInt(0); - } else { + else buffer.putInt(CRC.StringtoCRC(mission.getMissionStartPlanet())); - } - - buffer.put(getUnicodeString(mission.getCreator())); + + if (mission.getCreator() != null) + buffer.put(getUnicodeString(mission.getCreator())); + else + buffer.putInt(0); + buffer.putInt(mission.getCreditReward()); buffer.putFloat(mission.getMissionDestinationX()); buffer.putFloat(mission.getMissionDestinationZ()); buffer.putFloat(mission.getMissionDestinationY()); - buffer.putLong(0); // Destination Object ID - - if (mission.getMissionDestinationPlanet() == null) { + if (mission.getMissionDestinationPlanet() == null) buffer.putInt(0); - } else { + else buffer.putInt(CRC.StringtoCRC(mission.getMissionDestinationPlanet())); - } buffer.putInt(mission.getMissionTemplateObject()); @@ -95,11 +96,10 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putInt(0); // refresh counter - if(mission.getMissionType() == null) { + if(mission.getMissionType() == null) buffer.putInt(0); - } else { + else buffer.putInt(CRC.StringtoCRC(mission.getMissionType())); - } buffer.put(getAsciiString(mission.getMissionTargetName())); @@ -178,7 +178,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } -/* + public IoBuffer buildStfDelta(String stfFile, String stfName) { IoBuffer buffer = IoBuffer.allocate(4 + stfFile.length() + stfName.length(), false).order(ByteOrder.LITTLE_ENDIAN); @@ -231,9 +231,9 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { public IoBuffer buildCreatorNameDelta(String creator) { - IoBuffer buffer = IoBuffer.allocate(4 + creator.length(), false).order(ByteOrder.LITTLE_ENDIAN); + IoBuffer buffer = IoBuffer.allocate(4 + (creator.length() * 2), false).order(ByteOrder.LITTLE_ENDIAN); - buffer.put(getAsciiString(creator)); + buffer.put(getUnicodeString(creator)); int size = buffer.position(); buffer.flip(); @@ -278,11 +278,11 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } - public IoBuffer buildTargetObjectIffDelta(String template) { + public IoBuffer buildTargetObjectIffDelta(int template) { IoBuffer buffer = IoBuffer.allocate(4, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.putInt(CRC.StringtoCRC(template)); + buffer.putInt(template); int size = buffer.position(); buffer.flip(); @@ -359,66 +359,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } -*/ - @SuppressWarnings("unused") - public IoBuffer buildMissionDelta() { - IoBuffer buffer = IoBuffer.allocate(500, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.isAutoExpand(); - buffer.isAutoShrink(); - - MissionObject mission = (MissionObject) object; - - buffer.putShort((short) 11); - buffer.put(getAsciiString(mission.getMissionDescription())); - buffer.putInt(0); - buffer.put(getAsciiString(mission.getMissionDescId())); - - buffer.putShort((short) 5); - buffer.putInt(mission.getMissionLevel()); - - buffer.putShort((short) 7); - buffer.put(getUnicodeString(mission.getCreator())); - - buffer.putShort((short) 8); - buffer.putInt(mission.getCreditReward()); - - buffer.putShort((short) 9); - buffer.putFloat(mission.getMissionDestinationX()); - buffer.putFloat(mission.getMissionDestinationZ()); - buffer.putFloat(mission.getMissionDestinationY()); - buffer.putLong(0); - buffer.putInt(CRC.StringtoCRC(mission.getMissionDestinationPlanet())); - - buffer.putShort((short) 10); - buffer.putInt(mission.getMissionTemplateObject()); - - buffer.putShort((short) 12); - buffer.put(getAsciiString(mission.getMissionTitle())); - buffer.putInt(0); - buffer.put(getAsciiString(mission.getMissionTitleId())); - - buffer.putShort((short) 13); - buffer.putInt(mission.getMissionRepeatCounter()); - - buffer.putShort((short) 14); - buffer.putInt(CRC.StringtoCRC(mission.getMissionType())); - - buffer.putShort((short) 15); - buffer.put(getAsciiString(mission.getMissionTargetName())); - - buffer.putShort((short) 6); - buffer.putFloat(mission.getMissionStartX()); - buffer.putFloat(mission.getMissionStartZ()); - buffer.putFloat(mission.getMissionStartY()); - buffer.putLong(0); // Start Object ID - buffer.putInt(CRC.StringtoCRC(mission.getMissionStartPlanet())); - - int size = buffer.position(); - buffer.flip(); - buffer = createDelta("MISO", (byte) 3, (short) 8, buffer, size + 4); - Console.println("MISO3 Delta: " + StringUtilities.bytesToHex(buffer.array())); - return buffer; - } + @Override public void sendListDelta(byte viewType, short updateType, IoBuffer buffer) { diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index baca60e7..c5d69f0a 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -21,8 +21,6 @@ ******************************************************************************/ package resources.objects.mission; -import java.util.List; - import com.sleepycat.je.Environment; import com.sleepycat.je.Transaction; import com.sleepycat.persist.model.NotPersistent; @@ -39,25 +37,25 @@ import engine.resources.scene.Quaternion; @Persistent(version=0) public class MissionObject extends IntangibleObject implements IPersistent { - private float destX; - private float destY; - private float destZ; - private float startX; - private float startY; - private float startZ; - private String startPlanet; - private int difficultyLevel; // Difficulty level displayed in details - private String destinationPlanet; - private int repeatCount; // increases for each player using the mission; used for redisplaying on mission term too - private int reward; - private String creator; - private String description; // TODO: Base off of a new Object, SWGString? - private String title; // TODO: Base off of a new Object, SWGString? - private String missionTargetName; // Target object I guess? - private String descId; - private String titleId; - private String type; - private int missionTemplateObject; + private float destX = 0; + private float destY = 0; + private float destZ = 0; + private float startX = 0; + private float startY = 0; + private float startZ = 0; + private String startPlanet = ""; + private int difficultyLevel = 0; // Difficulty level displayed in details + private String destinationPlanet = ""; + private int repeatCount = 0; // increases for each player using the mission; used for redisplaying on mission term too + private int reward = 0; + private String creator = ""; + private String description = ""; + private String title = ""; + private String missionTargetName = ""; // Target object I guess? + private String descId = ""; + private String titleId = ""; + private String type = ""; + private int missionTemplateObject = 0; private WaypointObject attachedWaypoint; @@ -100,8 +98,8 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.startY = y; this.startPlanet = planet; } - if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - //getContainer().getClient().getSession().write(messageBuilder.buildStartLocationDelta(x, z, y, planet)); + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildStartLocationDelta(x, z, y, planet)); } } @@ -130,8 +128,8 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.destZ = z; this.destinationPlanet = planet; } - if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - //getContainer().getClient().getSession().write(messageBuilder.buildDestinationDelta(x, z, y, planet)); + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildDestinationDelta(x, z, y, planet)); } } @@ -151,8 +149,8 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.difficultyLevel = missionLevel; } - if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - //getContainer().getClient().getSession().write(messageBuilder.buildDifficultyLevelDelta(missionLevel)); + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildDifficultyLevelDelta(missionLevel)); } } @@ -172,6 +170,9 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.repeatCount = missionRepeatCounter; } + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildRepeatCounterDelta(missionRepeatCounter)); + } } public int getCreditReward() { @@ -184,8 +185,8 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.reward = missionCredits; } - if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - //getContainer().getClient().getSession().write(messageBuilder.buildCreditsRewardDelta(missionCredits)); + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildCreditsRewardDelta(missionCredits)); } } @@ -199,8 +200,8 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.creator = missionCreator; } - if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - //getContainer().getClient().getSession().write(messageBuilder.buildCreatorNameDelta(missionCreator)); + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildCreatorNameDelta(missionCreator)); } } @@ -215,8 +216,8 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.description = missionDescription; this.descId = id; } - if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - //getContainer().getClient().getSession().write(messageBuilder.buildMissionDescriptionDelta(missionDescription, id)); + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildMissionDescriptionDelta(missionDescription, id)); } } @@ -231,8 +232,8 @@ public class MissionObject extends IntangibleObject implements IPersistent { this.title = missionTitle; this.titleId = id; } - if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - //getContainer().getClient().getSession().write(messageBuilder.buildMissionTitleDelta(missionTitle, id)); + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildMissionTitleDelta(missionTitle, id)); } } @@ -246,8 +247,8 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.missionTargetName = missionTargetName; } - if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - //getContainer().getClient().getSession().write(messageBuilder.buildTargetNameDelta(missionTargetName)); + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildTargetNameDelta(missionTargetName)); } } @@ -273,8 +274,8 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.missionTemplateObject = missionTemplateObject; } - if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - //getContainer().getClient().getSession().write(messageBuilder.buildTargetObjectIffDelta(missionTemplateObject)); + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildTargetObjectIffDelta(missionTemplateObject)); } } @@ -300,18 +301,9 @@ public class MissionObject extends IntangibleObject implements IPersistent { synchronized(objectMutex) { this.type = missionType; } - if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - //getContainer().getClient().getSession().write(messageBuilder.buildMissionTypeDelta(missionType)); - } - } - - public void sendMissionDelta() { - getGrandparent().getClient().getSession().write(messageBuilder.buildMissionDelta()); - //getContainer().getClient().getSession().write(messageBuilder.buildMissionDelta()); - System.out.println("Sent delta"); - if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) { - //getContainer().getClient().getSession().write(messageBuilder.buildMissionDelta()); - //System.out.println("Sent delta"); + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildMissionTypeDelta(missionType)); + } } diff --git a/src/services/CharacterService.java b/src/services/CharacterService.java index 60666553..b11bd350 100644 --- a/src/services/CharacterService.java +++ b/src/services/CharacterService.java @@ -310,12 +310,11 @@ public class CharacterService implements INetworkDispatch { object._add(bank); object._add(missionBag); - /*for(int missionsAdded = 0; missionsAdded < 12; missionsAdded++) { + for(int missionsAdded = 1; missionsAdded <= 10; missionsAdded++) { MissionObject mission = (MissionObject) core.objectService.createObject("object/mission/shared_mission_object.iff", object.getPlanet()); missionBag._add(mission); - Console.println("Added empty mission " + missionsAdded); - }*/ + } // TODO: Race abilities if (client.isGM()) @@ -330,8 +329,6 @@ public class CharacterService implements INetworkDispatch { object.addObjectToEquipList(missionBag); object.addObjectToEquipList(appInventory); - core.missionService.createDefaultMissions(object); - WeaponObject defaultWeapon = (WeaponObject) core.objectService.createObject("object/weapon/creature/shared_creature_default_weapon.iff", object.getPlanet()); object.addObjectToEquipList(defaultWeapon); object._add(defaultWeapon); diff --git a/src/services/MissionService.java b/src/services/MissionService.java index 16aecee0..02b4c929 100644 --- a/src/services/MissionService.java +++ b/src/services/MissionService.java @@ -99,55 +99,10 @@ public class MissionService implements INetworkDispatch { }); } - @SuppressWarnings("unused") private void populateMissions(final SWGObject player, int type) { CreatureObject creature = (CreatureObject) player; - TangibleObject missionBag = (TangibleObject) creature.getSlottedObject("mission_bag"); - - final AtomicInteger deCount = new AtomicInteger(); - final AtomicInteger dCount = new AtomicInteger(); - //createDefaultMissions(creature); - missionBag.viewChildren(creature, true, false, new Traverser() { - @Override - public void process(SWGObject child) { - MissionObject mission = (MissionObject) child; - if (deCount.get() < 5) { - mission.setMissionType("destroy"); - mission.setMissionStart(200, 0, 200, "tatooine"); - deCount.getAndIncrement(); - Console.println("Destroy missions: " + String.valueOf(deCount.get())); - } - else if (dCount.get() < 5) { - mission.setMissionType("deliver"); - mission.setMissionStart(0, 0, 0, "tatooine"); - dCount.getAndIncrement(); - Console.println("Deliver missions: " + String.valueOf(dCount.get())); - } else { - return; - } - mission.setCreditReward(1337); - mission.setCreator("Waverunner"); - mission.setMissionLevel(5); - mission.setMissionDescription("mission/mission_destroy_neutral_hard_creature_tatooine", "m17d"); - mission.setMissionTitle("mission/mission_destroy_neutral_hard_creature_tatooine", "m17t"); - mission.setMissionDestination(400, 0, 400, "tatooine"); - mission.setMissionTemplateObject(CRC.StringtoCRC("object/tangible/lair/base/shared_objective_power_generator.iff")); - mission.setMissionTargetName("@lair_n:tatooine_giant_worrt_lair_neutral_medium"); - mission.setRepeatCount(1); - /*WaypointObject wp = new WaypointObject(); - wp.setName("@mission/mission_destroy_neutral_hard_creature_tatooine:m17t"); - wp.setColor(WaypointObject.ORANGE); - wp.setPosition(new Point3D(10, 10, 10)); - wp.setCellId(0); - wp.setPlanet(core.terrainService.getPlanetByName("tatooine"));*/ - mission.sendMissionDelta(); - - } - - }); - - //Console.println("Sent deltas"); + debugMissionDelta(creature); } // May want to create a map for the server with needed info @@ -172,33 +127,57 @@ public class MissionService implements INetworkDispatch { return 0; } - public void createDefaultMissions(CreatureObject player) { - for(int missionsAdded = 0; missionsAdded <= 10; missionsAdded++) { - MissionObject mission = (MissionObject) core.objectService.createObject("object/mission/shared_mission_object.iff", player.getPlanet()); - - mission.setMissionLevel(0); - mission.setMissionStart(0, 0, 0, null); - mission.setCreator(""); - mission.setCreditReward(0); - - mission.setMissionDestination(0, 0, 0, null); - - //mission.setMissionTemplateObject(missionTemplateObject); - mission.setMissionDescription("", ""); - mission.setMissionTitle("", ""); - - mission.setMissionType("destroy"); // 0x19C9FAC1 - - mission.setMissionTargetName(""); + public void debugMissionDelta(CreatureObject creature) { + TangibleObject missionBag = (TangibleObject) creature.getSlottedObject("mission_bag"); + final AtomicInteger count = new AtomicInteger(); + final AtomicInteger deCount = new AtomicInteger(); + final AtomicInteger dCount = new AtomicInteger(); + + count.getAndSet(1); + missionBag.viewChildren(creature, true, false, new Traverser() { - TangibleObject missionBag = (TangibleObject) player.getSlottedObject("mission_bag"); - missionBag._add(mission); - - Console.println("Added mission " + missionsAdded); - } - Console.println("Successfully created default missions"); + @Override + public void process(SWGObject child) { + + //if (count.get() > 1) + //return; + + if (child instanceof MissionObject == true) { + System.out.println(count.get() + " is a MissionObject"); + } else { + System.out.println(count.get() + " is not a MissionObject!!"); + } + + MissionObject mission = (MissionObject) child; + if (deCount.get() < 5) { + mission.setMissionType("destroy"); + deCount.getAndIncrement(); + Console.println("Destroy missions: " + String.valueOf(deCount.get())); + } + else if (dCount.get() < 5) { + mission.setMissionType("deliver"); + dCount.getAndIncrement(); + Console.println("Deliver missions: " + String.valueOf(dCount.get())); + } else { + return; + } + + mission.setMissionDescription("mission/mission_deliver_neutral_easy", "m9d"); + mission.setMissionLevel(1); + mission.setMissionStart((float) 3377.148, (float) -4753.221, (float) 0, "tatooine"); + mission.setCreator("Waverunner"); + mission.setCreditReward(69); + mission.setMissionDestination((float) 3447.129, (float) -5070.057, (float) 0, "tatooine"); + mission.setMissionTemplateObject(CRC.StringtoCRC("object/tangible/mission/shared_mission_datadisk.iff")); + mission.setMissionTitle("mission/mission_deliver_neutral_easy", "m9t"); + mission.setRepeatCount(1); + + //mission.sendMissionDelta(); + System.out.println("Object: " + count.getAndIncrement()); + } + + }); } - @Override public void shutdown() { From 14f774447fd568dd7b241b07d031554548baa948 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Mon, 21 Apr 2014 03:23:07 +0200 Subject: [PATCH 09/27] More Treasure map work Mysterious disk radials implemented Treasure guards added --- .../loot/lootPools/consumable_buff_items.py | 0 .../loot/lootPools/gem_collection_items.py | 0 scripts/loot/lootPools/house_furniture.py | 0 .../lootPools/jedi_components_treasure.py | 0 .../loot/lootPools/profession_bracelets_61.py | 0 .../loot/lootPools/profession_bracelets_75.py | 0 .../loot/lootPools/profession_bracelets_85.py | 0 scripts/loot/lootPools/rare_buff_items.py | 0 .../treasure_hunter_collection_items.py | 0 scripts/loot/lootPools/wearable_backpacks.py | 0 scripts/mobiles/forage/goon.py | 2 +- scripts/mobiles/forage/treasure_guard.py | 57 +++++ scripts/mobiles/tatooine/womprat.py | 4 + scripts/radial/object/treasureContainer.py | 35 +++ scripts/radial/object/treasuremap.py | 71 ++++++ scripts/radial/object/treasuremapExtract.py | 35 +++ scripts/radial/object/treasuremapRead.py | 58 +++++ src/resources/common/Forager.java | 219 ++++++++++++++++-- src/services/LootService.java | 23 +- src/services/chat/ChatService.java | 11 +- 20 files changed, 485 insertions(+), 30 deletions(-) create mode 100644 scripts/loot/lootPools/consumable_buff_items.py create mode 100644 scripts/loot/lootPools/gem_collection_items.py create mode 100644 scripts/loot/lootPools/house_furniture.py create mode 100644 scripts/loot/lootPools/jedi_components_treasure.py create mode 100644 scripts/loot/lootPools/profession_bracelets_61.py create mode 100644 scripts/loot/lootPools/profession_bracelets_75.py create mode 100644 scripts/loot/lootPools/profession_bracelets_85.py create mode 100644 scripts/loot/lootPools/rare_buff_items.py create mode 100644 scripts/loot/lootPools/treasure_hunter_collection_items.py create mode 100644 scripts/loot/lootPools/wearable_backpacks.py create mode 100644 scripts/mobiles/forage/treasure_guard.py create mode 100644 scripts/radial/object/treasureContainer.py create mode 100644 scripts/radial/object/treasuremap.py create mode 100644 scripts/radial/object/treasuremapExtract.py create mode 100644 scripts/radial/object/treasuremapRead.py diff --git a/scripts/loot/lootPools/consumable_buff_items.py b/scripts/loot/lootPools/consumable_buff_items.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/gem_collection_items.py b/scripts/loot/lootPools/gem_collection_items.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/house_furniture.py b/scripts/loot/lootPools/house_furniture.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/jedi_components_treasure.py b/scripts/loot/lootPools/jedi_components_treasure.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/profession_bracelets_61.py b/scripts/loot/lootPools/profession_bracelets_61.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/profession_bracelets_75.py b/scripts/loot/lootPools/profession_bracelets_75.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/profession_bracelets_85.py b/scripts/loot/lootPools/profession_bracelets_85.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/rare_buff_items.py b/scripts/loot/lootPools/rare_buff_items.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/treasure_hunter_collection_items.py b/scripts/loot/lootPools/treasure_hunter_collection_items.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/wearable_backpacks.py b/scripts/loot/lootPools/wearable_backpacks.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/mobiles/forage/goon.py b/scripts/mobiles/forage/goon.py index 071fdafa..3a288b78 100644 --- a/scripts/mobiles/forage/goon.py +++ b/scripts/mobiles/forage/goon.py @@ -8,7 +8,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('forage_goon') mobileTemplate.setLevel(1) - mobileTemplate.setDifficulty(2) + mobileTemplate.setDifficulty(1) mobileTemplate.setAttackRange(6) mobileTemplate.setAttackSpeed(1.0) diff --git a/scripts/mobiles/forage/treasure_guard.py b/scripts/mobiles/forage/treasure_guard.py new file mode 100644 index 00000000..4071449b --- /dev/null +++ b/scripts/mobiles/forage/treasure_guard.py @@ -0,0 +1,57 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from java.util import Vector + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('treasure_guard') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dressed_dark_jedi_male_human_01.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_male_human_02.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_male_human_03.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_male_human_04.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_male_human_05.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_male_human_06.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_female_human_01.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_female_human_02.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_female_human_03.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_female_human_04.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_male_twk_01.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_male_twk_02.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_male_twk_03.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_male_zab_01.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_male_zab_02.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_male_zab_03.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_female_twk_01.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_female_twk_02.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_female_twk_03.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_female_zab_01.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_female_zab_02.iff') + templates.add('object/mobile/shared_dressed_dark_jedi_female_zab_03.iff') + + + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0) + weaponTemplates.add(weapontemplate) + weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0) + weaponTemplates.add(weapontemplate) + weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('saberHit') + mobileTemplate.setDefaultAttack('fs_flurry_1') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('treasure_guard', mobileTemplate) + \ No newline at end of file diff --git a/scripts/mobiles/tatooine/womprat.py b/scripts/mobiles/tatooine/womprat.py index 836d9922..f2d1da24 100644 --- a/scripts/mobiles/tatooine/womprat.py +++ b/scripts/mobiles/tatooine/womprat.py @@ -9,6 +9,10 @@ def addTemplate(core): mobileTemplate.setCreatureName('womprat') mobileTemplate.setTemplates(templates) mobileTemplate.setLevel(5) + mobileTemplate.setAttackRange(3) + mobileTemplate.setAttackSpeed(1.0) + mobileTemplate.setWeaponType(6) + attacks = Vector() mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/radial/object/treasureContainer.py b/scripts/radial/object/treasureContainer.py new file mode 100644 index 00000000..2a3ff12d --- /dev/null +++ b/scripts/radial/object/treasureContainer.py @@ -0,0 +1,35 @@ +from resources.common import RadialOptions +from services.sui import SUIWindow +from services.sui.SUIWindow import Trigger +from java.util import Vector +import resources.common.SpawnPoint +import engine.resources.scene.Point3D +import main.NGECore +import resources.common.Forager +from resources.objects.waypoint import WaypointObject +from engine.resources.common import CRC +import sys + +def createRadial(core, owner, target, radials): + radials.clear() + radials.add(RadialOptions(0, 21, 1, 'Open')) + radials.add(RadialOptions(0, 7, 1, 'Examine')) + return + +def handleSelection(core, owner, target, option): + + if option == 21 and target: + + if target.getAttachment('TreasureExtractorID')!=owner.getObjectID(): + owner.sendSystemMessage('@treasure_map/treasure_map:wrong_player',0); + return + + forager = resources.common.Forager() + if forager.countAliveGuards(target)>0: + owner.sendSystemMessage('@treasure_map/treasure_map:kill_guards_message',0); + return + + core.simulationService.openContainer(owner, target); + + return + \ No newline at end of file diff --git a/scripts/radial/object/treasuremap.py b/scripts/radial/object/treasuremap.py new file mode 100644 index 00000000..80ab07a3 --- /dev/null +++ b/scripts/radial/object/treasuremap.py @@ -0,0 +1,71 @@ +from resources.common import RadialOptions +from services.sui import SUIWindow +from services.sui.SUIWindow import Trigger +from java.util import Vector +import resources.common.SpawnPoint +import engine.resources.scene.Point3D +import main.NGECore +from resources.objects.waypoint import WaypointObject +from engine.resources.common import CRC +import sys + +def createRadial(core, owner, target, radials): + radials.add(RadialOptions(0, 21, 1, '@treasure_map/treasure_map:use')) + radials.add(RadialOptions(0, 7, 1, '')) + return + +def handleSelection(core, owner, target, option): + if option == 21 and target: + owner.sendSystemMessage('Treasuremap radial',0) + mapPlanet = target.getAttachment('MapPlanet') + planet = core.terrainService.getPlanetByID(mapPlanet) + if planet==None: + owner.sendSystemMessage('The treasure map disk is faulty, no Planet',0) + return + + planetName = planet.getName() + #if owner.getPlanetId()!=mapPlanet: + #owner.sendSystemMessage('The treasure is buried on ' + planetName,0) + #return + + window = core.suiService.createSUIWindow('Script.listBox', owner, target, 0) + window.setProperty('bg.caption.lblTitle:Text', '@treasure_map/treasure_map:title_'+target.getAttachment('MapSTFName')) + window.setProperty('Prompt.lblPrompt:Text', '@treasure_map/treasure_map:text_'+target.getAttachment('MapSTFName')) + + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:Text', '@treasure_map/treasure_map:close') + window.setProperty('btnOk:Text', '@treasure_map/treasure_map:store_waypoint') + returnList = Vector() + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, storeWaypoint) + window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, close) + + owner.setAttachment('LastReadMap',target) + + core.suiService.openSUIWindow(window); + + return + +def storeWaypoint(owner, window, eventType, returnList): + planetCenter = engine.resources.scene.Point3D(0,0,0) + #treasureLocation = resources.common.SpawnPoint.getRandomPosition(planetCenter, 2000, 6000, owner.getPlanetId()); + treasureLocation = resources.common.SpawnPoint.getRandomPosition(owner.getPosition(), 1, 50, owner.getPlanetId()); + waypoint = main.NGECore.getInstance().objectService.createObject('object/waypoint/shared_waypoint.iff', owner.getPlanet(), treasureLocation.x, treasureLocation.z, treasureLocation.y) + waypoint.setName('Treasure Map') + waypoint.setActive(True) + waypoint.setColor(WaypointObject.YELLOW) + waypoint.setPlanetCRC(CRC.StringtoCRC(owner.getPlanet().name)) + waypoint.setStringAttribute('', '') + ghost = owner.getSlottedObject('ghost') + ghost.waypointAdd(waypoint) + owner.sendSystemMessage('@treasure_map/treasure_map:sys_store_waypoint', 0) + readMap = owner.getAttachment('LastReadMap') + readMap.setAttachment('radial_filename', 'object/treasuremapRead'); + readMap.setAttachment('MapAreaLocation', treasureLocation); + return + + +def close(owner, window, eventType, returnList): + + return + \ No newline at end of file diff --git a/scripts/radial/object/treasuremapExtract.py b/scripts/radial/object/treasuremapExtract.py new file mode 100644 index 00000000..e4a8bdde --- /dev/null +++ b/scripts/radial/object/treasuremapExtract.py @@ -0,0 +1,35 @@ +from resources.common import RadialOptions +from services.sui import SUIWindow +from services.sui.SUIWindow import Trigger +from java.util import Vector +import resources.common.SpawnPoint +import engine.resources.scene.Point3D +import main.NGECore +import resources.common.Forager +from resources.objects.waypoint import WaypointObject +from engine.resources.common import CRC +import sys + +def createRadial(core, owner, target, radials): + radials.add(RadialOptions(0, 21, 1, '@treasure_map/treasure_map:extract_treasure')) + radials.add(RadialOptions(0, 7, 1, '')) + return + +def handleSelection(core, owner, target, option): + if option == 21 and target: + owner.sendSystemMessage('TreasuremapExtract radial',0) + exactLoc = target.getAttachment('MapExactLocation') + + #if owner.getPosition().getDistance2D(exactLoc)<20: + if owner.getPosition().getDistance2D(owner.getPosition())<20: + target.setAttachment('radial_filename', 'object/usable') + owner.sendSystemMessage('@treasure_map/treasure_map:sys_dist_here',0) + #spawn guards + forager = resources.common.Forager() + forager.handleGuardSpawn(owner,target) + else: + owner.sendSystemMessage('@treasure_map/treasure_map:sys_dist_near',0) + + + return + \ No newline at end of file diff --git a/scripts/radial/object/treasuremapRead.py b/scripts/radial/object/treasuremapRead.py new file mode 100644 index 00000000..c3617bf9 --- /dev/null +++ b/scripts/radial/object/treasuremapRead.py @@ -0,0 +1,58 @@ +from resources.common import RadialOptions +from services.sui import SUIWindow +from services.sui.SUIWindow import Trigger +from java.util import Vector +import resources.common.SpawnPoint +import engine.resources.scene.Point3D +import main.NGECore +from resources.objects.waypoint import WaypointObject +from engine.resources.common import CRC +import sys + +def createRadial(core, owner, target, radials): + radials.add(RadialOptions(0, 21, 1, '@treasure_map/treasure_map:search_area')) + radials.add(RadialOptions(0, 7, 1, '')) + return + +def handleSelection(core, owner, target, option): + if option == 21 and target: + owner.sendSystemMessage('TreasuremapRead radial',0) + + planetID = target.getAttachment('MapPlanet') + if planetID!=owner.getPlanetId(): + owner.sendSystemMessage('@treasure_map/treasure_map:wrong_planet',0) + + if owner.getCombatFlag()!=0: + owner.sendSystemMessage('@treasure_map/treasure_map:sys_no_combat',0) + return + + if owner.getPosture()==10: + owner.sendSystemMessage('@treasure_map/treasure_map:sys_no_mount',0) + return + + + areaLoc = target.getAttachment('MapAreaLocation'); + owner.sendSystemMessage('owner.getPosition().getDistance2D(areaLoc) %s' % owner.getPosition().getDistance2D(areaLoc),0) + + if owner.getPosition().getDistance2D(areaLoc)<20: + owner.sendSystemMessage('@treasure_map/treasure_map:sys_success',0) + + treasureLocation = resources.common.SpawnPoint.getRandomPosition(owner.getPosition(), 1, 100, owner.getPlanetId()); + waypoint = main.NGECore.getInstance().objectService.createObject('object/waypoint/shared_waypoint.iff', owner.getPlanet(), treasureLocation.x, treasureLocation.z, treasureLocation.y) + waypoint.setName('Exact Location of the Treasure') + waypoint.setActive(True) + waypoint.setColor(WaypointObject.YELLOW) + waypoint.setPlanetCRC(CRC.StringtoCRC(owner.getPlanet().name)) + waypoint.setStringAttribute('', '') + ghost = owner.getSlottedObject('ghost') + ghost.waypointAdd(waypoint) + owner.sendSystemMessage('@treasure_map/treasure_map:sys_store_waypoint', 0) + readMap = owner.getAttachment('LastReadMap') + readMap.setAttachment('radial_filename', 'object/treasuremapExtract'); + readMap.setAttachment('MapExactLocation', treasureLocation); + else: + owner.sendSystemMessage('@treasure_map/treasure_map:sys_cant_pinpoint',0) + + + return + \ No newline at end of file diff --git a/src/resources/common/Forager.java b/src/resources/common/Forager.java index cfd63791..557b4153 100644 --- a/src/resources/common/Forager.java +++ b/src/resources/common/Forager.java @@ -21,13 +21,19 @@ ******************************************************************************/ package resources.common; +import java.util.ArrayList; +import java.util.List; import java.util.Random; +import java.util.Vector; import engine.resources.objects.SWGObject; +import engine.resources.scene.Planet; import engine.resources.scene.Point3D; import main.NGECore; import resources.datatables.Options; import resources.objects.creature.CreatureObject; +import resources.objects.group.GroupObject; +import resources.objects.loot.LootGroup; import resources.objects.tangible.TangibleObject; import services.ai.AIActor; @@ -43,9 +49,10 @@ public class Forager { public static final int GRUB_BAIT = 3; public static final int WORM_BAIT = 4; public static final int MYSTERIOUS_DATA_DISC = 5; - // consider foraged food food/foraged + private int[] mapPlanetIDs = new int[]{6,7,8}; + // consider foraged food food/foraged // tangible/item/treasure_map/shared_relic_buff_s01.iff public Forager(){ @@ -64,7 +71,7 @@ public class Forager { int randomForageRoll = new Random().nextInt(100); int randomForageObjectRoll = new Random().nextInt(100); int remainder = 0; - int forageResultChance = 50; + int forageResultChance = 100; int kommerkenBonus = 0; int[] forageChances = new int[]{10,10,25,25,25,5}; @@ -97,7 +104,9 @@ public class Forager { chosenObject = 6; forager.sendSystemMessage("@skl_use:sys_forage_noroom",(byte) 0); } - + + chosenObject = 5; + forager.sendSystemMessage("chosenObject " + chosenObject,(byte) 0); switch (chosenObject) { @@ -137,12 +146,18 @@ public class Forager { foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet()); foragedObject.setCustomName(getLevelDependentMapName(forager.getLevel())); foragedObject.setAttachment("MapLevel", forager.getLevel()); + foragedObject.setAttachment("MapSTFName", getLevelDependentSTFName(forager.getLevel())); + int mapPlanetID = new Random().nextInt(mapPlanetIDs.length-1); + foragedObject.setAttachment("MapPlanet", mapPlanetIDs[mapPlanetID]); + System.out.println("mapPlanetID " + mapPlanetIDs[mapPlanetID]); + //foragedObject.setAttachment("radial_filename", "object/treasuremap"); + foragedObject.setAttachment("radial_filename", "object/treasuremapExtract"); foragerInventory.add(foragedObject); - forager.sendSystemMessage("",(byte) 0); + forager.sendSystemMessage("",(byte) 0); break; default: break; - + ///object/tangible/treasure_map/shared_treasure_map_base.iff shared_treasure_map_quest.iff } if (chosenObject<6) @@ -155,9 +170,11 @@ public class Forager { if (chosenObject>6) adversaryRoll=999; - if (adversaryRoll<14) { + adversaryRoll=999; + + if (adversaryRoll<100) { // 14 int adversaryTypeRoll = new Random().nextInt(100); - if (adversaryTypeRoll<50){ + if (adversaryTypeRoll<1){ // wormie spawnWormie(forager); } else { @@ -196,6 +213,30 @@ public class Forager { return ""; } + private String getLevelDependentSTFName(int level){ + if (level>=1 && level<=10) + return "treasure_guard_adventurer"; + if (level>=11 && level<=20) + return "treasure_guard_villager"; + if (level>=21 && level<=30) + return "treasure_guard_trader"; + if (level>=31 && level<=40) + return "treasure_guard_bounty_hunter"; + if (level>=41 && level<=50) + return "treasure_guard_droid"; + if (level>=51 && level<=60) + return "treasure_guard_padawan"; + if (level>=61 && level<=70) + return "treasure_guard_jedi"; + if (level>=71 && level<=80) + return "treasure_guard_jedi_elder"; + if (level>=81 && level<=90) + return "treasure_guard_jedi_elite"; + return ""; + } + + + @@ -204,7 +245,6 @@ public class Forager { String name = ""; Point3D wormiePosition = SpawnPoint.getRandomPosition(forager.getPosition(), 1, 6, forager.getPlanetId()); CreatureObject wormie = NGECore.getInstance().spawnService.spawnCreature("forage_worm", forager.getPlanet().getName(), 0L, wormiePosition.x, wormiePosition.y, wormiePosition.z, (short)level); - switch (wormie.getTemplate()) { case "object/mobile/shared_col_forage_aggravated_worm.iff": @@ -269,35 +309,37 @@ public class Forager { case "object/mobile/shared_dressed_criminal_assassin_human_female_01.iff": name = "A criminal"; - barkString = "@forage_enemy:bark_criminal"; + barkString = "bark_criminal"; break; case "object/mobile/shared_dressed_criminal_assassin_human_male_01.iff": name = "A Scavenger"; - barkString = "@forage_enemy:bark_scavenger"; + barkString = "bark_scavenger"; break; case "object/mobile/shared_twilek_male.iff": name = "A Thief"; - barkString = "@forage_enemy:bark_thief"; + barkString = "bark_thief"; break; case "object/mobile/shared_dressed_binayre_pirate_zabrak_male_01.iff": name = "A Pirate"; - barkString = "@forage_enemy:bark_thief"; + barkString = "bark_thief"; break; case "object/mobile/shared_dressed_borvos_thug.iff": name = "A Thug"; - barkString = "@forage_enemy:bark_criminal"; + barkString = "bark_criminal"; break; case "object/mobile/shared_wookiee_male.iff": name = "A Thug"; - barkString = "@forage_enemy:bark_wookiee"; + barkString = "bark_wookiee"; break; } + + goon.addObserver(forager); goon.setCustomName(name); goon.setCustomName2(name); goon.setLevel(forager.getLevel()); @@ -305,8 +347,153 @@ public class Forager { goon.setOptions(Options.ATTACKABLE, true); AIActor actor = (AIActor) goon.getAttachment("AI"); actor.addDefender(forager); - NGECore.getInstance().chatService.spatialChat(goon, forager, barkString, short chatType, short moodId, int languageId, OutOfBand outOfBand); - long targetId; + forager.sendSystemMessage("@foraging/forage_enemy:" + barkString,(byte) 0); + //OutOfBand oob = new OutOfBand(new ProsePackage("@foraging/forage_enemy",barkString)); + OutOfBand oob = new OutOfBand(new ProsePackage("@jawa_trader","cant_understand")); + forager.sendSystemMessage("@jawa_trader:cant_understand",(byte) 0); + NGECore.getInstance().chatService.spatialChat(goon, forager, "", (short)0x0, (short)0x0, 1, oob); + } + + public void handleGuardSpawn(CreatureObject owner, TangibleObject map){ + + short spawnLevel = (short) map.getAttachment("MapLevel"); + //Point3D exactTreasureLocation = (Point3D) map.getAttachment("MapExactLocation"); + Point3D exactTreasureLocation = owner.getPosition(); + + GroupObject extractorGroup = (GroupObject) NGECore.getInstance().objectService.getObject(owner.getGroupId()); + int extractorGroupSize = 1; + if (extractorGroup!=null) + extractorGroupSize = extractorGroup.getMemberList().size(); + + int guardSpawnNumber = 2 + extractorGroupSize; + Vector guardList = new Vector(); + for (int i=0;i guardList = (Vector) treasureContainer.getAttachment("TreasureGuards"); + int aliveCount = 0; + for (CreatureObject guard:guardList){ + if (guard.getPosture()!=14 && guard.getPosture()!=15) + aliveCount++; + } + return aliveCount; + } + + + + public void configureTreasureLoot(TangibleObject treasureContainer, CreatureObject owner, short spawnLevel){ + List lootgroups = new ArrayList(); + + String levelRange = "61"; + + if (spawnLevel>60 && spawnLevel<=70){ + levelRange = "61"; + } + if (spawnLevel>70 && spawnLevel<=80){ + levelRange = "75"; + } + if (spawnLevel>80 && spawnLevel<=90){ + levelRange = "85"; + } + + + // PROFESSION BRACELETS HOUSE FURNITURE WEARABLE BACKPACKS + String[] lootPoolNames = new String[]{"profession_bracelets_"+levelRange,"house_furniture","wearable_backpacks"}; + int[] lootPoolChances = new int[]{50,25,25}; + int lootGroupChance = 80; + treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); + + // WEAPONSMITH COMPONENTS JEDI COMPONENTS GEM COLLECTION ITEMS TREASURE HUNTER COLLECTION ITEMS + + // CONSUMABLE BUFF ITEMS +// Flask of Elba Water +// Flask of Naris-bud Tea +// Small flask of Nerfmilk + + // COMMON LOOTS: +// Looted non-wearable Bounty Hunter armor pieces (Used to make Mandalorian armor at the Death Watch Bunker) +// Looted clothing (usually 20+) +// Looted armors (usually 20+) +// Looted weapons (700-800 DPS(Sometimes less, now includes the Nak'tra Crystal Rifle)) +// Advanced Agility Stim (CL80) +// Advanced Power Stim (CL80) +// Loot kits adhesives +// Various Schematics + + // VERY RARE BUFF ITEMS + lootPoolNames = new String[]{"Rare Nova Crystal"," Rare Rol Stone","Rare Power Gem", + " Rare Corusca Gem","Rare Sasho Gem","Rare Ankarres Sapphire "}; + lootPoolChances = new int[]{17,17,17,17,17,15}; + lootGroupChance = 1; + treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); + + // EXTRA + lootPoolNames = new String[]{"Mysterious Data Disk"}; + lootPoolChances = new int[]{100}; + lootGroupChance = 50; + treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); + } } diff --git a/src/services/LootService.java b/src/services/LootService.java index c9157d18..8f9fb3db 100644 --- a/src/services/LootService.java +++ b/src/services/LootService.java @@ -114,10 +114,10 @@ public class LootService implements INetworkDispatch { lootSituationAssessment(requester,lootedObject,lootRollSession); - CreatureObject lootedCreature = (CreatureObject) lootedObject; + //CreatureObject lootedCreature = (CreatureObject) lootedObject; //TreeSet> lootSpec = lootedObject.getLootSpecification(); - List lootGroups = lootedCreature.getLootGroups(); + List lootGroups = lootedObject.getLootGroups(); Iterator iterator = lootGroups.iterator(); int projectionCoefficientMatrixModulo = 0; projectionCoefficientMatrixModulo = outbound(requester); @@ -146,14 +146,17 @@ public class LootService implements INetworkDispatch { } // set info above corpse - float y = 0.5F; // 1.3356977F - float qz= 1.06535322E9F; - Point3D effectorPosition = new Point3D(0,y,0); - Quaternion effectorOrientation = new Quaternion(0,0,0,qz); - PlayClientEffectObjectTransformMessage lmsg = new PlayClientEffectObjectTransformMessage("appearance/pt_loot_disc.prt",lootedObject.getObjectID(),"lootMe",effectorPosition,effectorOrientation); - requester.getClient().getSession().write(lmsg.serialize()); - tools.CharonPacketUtils.printAnalysis(lmsg.serialize()); - + + if (lootedObject instanceof CreatureObject){ + float y = 0.5F; // 1.3356977F + float qz= 1.06535322E9F; + Point3D effectorPosition = new Point3D(0,y,0); + Quaternion effectorOrientation = new Quaternion(0,0,0,qz); + PlayClientEffectObjectTransformMessage lmsg = new PlayClientEffectObjectTransformMessage("appearance/pt_loot_disc.prt",lootedObject.getObjectID(),"lootMe",effectorPosition,effectorOrientation); + requester.getClient().getSession().write(lmsg.serialize()); + tools.CharonPacketUtils.printAnalysis(lmsg.serialize()); + } + // handle errors if (lootRollSession.getErrorMessages().size()>0){ for (String msg : lootRollSession.getErrorMessages()){ diff --git a/src/services/chat/ChatService.java b/src/services/chat/ChatService.java index cc620d77..be4cbb43 100644 --- a/src/services/chat/ChatService.java +++ b/src/services/chat/ChatService.java @@ -125,11 +125,15 @@ public class ChatService implements INetworkDispatch { Client speakerClient = speaker.getClient(); - if (speakerClient == null || speakerClient.getSession() == null) { - return; +// if (speakerClient == null || speakerClient.getSession() == null) { +// return; +// } + + if (speakerClient != null) { + if (speakerClient.getSession() != null) + speakerClient.getSession().write(objControllerMessage.serialize()); } - speakerClient.getSession().write(objControllerMessage.serialize()); if (speaker.getObservers().isEmpty()) { return; @@ -150,6 +154,7 @@ public class ChatService implements INetworkDispatch { SpatialChat spatialChat = new SpatialChat(client.getParent().getObjectId(), speaker.getObjectID(), targetId, message, chatType, moodId, languageId, outOfBand); objControllerMessage = new ObjControllerMessage(0x0B, spatialChat); client.getSession().write(objControllerMessage.serialize()); + tools.CharonPacketUtils.printAnalysis(objControllerMessage.serialize()); } } } From b8d4187a78279ff48532de43b26124025c823088 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Mon, 21 Apr 2014 04:23:54 +0200 Subject: [PATCH 10/27] More treasure loot items and pools added Rare items profession bracelets --- scripts/loot/lootPools/advanced_stims_80.py | 0 scripts/loot/lootPools/bh_armor_for_mando.py | 0 .../loot/lootPools/consumable_buff_items.py | 6 +++++ scripts/loot/lootPools/loot_kits_adhesives.py | 0 .../loot/lootPools/profession_bracelets_61.py | 8 +++++++ .../loot/lootPools/profession_bracelets_75.py | 8 +++++++ .../loot/lootPools/profession_bracelets_85.py | 10 ++++++++ scripts/loot/lootPools/rare_buff_items.py | 8 +++++++ scripts/loot/lootPools/various_schematics.py | 0 .../loot/lootPools/weaponsmith_components.py | 0 scripts/loot/lootPools/wearable_backpacks.py | 6 +++++ src/resources/common/Forager.java | 24 ++++++++++++------- 12 files changed, 61 insertions(+), 9 deletions(-) create mode 100644 scripts/loot/lootPools/advanced_stims_80.py create mode 100644 scripts/loot/lootPools/bh_armor_for_mando.py create mode 100644 scripts/loot/lootPools/loot_kits_adhesives.py create mode 100644 scripts/loot/lootPools/various_schematics.py create mode 100644 scripts/loot/lootPools/weaponsmith_components.py diff --git a/scripts/loot/lootPools/advanced_stims_80.py b/scripts/loot/lootPools/advanced_stims_80.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/bh_armor_for_mando.py b/scripts/loot/lootPools/bh_armor_for_mando.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/consumable_buff_items.py b/scripts/loot/lootPools/consumable_buff_items.py index e69de29b..66f6cfb3 100644 --- a/scripts/loot/lootPools/consumable_buff_items.py +++ b/scripts/loot/lootPools/consumable_buff_items.py @@ -0,0 +1,6 @@ + +def itemNames(): + return ['flask_of_elba_water ','flask_of_naris-bud_tea','small_flask_of_nerfmilk'] + +def itemChances(): + return [33,33,33] \ No newline at end of file diff --git a/scripts/loot/lootPools/loot_kits_adhesives.py b/scripts/loot/lootPools/loot_kits_adhesives.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/profession_bracelets_61.py b/scripts/loot/lootPools/profession_bracelets_61.py index e69de29b..68043333 100644 --- a/scripts/loot/lootPools/profession_bracelets_61.py +++ b/scripts/loot/lootPools/profession_bracelets_61.py @@ -0,0 +1,8 @@ + +def itemNames(): + names = ['jedi_wristguard(right)'] + + return names + +def itemChances(): + return [100] \ No newline at end of file diff --git a/scripts/loot/lootPools/profession_bracelets_75.py b/scripts/loot/lootPools/profession_bracelets_75.py index e69de29b..8a765e2f 100644 --- a/scripts/loot/lootPools/profession_bracelets_75.py +++ b/scripts/loot/lootPools/profession_bracelets_75.py @@ -0,0 +1,8 @@ + +def itemNames(): + names = ['jedi_knight_meditation_bracelet_(right)','wrist_communications_scanner_SCNv4_(right)'] + names += ['insurgent_scanner_wrist_module_(right)','counter-toxin_wristband_prototype_IV_(right)'] + return names + +def itemChances(): + return [25,25,25,25] \ No newline at end of file diff --git a/scripts/loot/lootPools/profession_bracelets_85.py b/scripts/loot/lootPools/profession_bracelets_85.py index e69de29b..9d609ba1 100644 --- a/scripts/loot/lootPools/profession_bracelets_85.py +++ b/scripts/loot/lootPools/profession_bracelets_85.py @@ -0,0 +1,10 @@ + +def itemNames(): + names = ['jedi_knights_wristguard_(right)','wrist_assault_booster_zulu_(right)','targeting_assist_wrist_implant_PTI-IV_(right)'] + names += ['personnel_comlink_wrist-P4_(right)','manufacturing_verdicator_200a_(right)','insurgency_wrist_implantat-BLACK-(right)'] + names += ['targeter_ranging_wrist_assist_V4_(right)','bracelet_of_Inspired_Status(right)'] + + return names + +def itemChances(): + return [16,12,12,12,12,12,12,12] \ No newline at end of file diff --git a/scripts/loot/lootPools/rare_buff_items.py b/scripts/loot/lootPools/rare_buff_items.py index e69de29b..b816eb79 100644 --- a/scripts/loot/lootPools/rare_buff_items.py +++ b/scripts/loot/lootPools/rare_buff_items.py @@ -0,0 +1,8 @@ + +def itemTemplates(): + names = ['rare_nova_crystal','rare_rol_stone','rare_power_gem'] + names += ['rare_corusca_gem','rare_sasho_gem','rare_ankarres_sapphire'] + return names + +def itemChances(): + return [15,17,17,17,17,17] \ No newline at end of file diff --git a/scripts/loot/lootPools/various_schematics.py b/scripts/loot/lootPools/various_schematics.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/weaponsmith_components.py b/scripts/loot/lootPools/weaponsmith_components.py new file mode 100644 index 00000000..e69de29b diff --git a/scripts/loot/lootPools/wearable_backpacks.py b/scripts/loot/lootPools/wearable_backpacks.py index e69de29b..ac7a299e 100644 --- a/scripts/loot/lootPools/wearable_backpacks.py +++ b/scripts/loot/lootPools/wearable_backpacks.py @@ -0,0 +1,6 @@ + +def itemNames(): + return ['textiles_survival_backpack_(schematic)','textiles_survival_backpack_V2_(schematic)'] + +def itemChances(): + return [60,40] \ No newline at end of file diff --git a/src/resources/common/Forager.java b/src/resources/common/Forager.java index 557b4153..0f027675 100644 --- a/src/resources/common/Forager.java +++ b/src/resources/common/Forager.java @@ -460,16 +460,16 @@ public class Forager { // PROFESSION BRACELETS HOUSE FURNITURE WEARABLE BACKPACKS String[] lootPoolNames = new String[]{"profession_bracelets_"+levelRange,"house_furniture","wearable_backpacks"}; - int[] lootPoolChances = new int[]{50,25,25}; + int[] lootPoolChances = new int[]{60,30,10}; int lootGroupChance = 80; treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); // WEAPONSMITH COMPONENTS JEDI COMPONENTS GEM COLLECTION ITEMS TREASURE HUNTER COLLECTION ITEMS - - // CONSUMABLE BUFF ITEMS -// Flask of Elba Water -// Flask of Naris-bud Tea -// Small flask of Nerfmilk + lootPoolNames = new String[]{"weaponsmith_components","jedi_components","gem_collection_items","treasure_hunter_collection_items"}; + lootPoolChances = new int[]{15,25,30,30}; + lootGroupChance = 80; + treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); + // COMMON LOOTS: // Looted non-wearable Bounty Hunter armor pieces (Used to make Mandalorian armor at the Death Watch Bunker) @@ -480,11 +480,17 @@ public class Forager { // Advanced Power Stim (CL80) // Loot kits adhesives // Various Schematics + lootPoolNames = new String[]{"bh_armor_for_mando","advanced_stims_80","loot_kits_adhesives","various_schematics"}; + lootPoolChances = new int[]{15,25,30,30}; + lootGroupChance = 80; + treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); + + + //GEM COLLECTION ITEMS CONSUMABLE BUFF ITEMS // VERY RARE BUFF ITEMS - lootPoolNames = new String[]{"Rare Nova Crystal"," Rare Rol Stone","Rare Power Gem", - " Rare Corusca Gem","Rare Sasho Gem","Rare Ankarres Sapphire "}; - lootPoolChances = new int[]{17,17,17,17,17,15}; + lootPoolNames = new String[]{"rare_buff_items"}; + lootPoolChances = new int[]{100}; lootGroupChance = 1; treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); From e9065c480f3a94b5a8722473597eddc2ea1d9d58 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Mon, 21 Apr 2014 16:14:29 -0400 Subject: [PATCH 11/27] Randomize mission strings, foundation for objectives --- src/main/NGECore.java | 2 +- .../objectives/DeliveryMissionObjective.java | 53 +++++++ .../objects/mission/MissionObject.java | 15 +- src/services/mission/MissionObjective.java | 45 ++++++ .../{ => mission}/MissionService.java | 147 ++++++++++++------ 5 files changed, 212 insertions(+), 50 deletions(-) create mode 100644 src/resources/objectives/DeliveryMissionObjective.java create mode 100644 src/services/mission/MissionObjective.java rename src/services/{ => mission}/MissionService.java (55%) diff --git a/src/main/NGECore.java b/src/main/NGECore.java index f67ac8b0..8c813812 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -61,7 +61,6 @@ import services.housing.HousingService; import services.InstanceService; import services.LoginService; import services.LootService; -import services.MissionService; import services.PlayerService; import services.ScriptService; import services.SimulationService; @@ -83,6 +82,7 @@ import services.gcw.GCWService; import services.guild.GuildService; import services.LoginService; import services.map.MapService; +import services.mission.MissionService; import services.object.ObjectService; import services.object.UpdateService; import services.pet.MountService; diff --git a/src/resources/objectives/DeliveryMissionObjective.java b/src/resources/objectives/DeliveryMissionObjective.java new file mode 100644 index 00000000..31b1ed78 --- /dev/null +++ b/src/resources/objectives/DeliveryMissionObjective.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package resources.objectives; + +import resources.objects.mission.MissionObject; +import resources.objects.tangible.TangibleObject; +import services.mission.MissionObjective; + +public class DeliveryMissionObjective extends MissionObjective { + + private TangibleObject deliveryObject; + private int objectivePhase; + + public DeliveryMissionObjective(MissionObject parent) { + super(parent); + this.objectivePhase = 0; + } + + @Override + public void activate() { + } + + @Override + public void complete() { + } + + @Override + public void drop() { + } + + public TangibleObject getDeliveryObject() { return deliveryObject; } + + public int getObjectivePhase() { return objectivePhase; } +} diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index c5d69f0a..249d8869 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -28,6 +28,7 @@ import com.sleepycat.persist.model.Persistent; import resources.objects.intangible.IntangibleObject; import resources.objects.waypoint.WaypointObject; +import services.mission.MissionObjective; import engine.clients.Client; import engine.resources.objects.IPersistent; import engine.resources.scene.Planet; @@ -57,7 +58,7 @@ public class MissionObject extends IntangibleObject implements IPersistent { private String type = ""; private int missionTemplateObject = 0; private WaypointObject attachedWaypoint; - + private MissionObjective objective; @NotPersistent MissionMessageBuilder messageBuilder = new MissionMessageBuilder(this); @@ -307,6 +308,18 @@ public class MissionObject extends IntangibleObject implements IPersistent { } } + public MissionObjective getObjective() { + synchronized(objectMutex) { + return objective; + } + } + + public void setObjective(MissionObjective objective) { + synchronized(objectMutex) { + this.objective = objective; + } + } + public Transaction getTransaction() { return txn; } diff --git a/src/services/mission/MissionObjective.java b/src/services/mission/MissionObjective.java new file mode 100644 index 00000000..aa69ed08 --- /dev/null +++ b/src/services/mission/MissionObjective.java @@ -0,0 +1,45 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package services.mission; + +import resources.objects.mission.MissionObject; + +public abstract class MissionObjective { + + protected long startTime; + protected boolean activated; + protected MissionObject parent; + + public MissionObjective(MissionObject parent) { + this.startTime = System.currentTimeMillis(); + this.activated = false; + this.parent = parent; + } + + public abstract void activate(); + public abstract void complete(); + public abstract void drop(); + + public long getStartTime() { return startTime; } + public boolean isActivated() { return activated; } + public MissionObject getParent() { return parent; } +} diff --git a/src/services/MissionService.java b/src/services/mission/MissionService.java similarity index 55% rename from src/services/MissionService.java rename to src/services/mission/MissionService.java index 02b4c929..488f7d52 100644 --- a/src/services/MissionService.java +++ b/src/services/mission/MissionService.java @@ -19,11 +19,14 @@ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. ******************************************************************************/ -package services; +package services.mission; +import java.io.File; +import java.io.IOException; import java.nio.ByteOrder; import java.util.Map; import java.util.Random; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; import main.NGECore; @@ -35,14 +38,17 @@ import protocol.swg.objectControllerObjects.MissionListRequest; import resources.common.Console; import resources.common.TerminalType; import resources.common.ObjControllerOpcodes; +import resources.objectives.DeliveryMissionObjective; import resources.objects.creature.CreatureObject; import resources.objects.mission.MissionObject; import resources.objects.tangible.TangibleObject; import resources.objects.waypoint.WaypointObject; import engine.clientdata.ClientFileManager; +import engine.clientdata.StfTable; import engine.clientdata.visitors.DatatableVisitor; import engine.clients.Client; import engine.resources.common.CRC; +import engine.resources.common.NameGen; import engine.resources.container.Traverser; import engine.resources.objects.SWGObject; import engine.resources.scene.Planet; @@ -53,11 +59,20 @@ import engine.resources.service.INetworkRemoteEvent; public class MissionService implements INetworkDispatch { private NGECore core; + private NameGen nameGenerator; + // Use a HashMap for obtaining number of entries so we aren't using a visitor all the time. + private ConcurrentHashMap entryCounts = new ConcurrentHashMap(); + private Random ran = new Random(); public MissionService(NGECore core) { this.core = core; + + try { nameGenerator = new NameGen("names.txt"); } + catch (IOException e) { e.printStackTrace(); } + + populateMissionEntryCount(); } - + @Override public void insertOpcodes(Map swgOpcodes, Map objControllerOpcodes) { objControllerOpcodes.put(ObjControllerOpcodes.MISSION_LIST_REQUEST, new INetworkRemoteEvent() { @@ -105,79 +120,115 @@ public class MissionService implements INetworkDispatch { debugMissionDelta(creature); } - // May want to create a map for the server with needed info - public int getNumberOfEntries(String stf) { - try { - DatatableVisitor stfFile = ClientFileManager.loadFile(stf, DatatableVisitor.class); + private void populateMissionEntryCount() { + File missionFolder = new File("./clientdata/string/en/mission"); + File[] missionFiles = missionFolder.listFiles(); + + int missionStrings = 0; + for (int i = 0; i < missionFiles.length; i++) { + if (missionFiles[i].getName().contains("_easy") || missionFiles[i].getName().contains("_medium") || missionFiles[i].getName().contains("_hard")) { - for (int s = 0; s < stfFile.getRowCount(); s++) { - String name = ((String) stfFile.getObject(s, 3)); - Console.println("Name: " + name); - if (name.equals("number_of_entries")) { - int entryCount = ((int) stfFile.getObject(s, 4)); - Console.println("Entry Count: " + entryCount); - return entryCount; - } + String missionStf = "clientdata" + missionFiles[i].getAbsolutePath().split("clientdata")[1].replace("\\", "/"); + try { + StfTable stf = new StfTable(missionStf); + boolean gotCount = false; + + for (int s = 1; s < stf.getRowCount(); s++) { + + if (stf.getStringById(s).getKey() != null && stf.getStringById(s).getKey().equals("number_of_entries")) { + String finalStr = missionStf.split("clientdata/string/en/")[1].replace(".stf", ""); + entryCounts.put(finalStr, Integer.parseInt(stf.getStringById(s).getValue())); + gotCount = true; + } + } + if (gotCount == false) { + System.out.println("!NO ENTRY COUNT FOR " + missionStf); + continue; + } + } catch (Exception e) { e.printStackTrace(); } + missionStrings++; } } - catch (InstantiationException | IllegalAccessException e) { - e.printStackTrace(); - } - - return 0; + System.out.println("Loaded " + missionStrings + " mission entry counts."); } public void debugMissionDelta(CreatureObject creature) { TangibleObject missionBag = (TangibleObject) creature.getSlottedObject("mission_bag"); - final AtomicInteger count = new AtomicInteger(); - final AtomicInteger deCount = new AtomicInteger(); - final AtomicInteger dCount = new AtomicInteger(); - count.getAndSet(1); + final AtomicInteger destroyCount = new AtomicInteger(); + final AtomicInteger deliverCount = new AtomicInteger(); + missionBag.viewChildren(creature, true, false, new Traverser() { @Override public void process(SWGObject child) { - //if (count.get() > 1) - //return; - - if (child instanceof MissionObject == true) { - System.out.println(count.get() + " is a MissionObject"); - } else { - System.out.println(count.get() + " is not a MissionObject!!"); - } - - MissionObject mission = (MissionObject) child; - if (deCount.get() < 5) { - mission.setMissionType("destroy"); - deCount.getAndIncrement(); - Console.println("Destroy missions: " + String.valueOf(deCount.get())); - } - else if (dCount.get() < 5) { - mission.setMissionType("deliver"); - dCount.getAndIncrement(); - Console.println("Deliver missions: " + String.valueOf(dCount.get())); - } else { + if (child instanceof MissionObject == false) return; + + MissionObject mission = (MissionObject) child; + if (destroyCount.get() < 5) { + mission.setMissionType("destroy"); + + String missionStf = "mission/mission_destroy_neutral_easy_creature"; + int strId = getRandomStringEntry(missionStf); + + mission.setMissionDescription(missionStf, "m" + String.valueOf(strId) + "d"); + mission.setMissionTitle(missionStf, "m" + String.valueOf(strId) + "t"); + + destroyCount.getAndIncrement(); } + else if (deliverCount.get() < 5) { + mission.setMissionType("deliver"); + + String missionStf = "mission/mission_deliver_neutral_easy"; + int strId = getRandomStringEntry(missionStf); + + mission.setMissionDescription(missionStf, "m" + String.valueOf(strId) + "d"); + mission.setMissionTitle(missionStf, "m" + String.valueOf(strId) + "t"); + + deliverCount.getAndIncrement(); + } + else { return; } + + mission.setCreator(nameGenerator.compose(2) + " " + nameGenerator.compose(3)); - mission.setMissionDescription("mission/mission_deliver_neutral_easy", "m9d"); mission.setMissionLevel(1); mission.setMissionStart((float) 3377.148, (float) -4753.221, (float) 0, "tatooine"); - mission.setCreator("Waverunner"); mission.setCreditReward(69); mission.setMissionDestination((float) 3447.129, (float) -5070.057, (float) 0, "tatooine"); mission.setMissionTemplateObject(CRC.StringtoCRC("object/tangible/mission/shared_mission_datadisk.iff")); - mission.setMissionTitle("mission/mission_deliver_neutral_easy", "m9t"); mission.setRepeatCount(1); - //mission.sendMissionDelta(); - System.out.println("Object: " + count.getAndIncrement()); } }); } + + private int getRandomStringEntry(String missionStf) { + int ranEntryNum = 1; + + if (entryCounts.get(missionStf) != null) { ranEntryNum = ran.nextInt(entryCounts.get(missionStf)); } + else { System.out.println(missionStf + " was not found in entryCount and is using entry #1"); } + + if (ranEntryNum == 0) + return 1; + else + return ranEntryNum; + } + + private void randomDeliveryMission(MissionObject mission) { + mission.setMissionType("deliver"); + + String missionStf = "mission/mission_deliver_neutral_easy"; + int strId = getRandomStringEntry(missionStf); + + mission.setMissionDescription(missionStf, "m" + String.valueOf(strId) + "d"); + mission.setMissionTitle(missionStf, "m" + String.valueOf(strId) + "t"); + + //mission.setObjective(new DeliveryMissionObjective(mission)); + } + @Override public void shutdown() { From a00f637f13e789881e059bea56f42ab9de31112e Mon Sep 17 00:00:00 2001 From: Waverunner Date: Tue, 22 Apr 2014 17:54:05 -0400 Subject: [PATCH 12/27] More randomization's for delivery missions, more work on objectives --- .../MissionAcceptRequest.java | 62 ++++ .../MissionAcceptResponse.java} | 70 +++-- .../common/ObjControllerOpcodes.java | 1 + .../objectives/DeliveryMissionObjective.java | 1 + .../mission/MissionMessageBuilder.java | 36 ++- .../objects/mission/MissionObject.java | 103 +++---- src/services/mission/MissionObjective.java | 6 + src/services/mission/MissionService.java | 283 +++++++++++++----- 8 files changed, 374 insertions(+), 188 deletions(-) create mode 100644 src/protocol/swg/objectControllerObjects/MissionAcceptRequest.java rename src/{resources/common/TerminalType.java => protocol/swg/objectControllerObjects/MissionAcceptResponse.java} (73%) diff --git a/src/protocol/swg/objectControllerObjects/MissionAcceptRequest.java b/src/protocol/swg/objectControllerObjects/MissionAcceptRequest.java new file mode 100644 index 00000000..62a37694 --- /dev/null +++ b/src/protocol/swg/objectControllerObjects/MissionAcceptRequest.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package protocol.swg.objectControllerObjects; + +import org.apache.mina.core.buffer.IoBuffer; + +public class MissionAcceptRequest extends ObjControllerObject { + + private long missionObjId; + private long terminalObjId; + + public MissionAcceptRequest() { } + + @Override + public void deserialize(IoBuffer data) { + data.getLong(); + data.getInt(); + setMissionObjId(data.getLong()); + setTerminalObjId(data.getLong()); + } + + @Override + public IoBuffer serialize() { + return null; + } + + public long getMissionObjId() { + return missionObjId; + } + + public void setMissionObjId(long misssionObjId) { + this.missionObjId = misssionObjId; + } + + public long getTerminalObjId() { + return terminalObjId; + } + + public void setTerminalObjId(long terminalObjId) { + this.terminalObjId = terminalObjId; + } + +} diff --git a/src/resources/common/TerminalType.java b/src/protocol/swg/objectControllerObjects/MissionAcceptResponse.java similarity index 73% rename from src/resources/common/TerminalType.java rename to src/protocol/swg/objectControllerObjects/MissionAcceptResponse.java index 375d1e61..50e862e9 100644 --- a/src/resources/common/TerminalType.java +++ b/src/protocol/swg/objectControllerObjects/MissionAcceptResponse.java @@ -1,30 +1,40 @@ -/******************************************************************************* - * Copyright (c) 2013 - * - * This File is part of NGECore2. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - * - * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. - * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. - ******************************************************************************/ -package resources.common; - -public class TerminalType { - public static int MISSION_GENERIC = 1; - public static int MISSION_BOUNTYHUNTER = 2; - public static int MISSION_ENTERTAINER = 3; - public static int MISSION_ARTISAN = 4; - public static int MISSION_EXPLORER = 5; -} +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package protocol.swg.objectControllerObjects; + +import org.apache.mina.core.buffer.IoBuffer; + +public class MissionAcceptResponse extends ObjControllerObject { + + @Override + public void deserialize(IoBuffer data) { + // TODO Auto-generated method stub + + } + + @Override + public IoBuffer serialize() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/resources/common/ObjControllerOpcodes.java b/src/resources/common/ObjControllerOpcodes.java index 8cc142fd..41db9dbd 100644 --- a/src/resources/common/ObjControllerOpcodes.java +++ b/src/resources/common/ObjControllerOpcodes.java @@ -34,6 +34,7 @@ public class ObjControllerOpcodes { public static final int BUFF_BUILDER_CHANGE = 0x5A020000; public static final int BUFF_BUILDER_END = 0x5B020000; public static final int MISSION_LIST_REQUEST = 0xF5000000; + public static final int MISSION_GENERIC_REQUEST = 0xF9000000; public static final int ChangeRoleIconChoice = 0x4D040000; public static final int IMAGE_DESIGN_CHANGE = 0x38020000; public static final int IMAGE_DESIGN_END = 0x39020000; diff --git a/src/resources/objectives/DeliveryMissionObjective.java b/src/resources/objectives/DeliveryMissionObjective.java index 31b1ed78..aa4d7a00 100644 --- a/src/resources/objectives/DeliveryMissionObjective.java +++ b/src/resources/objectives/DeliveryMissionObjective.java @@ -37,6 +37,7 @@ public class DeliveryMissionObjective extends MissionObjective { @Override public void activate() { + setActive(true); } @Override diff --git a/src/resources/objects/mission/MissionMessageBuilder.java b/src/resources/objects/mission/MissionMessageBuilder.java index c97226cd..236afe65 100644 --- a/src/resources/objects/mission/MissionMessageBuilder.java +++ b/src/resources/objects/mission/MissionMessageBuilder.java @@ -59,9 +59,15 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putInt(mission.getMissionLevel()); - buffer.putFloat(mission.getMissionStartX()); - buffer.putFloat(mission.getMissionStartZ()); // missionStartZ - buffer.putFloat(mission.getMissionStartY()); + if (mission.getStartLocation() != null) { + buffer.putFloat(mission.getStartLocation().x); + buffer.putFloat(0); + buffer.putFloat(mission.getStartLocation().z); + } else { + buffer.putFloat(0); + buffer.putFloat(0); + buffer.putFloat(0); + } buffer.putLong(0); // Start Object ID if (mission.getMissionStartPlanet() == null) buffer.putInt(0); @@ -75,9 +81,15 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putInt(mission.getCreditReward()); - buffer.putFloat(mission.getMissionDestinationX()); - buffer.putFloat(mission.getMissionDestinationZ()); - buffer.putFloat(mission.getMissionDestinationY()); + if (mission.getDestination() != null) { + buffer.putFloat(mission.getDestination().x); + buffer.putFloat(0); + buffer.putFloat(mission.getDestination().z); + } else { + buffer.putFloat(0); + buffer.putFloat(0); + buffer.putFloat(0); + } buffer.putLong(0); // Destination Object ID if (mission.getMissionDestinationPlanet() == null) buffer.putInt(0); @@ -207,13 +219,13 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } - public IoBuffer buildStartLocationDelta(float x, float z, float y, String planet) { + public IoBuffer buildStartLocationDelta(float x, float z, String planet) { IoBuffer buffer = IoBuffer.allocate(24, false).order(ByteOrder.LITTLE_ENDIAN); buffer.putFloat(x); + buffer.putFloat(0); buffer.putFloat(z); - buffer.putFloat(y); buffer.putLong(0); @@ -224,7 +236,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { } int size = buffer.position(); buffer.flip(); - buffer = createDelta("MISO", (byte) 3, (short) 1, (short) 0x06, buffer, size + 4); + buffer = createDelta("MISO", (byte) 3, (short) 1, (short) 0x09, buffer, size + 4); return buffer; } @@ -255,13 +267,13 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } - public IoBuffer buildDestinationDelta(float x, float z, float y, String planet) { + public IoBuffer buildDestinationDelta(float x, float z, String planet) { IoBuffer buffer = IoBuffer.allocate(24, false).order(ByteOrder.LITTLE_ENDIAN); buffer.putFloat(x); + buffer.putFloat(0); buffer.putFloat(z); - buffer.putFloat(y); buffer.putLong(0); // Destination Object ID @@ -273,7 +285,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { int size = buffer.position(); buffer.flip(); - buffer = createDelta("MISO", (byte) 3, (short) 1, (short) 0x09, buffer, size + 4); + buffer = createDelta("MISO", (byte) 3, (short) 1, (short) 0x06, buffer, size + 4); return buffer; } diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index 249d8869..4c6d1cd4 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -38,12 +38,8 @@ import engine.resources.scene.Quaternion; @Persistent(version=0) public class MissionObject extends IntangibleObject implements IPersistent { - private float destX = 0; - private float destY = 0; - private float destZ = 0; - private float startX = 0; - private float startY = 0; - private float startZ = 0; + private Point3D destination; + private Point3D startLocation; private String startPlanet = ""; private int difficultyLevel = 0; // Difficulty level displayed in details private String destinationPlanet = ""; @@ -74,66 +70,6 @@ public class MissionObject extends IntangibleObject implements IPersistent { super(objectID, planet, new Point3D(0, 0, 0), new Quaternion(1, 0, 0, 0), template); } - public float getMissionStartX() { - synchronized(objectMutex) { - return startX; - } - } - - public float getMissionStartY() { - synchronized(objectMutex) { - return startY; - } - } - - public float getMissionStartZ() { - synchronized(objectMutex) { - return startZ; - } - } - - public void setMissionStart(float x, float y, float z, String planet) { - synchronized(objectMutex) { - this.startZ = z; - this.startX = x; - this.startY = y; - this.startPlanet = planet; - } - if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { - getGrandparent().getClient().getSession().write(messageBuilder.buildStartLocationDelta(x, z, y, planet)); - } - } - - public float getMissionDestinationX() { - synchronized(objectMutex) { - return destX; - } - } - - public float getMissionDestinationY() { - synchronized(objectMutex) { - return destY; - } - } - - public float getMissionDestinationZ() { - synchronized(objectMutex) { - return destZ; - } - } - - public void setMissionDestination(float x, float y, float z, String planet) { - synchronized(objectMutex) { - this.destZ = z; - this.destY = y; - this.destZ = z; - this.destinationPlanet = planet; - } - if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { - getGrandparent().getClient().getSession().write(messageBuilder.buildDestinationDelta(x, z, y, planet)); - } - } - public String getMissionDestinationPlanet() { synchronized(objectMutex) { return destinationPlanet; @@ -304,7 +240,6 @@ public class MissionObject extends IntangibleObject implements IPersistent { } if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { getGrandparent().getClient().getSession().write(messageBuilder.buildMissionTypeDelta(missionType)); - } } @@ -320,6 +255,40 @@ public class MissionObject extends IntangibleObject implements IPersistent { } } + public Point3D getStartLocation() { + synchronized(objectMutex) { + return startLocation; + } + } + + public Point3D getDestination() { + synchronized(objectMutex) { + return destination; + } + } + + public void setStartLocation(Point3D startLocation, String planet) { + synchronized(objectMutex) { + this.startLocation = startLocation; + this.startPlanet = planet; + } + + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildStartLocationDelta(startLocation.x, startLocation.z, planet)); + } + } + + public void setDestination(Point3D destination, String planet) { + synchronized(objectMutex) { + this.destination = destination; + this.destinationPlanet = planet; + } + + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildDestinationDelta(destination.x, destination.z, planet)); + } + } + public Transaction getTransaction() { return txn; } diff --git a/src/services/mission/MissionObjective.java b/src/services/mission/MissionObjective.java index aa69ed08..37b7de49 100644 --- a/src/services/mission/MissionObjective.java +++ b/src/services/mission/MissionObjective.java @@ -21,14 +21,19 @@ ******************************************************************************/ package services.mission; +import com.sleepycat.persist.model.Persistent; + import resources.objects.mission.MissionObject; +@Persistent public abstract class MissionObjective { protected long startTime; protected boolean activated; protected MissionObject parent; + public MissionObjective() { } + public MissionObjective(MissionObject parent) { this.startTime = System.currentTimeMillis(); this.activated = false; @@ -41,5 +46,6 @@ public abstract class MissionObjective { public long getStartTime() { return startTime; } public boolean isActivated() { return activated; } + public void setActive(boolean isActive) { this.activated = isActive; } public MissionObject getParent() { return parent; } } diff --git a/src/services/mission/MissionService.java b/src/services/mission/MissionService.java index 488f7d52..0ed0dddd 100644 --- a/src/services/mission/MissionService.java +++ b/src/services/mission/MissionService.java @@ -27,6 +27,7 @@ import java.nio.ByteOrder; import java.util.Map; import java.util.Random; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import main.NGECore; @@ -34,24 +35,22 @@ import main.NGECore; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession; +import protocol.swg.objectControllerObjects.MissionAcceptRequest; +import protocol.swg.objectControllerObjects.MissionAcceptResponse; import protocol.swg.objectControllerObjects.MissionListRequest; import resources.common.Console; -import resources.common.TerminalType; +import resources.common.SpawnPoint; import resources.common.ObjControllerOpcodes; import resources.objectives.DeliveryMissionObjective; import resources.objects.creature.CreatureObject; import resources.objects.mission.MissionObject; import resources.objects.tangible.TangibleObject; -import resources.objects.waypoint.WaypointObject; -import engine.clientdata.ClientFileManager; import engine.clientdata.StfTable; -import engine.clientdata.visitors.DatatableVisitor; import engine.clients.Client; import engine.resources.common.CRC; import engine.resources.common.NameGen; import engine.resources.container.Traverser; import engine.resources.objects.SWGObject; -import engine.resources.scene.Planet; import engine.resources.scene.Point3D; import engine.resources.service.INetworkDispatch; import engine.resources.service.INetworkRemoteEvent; @@ -70,7 +69,7 @@ public class MissionService implements INetworkDispatch { try { nameGenerator = new NameGen("names.txt"); } catch (IOException e) { e.printStackTrace(); } - populateMissionEntryCount(); + loadMissionEntryCounts(); } @Override @@ -79,11 +78,6 @@ public class MissionService implements INetworkDispatch { @Override public void handlePacket(IoSession session, IoBuffer data) throws Exception { - data.order(ByteOrder.LITTLE_ENDIAN); - - MissionListRequest request = new MissionListRequest(); - request.deserialize(data); - Client client = core.getClient(session); if(client == null || client.getSession() == null) @@ -94,17 +88,25 @@ public class MissionService implements INetworkDispatch { if(object == null) return; + data.order(ByteOrder.LITTLE_ENDIAN); + + MissionListRequest request = new MissionListRequest(); + request.deserialize(data); + SWGObject terminal = core.objectService.getObject(request.getTerminalId()); + if (terminal.getAttachment("terminalType") == null) + return; + int terminalType = (int) terminal.getAttachment("terminalType"); - if (terminalType == TerminalType.MISSION_GENERIC) { - populateMissions(core.objectService.getObject(request.getObjectId()), TerminalType.MISSION_GENERIC); - } else if (terminalType == TerminalType.MISSION_BOUNTYHUNTER) { + if (terminalType == TerminalType.GENERIC) { + handleMissionListRequest(core.objectService.getObject(request.getObjectId()), request.getTickCount(), TerminalType.GENERIC); + } else if (terminalType == TerminalType.BOUNTYHUNTER) { - } else if (terminalType == TerminalType.MISSION_ENTERTAINER) { + } else if (terminalType == TerminalType.ENTERTAINER) { - } else if (terminalType == TerminalType.MISSION_ARTISAN) { + } else if (terminalType == TerminalType.ARTISAN) { } else { Console.println("ERROR: Unsupported terminal " + terminal.getObjectId()); @@ -112,15 +114,43 @@ public class MissionService implements INetworkDispatch { } }); - } - - private void populateMissions(final SWGObject player, int type) { - CreatureObject creature = (CreatureObject) player; - debugMissionDelta(creature); + objControllerOpcodes.put(ObjControllerOpcodes.MISSION_GENERIC_REQUEST, new INetworkRemoteEvent() { + + @Override + public void handlePacket(IoSession session, IoBuffer data) throws Exception { + Client client = core.getClient(session); + + if(client == null || client.getSession() == null) + return; + + SWGObject object = client.getParent(); + + if(object == null) + return; + + CreatureObject creature = (CreatureObject) object; + + data.order(ByteOrder.LITTLE_ENDIAN); + + MissionAcceptRequest request = new MissionAcceptRequest(); + request.deserialize(data); + + MissionObject mission = (MissionObject) core.objectService.getObject(request.getMissionObjId()); + + if (mission == null) + return; + + if (handleMissionAccept(creature, mission)) { + //MissionAcceptResponse response = new MissionAcceptResponse(); + //session.write(response.serialize()); + } + } + + }); } - - private void populateMissionEntryCount() { + + private void loadMissionEntryCounts() { File missionFolder = new File("./clientdata/string/en/mission"); File[] missionFiles = missionFolder.listFiles(); @@ -152,58 +182,6 @@ public class MissionService implements INetworkDispatch { System.out.println("Loaded " + missionStrings + " mission entry counts."); } - public void debugMissionDelta(CreatureObject creature) { - TangibleObject missionBag = (TangibleObject) creature.getSlottedObject("mission_bag"); - - final AtomicInteger destroyCount = new AtomicInteger(); - final AtomicInteger deliverCount = new AtomicInteger(); - - missionBag.viewChildren(creature, true, false, new Traverser() { - - @Override - public void process(SWGObject child) { - - if (child instanceof MissionObject == false) - return; - - MissionObject mission = (MissionObject) child; - if (destroyCount.get() < 5) { - mission.setMissionType("destroy"); - - String missionStf = "mission/mission_destroy_neutral_easy_creature"; - int strId = getRandomStringEntry(missionStf); - - mission.setMissionDescription(missionStf, "m" + String.valueOf(strId) + "d"); - mission.setMissionTitle(missionStf, "m" + String.valueOf(strId) + "t"); - - destroyCount.getAndIncrement(); - } - else if (deliverCount.get() < 5) { - mission.setMissionType("deliver"); - - String missionStf = "mission/mission_deliver_neutral_easy"; - int strId = getRandomStringEntry(missionStf); - - mission.setMissionDescription(missionStf, "m" + String.valueOf(strId) + "d"); - mission.setMissionTitle(missionStf, "m" + String.valueOf(strId) + "t"); - - deliverCount.getAndIncrement(); - } - else { return; } - - mission.setCreator(nameGenerator.compose(2) + " " + nameGenerator.compose(3)); - - mission.setMissionLevel(1); - mission.setMissionStart((float) 3377.148, (float) -4753.221, (float) 0, "tatooine"); - mission.setCreditReward(69); - mission.setMissionDestination((float) 3447.129, (float) -5070.057, (float) 0, "tatooine"); - mission.setMissionTemplateObject(CRC.StringtoCRC("object/tangible/mission/shared_mission_datadisk.iff")); - mission.setRepeatCount(1); - - } - - }); - } private int getRandomStringEntry(String missionStf) { int ranEntryNum = 1; @@ -216,22 +194,169 @@ public class MissionService implements INetworkDispatch { else return ranEntryNum; } + + private void handleMissionListRequest(final SWGObject player, int requestCounter, int type) { + CreatureObject creature = (CreatureObject) player; + + TangibleObject missionBag = (TangibleObject) creature.getSlottedObject("mission_bag"); + + if (missionBag == null || creature == null) + return; + + final AtomicInteger typeOneCount = new AtomicInteger(); + final AtomicInteger typeTwoCount = new AtomicInteger(); + + missionBag.viewChildren(creature, true, false, new Traverser() { + + @Override + public void process(SWGObject obj) { + + if (obj instanceof MissionObject == false) + return; + + MissionObject mission = (MissionObject) obj; + + if (typeOneCount.get() < 4) { + + if (type == TerminalType.GENERIC) + randomDeliveryMission(player, mission); + + else if (type == TerminalType.BOUNTYHUNTER) + randomBountyMission(player, mission); + + else if (type == TerminalType.ARTISAN) + return; + + else + return; + + mission.setRepeatCount(requestCounter); + typeOneCount.incrementAndGet(); + + } else if (typeTwoCount.get() < 4) { + + if (type == TerminalType.GENERIC) + randomDestroyMission(player, mission); + + else if (type == TerminalType.BOUNTYHUNTER) + return; + + else if (type == TerminalType.ARTISAN) + return; + + else + return; + + mission.setRepeatCount(requestCounter); + typeTwoCount.incrementAndGet(); + } + } + }); + } - private void randomDeliveryMission(MissionObject mission) { + private boolean handleMissionAccept(CreatureObject creature, MissionObject mission) { + SWGObject missionBag = creature.getSlottedObject("mission_bag"); + + if (mission.getContainer() != missionBag) + return false; + + TangibleObject datapad = (TangibleObject) creature.getSlottedObject("datapad"); + + if (datapad == null) + return false; + + AtomicInteger missionCount = new AtomicInteger(); + AtomicBoolean hasBountyMission = new AtomicBoolean(false); + datapad.viewChildren(creature, true, false, new Traverser() { + + @Override + public void process(SWGObject obj) { + if (obj instanceof MissionObject) { + missionCount.incrementAndGet(); + + if (((MissionObject) obj).getMissionType().equals("bounty")) + hasBountyMission.set(true); + } + } + }); + + if (hasBountyMission.get() && mission.getMissionType().equals("bounty")) // Can only have 1 bounty mission + return false; + + System.out.println("Player has " + missionCount.get() + " missions."); + + if (missionCount.get() == 2) { + creature.sendSystemMessage("@mission/mission_generic:too_many_missions", (byte) 0); + return false; + } + if (missionBag.transferTo(creature, datapad, mission)) { + createMissionObjective(creature, mission); + return true; + } else { return false; } + } + + private void createMissionObjective(CreatureObject creature, MissionObject mission) { + String type = mission.getMissionType(); + + switch(type) { + + case "deliver": + DeliveryMissionObjective objective = new DeliveryMissionObjective(mission); + + mission.setObjective(objective); + + objective.activate(); + break; + + default: + break; + } + } + + private void randomDeliveryMission(SWGObject player, MissionObject mission) { mission.setMissionType("deliver"); - String missionStf = "mission/mission_deliver_neutral_easy"; + String[] difficulties = { "easy", "medium", "hard" }; + + String missionStf = "mission/mission_deliver_neutral_" + difficulties[ran.nextInt(difficulties.length)]; int strId = getRandomStringEntry(missionStf); mission.setMissionDescription(missionStf, "m" + String.valueOf(strId) + "d"); mission.setMissionTitle(missionStf, "m" + String.valueOf(strId) + "t"); - //mission.setObjective(new DeliveryMissionObjective(mission)); + mission.setCreator(nameGenerator.compose(2) + " " + nameGenerator.compose(3)); + + mission.setMissionLevel(5); + + Point3D startLocation = SpawnPoint.getRandomPosition(player.getPosition(), (float) 50, (float) 300, player.getPlanetId()); + Point3D destination = SpawnPoint.getRandomPosition(startLocation, (float) 50, (float) 500, player.getPlanetId()); + + mission.setStartLocation(startLocation, player.getPlanet().name); + mission.setDestination(destination, player.getPlanet().name); + + mission.setCreditReward((int) (50 * ((player.getWorldPosition().getDistance2D(destination) / 10)))); + + mission.setMissionTemplateObject(CRC.StringtoCRC("object/tangible/mission/shared_mission_datadisk.iff")); + mission.setMissionTargetName("Datadisk"); + } + + private void randomDestroyMission(SWGObject player, MissionObject mission) { + + } + + private void randomBountyMission(SWGObject player, MissionObject mission) { + + } + public enum TerminalType {; + public static final int GENERIC = 1; + public static final int BOUNTYHUNTER = 2; + public static final int ENTERTAINER = 3; + public static final int ARTISAN = 4; + public static final int EXPLORER = 5; } @Override public void shutdown() { } - } From 0425810f5192f64ba5c9ce57b9f05f85515d3df3 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Thu, 24 Apr 2014 04:59:51 +0200 Subject: [PATCH 13/27] Added more very rare loot and prof jewelry --- .../bracelet_of_Inspired_Status(right).py | 21 ++++++++++++++ ...er-toxin_wristband_prototype_IV_(right).py | 24 ++++++++++++++++ ...nsurgency_wrist_implantat-BLACK-(right).py | 24 ++++++++++++++++ .../insurgent_scanner_wrist_module_(right).py | 21 ++++++++++++++ ...jedi_knight_meditation_bracelet_(right).py | 26 +++++++++++++++++ .../jedi_knights_wristguard_(right).py | 24 ++++++++++++++++ .../treasureloot/jedi_wristguard(right).py | 28 +++++++++++++++++++ .../manufacturing_verdicator_200a_(right).py | 24 ++++++++++++++++ .../personnel_comlink_wrist-P4_(right).py | 24 ++++++++++++++++ ...argeter_ranging_wrist_assist_V4_(right).py | 24 ++++++++++++++++ ...ing_assist_wrist_implant_PTI-IV_(right).py | 24 ++++++++++++++++ .../wrist_assault_booster_zulu_(right).py | 24 ++++++++++++++++ ...st_communications_scanner_SCNv4_(right).py | 22 +++++++++++++++ .../veryrareloot/rare_ankarres_sapphire.py | 17 +++++++++++ .../veryrareloot/rare_corusca_gem.py | 16 +++++++++++ .../veryrareloot/rare_nova_crystal.py | 17 +++++++++++ .../lootItems/veryrareloot/rare_power_gem.py | 17 +++++++++++ .../lootItems/veryrareloot/rare_rol_stone.py | 17 +++++++++++ .../lootItems/veryrareloot/rare_sasho_gem.py | 17 +++++++++++ .../loot/lootPools/profession_bracelets_75.py | 4 +-- .../loot/lootPools/profession_bracelets_85.py | 4 +-- src/services/LootService.java | 19 +++++++++++++ 22 files changed, 434 insertions(+), 4 deletions(-) create mode 100644 scripts/loot/lootItems/treasureloot/bracelet_of_Inspired_Status(right).py create mode 100644 scripts/loot/lootItems/treasureloot/counter-toxin_wristband_prototype_IV_(right).py create mode 100644 scripts/loot/lootItems/treasureloot/insurgency_wrist_implantat-BLACK-(right).py create mode 100644 scripts/loot/lootItems/treasureloot/insurgent_scanner_wrist_module_(right).py create mode 100644 scripts/loot/lootItems/treasureloot/jedi_knight_meditation_bracelet_(right).py create mode 100644 scripts/loot/lootItems/treasureloot/jedi_knights_wristguard_(right).py create mode 100644 scripts/loot/lootItems/treasureloot/jedi_wristguard(right).py create mode 100644 scripts/loot/lootItems/treasureloot/manufacturing_verdicator_200a_(right).py create mode 100644 scripts/loot/lootItems/treasureloot/personnel_comlink_wrist-P4_(right).py create mode 100644 scripts/loot/lootItems/treasureloot/targeter_ranging_wrist_assist_V4_(right).py create mode 100644 scripts/loot/lootItems/treasureloot/targeting_assist_wrist_implant_PTI-IV_(right).py create mode 100644 scripts/loot/lootItems/treasureloot/wrist_assault_booster_zulu_(right).py create mode 100644 scripts/loot/lootItems/treasureloot/wrist_communications_scanner_SCNv4_(right).py create mode 100644 scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py create mode 100644 scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py create mode 100644 scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py create mode 100644 scripts/loot/lootItems/veryrareloot/rare_power_gem.py create mode 100644 scripts/loot/lootItems/veryrareloot/rare_rol_stone.py create mode 100644 scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py diff --git a/scripts/loot/lootItems/treasureloot/bracelet_of_Inspired_Status(right).py b/scripts/loot/lootItems/treasureloot/bracelet_of_Inspired_Status(right).py new file mode 100644 index 00000000..57fbb45d --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/bracelet_of_Inspired_Status(right).py @@ -0,0 +1,21 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Bracelet of Inspired Status (Right)' + +def requiredProfession(): + + return 'Entertainer' + +def requiredCL(): + + return 80 + +def itemSkillMods(): + + mods = ['expertise_en_inspire_pulse_duration_increase','1'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/counter-toxin_wristband_prototype_IV_(right).py b/scripts/loot/lootItems/treasureloot/counter-toxin_wristband_prototype_IV_(right).py new file mode 100644 index 00000000..13e10f5e --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/counter-toxin_wristband_prototype_IV_(right).py @@ -0,0 +1,24 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Adventurer Hiker & Hunter Counter-Toxin Wristband Prototype IV (right)' + +def biolink(): + + return 1 + +def requiredCL(): + + return 75 + +def itemSkillMods(): + + mods = ['absorption_bleeding','8'] + mods += ['absorption_disease','8'] + mods += ['absorption_fire','8'] + mods += ['absorption_poison','8'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/insurgency_wrist_implantat-BLACK-(right).py b/scripts/loot/lootItems/treasureloot/insurgency_wrist_implantat-BLACK-(right).py new file mode 100644 index 00000000..91289dfb --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/insurgency_wrist_implantat-BLACK-(right).py @@ -0,0 +1,24 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Corellidyne Personal Insurgency Wris Implantat -BLACK- (Right)' + +def requiredProfession(): + + return 'Spy' + +def requiredCL(): + + return 75 + +def itemSkillMods(): + + mods = ['expertise_action_line_sp_dm','4'] + mods += ['expertise_critical_line_sp_dm','4'] + mods += ['expertise_damage_line_sp_dm','4'] + mods += ['expertise_freeshot_sp_dm','4'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/insurgent_scanner_wrist_module_(right).py b/scripts/loot/lootItems/treasureloot/insurgent_scanner_wrist_module_(right).py new file mode 100644 index 00000000..9311b78f --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/insurgent_scanner_wrist_module_(right).py @@ -0,0 +1,21 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Idellian Arrays PLFS-4000 Insurgent Scanner Wrist Module (Right)' + +def biolink(): + + return 1 + +def requiredCL(): + + return 75 + +def itemSkillMods(): + + mods = ['detect_hidden','10'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/jedi_knight_meditation_bracelet_(right).py b/scripts/loot/lootItems/treasureloot/jedi_knight_meditation_bracelet_(right).py new file mode 100644 index 00000000..92ef3974 --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/jedi_knight_meditation_bracelet_(right).py @@ -0,0 +1,26 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Jedi Knight Meditation Bracelet (right)' + +def requiredProfession(): + + return 'Jedi' + +def requiredCL(): + + return 75 + +def biolink(): + + return 1 + +def itemSkillMods(): + + mods = ['jedi_saber_assembly','3'] + mods += ['jedi_saber_experimentation','10'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/jedi_knights_wristguard_(right).py b/scripts/loot/lootItems/treasureloot/jedi_knights_wristguard_(right).py new file mode 100644 index 00000000..0056d769 --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/jedi_knights_wristguard_(right).py @@ -0,0 +1,24 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Jedi Knight\'s Wristguard (Right)' + +def requiredProfession(): + + return 'Jedi' + +def requiredCL(): + + return 85 + +def itemSkillMods(): + + mods = ['expertise_action_line_fs_dm','4'] + mods += ['expertise_critical_line_fs_dm','4'] + mods += ['expertise_damage_line_fs_dm','4'] + mods += ['expertise_freeshot_fs_dm','4'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/jedi_wristguard(right).py b/scripts/loot/lootItems/treasureloot/jedi_wristguard(right).py new file mode 100644 index 00000000..ecc1101b --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/jedi_wristguard(right).py @@ -0,0 +1,28 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Jedi\'s Wristguard (Right)' + +def requiredProfession(): + + return 'Jedi' + +def biolink(): + + return 1 + +def requiredCL(): + + return 61 + +def itemSkillMods(): + + mods = ['expertise_action_line_fs_dm','3'] + mods += ['expertise_critical_line_fs_dm','3'] + mods += ['expertise_damage_line_fs_dm','3'] + mods += ['expertise_freeshot_fs_dm','3'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/manufacturing_verdicator_200a_(right).py b/scripts/loot/lootItems/treasureloot/manufacturing_verdicator_200a_(right).py new file mode 100644 index 00000000..0442286f --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/manufacturing_verdicator_200a_(right).py @@ -0,0 +1,24 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Saldalith Manufacturing Verdicator 200A (Right)' + +def requiredProfession(): + + return 'Medic' + +def requiredCL(): + + return 85 + +def itemSkillMods(): + + mods = ['expertise_action_line_me_dm','4'] + mods += ['expertise_critical_line_me_dm','4'] + mods += ['expertise_damage_line_me_dm','4'] + mods += ['expertise_healing_all','4'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/personnel_comlink_wrist-P4_(right).py b/scripts/loot/lootItems/treasureloot/personnel_comlink_wrist-P4_(right).py new file mode 100644 index 00000000..86de451f --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/personnel_comlink_wrist-P4_(right).py @@ -0,0 +1,24 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'SoroSuub Personnel Comlink Wrist-P4 (right)' + +def requiredProfession(): + + return 'Officer' + +def requiredCL(): + + return 85 + +def itemSkillMods(): + + mods = ['expertise_action_line_of_sure','4'] + mods += ['expertise_critical_line_of_sure','4'] + mods += ['expertise_damage_line_of_sure','4'] + mods += ['expertise_freeshot_of_sure','4'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/targeter_ranging_wrist_assist_V4_(right).py b/scripts/loot/lootItems/treasureloot/targeter_ranging_wrist_assist_V4_(right).py new file mode 100644 index 00000000..79e0623d --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/targeter_ranging_wrist_assist_V4_(right).py @@ -0,0 +1,24 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Merr-Sonn Targeter Ranging Wrist Assist V4 (right)' + +def requiredProfession(): + + return 'Smuggler' + +def requiredCL(): + + return 85 + +def itemSkillMods(): + + mods = ['fast_attack_line_sm_dm','4'] + mods += ['expertise_critical_line_sm_dm','4'] + mods += ['expertise_damage_line_sm_dm','4'] + mods += ['expertise_freeshot_sm_dm','4'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/targeting_assist_wrist_implant_PTI-IV_(right).py b/scripts/loot/lootItems/treasureloot/targeting_assist_wrist_implant_PTI-IV_(right).py new file mode 100644 index 00000000..0c4d1431 --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/targeting_assist_wrist_implant_PTI-IV_(right).py @@ -0,0 +1,24 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Traxes BioElectronic Targeting Assist Wrist Implant PTI-IV (Right)' + +def requiredProfession(): + + return 'Commando' + +def requiredCL(): + + return 85 + +def itemSkillMods(): + + mods = ['expertise_action_line_co_dm','4'] + mods += ['expertise_critical_line_co_dm','4'] + mods += ['expertise_damage_line_co_dm','4'] + mods += ['expertise_freeshot_co_dm','4'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/wrist_assault_booster_zulu_(right).py b/scripts/loot/lootItems/treasureloot/wrist_assault_booster_zulu_(right).py new file mode 100644 index 00000000..fb8787d9 --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/wrist_assault_booster_zulu_(right).py @@ -0,0 +1,24 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Blastech Wristek - Wrist Assault Booster Zulu (right)' + +def requiredProfession(): + + return 'Bounty Hunter' + +def requiredCL(): + + return 85 + +def itemSkillMods(): + + mods = ['expertise_action_line_fs_dm','4'] + mods += ['expertise_critical_line_dm','4'] + mods += ['expertise_damage_line_dm','4'] + mods += ['expertise_freeshot_dm','4'] + return mods diff --git a/scripts/loot/lootItems/treasureloot/wrist_communications_scanner_SCNv4_(right).py b/scripts/loot/lootItems/treasureloot/wrist_communications_scanner_SCNv4_(right).py new file mode 100644 index 00000000..b90c0a36 --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/wrist_communications_scanner_SCNv4_(right).py @@ -0,0 +1,22 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Courier Wrist Communications Scanner SCNv4 (Right)' + +def requiredProfession(): + + return 'Bounty Hunter' + +def requiredCL(): + + return 75 + +def itemSkillMods(): + + mods = ['droid_find_speed','10'] + mods += ['expertise_critical_niche_pvp','2'] + return mods diff --git a/scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py b/scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py new file mode 100644 index 00000000..652de8d4 --- /dev/null +++ b/scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py @@ -0,0 +1,17 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Rare Ankarres Sapphire' + +def biolink(): + + return 1 + +def requiredCL(): + + return 80 + diff --git a/scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py b/scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py new file mode 100644 index 00000000..ffac6875 --- /dev/null +++ b/scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py @@ -0,0 +1,16 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Rare Corusca Gem' + +def biolink(): + + return 1 + +def requiredCL(): + + return 80 diff --git a/scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py b/scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py new file mode 100644 index 00000000..0e6c09cb --- /dev/null +++ b/scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py @@ -0,0 +1,17 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Rare Nova Crystal' + +def biolink(): + + return 1 + +def requiredCL(): + + return 80 + diff --git a/scripts/loot/lootItems/veryrareloot/rare_power_gem.py b/scripts/loot/lootItems/veryrareloot/rare_power_gem.py new file mode 100644 index 00000000..98e4c801 --- /dev/null +++ b/scripts/loot/lootItems/veryrareloot/rare_power_gem.py @@ -0,0 +1,17 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Rare Power Gem' + +def biolink(): + + return 1 + +def requiredCL(): + + return 80 + diff --git a/scripts/loot/lootItems/veryrareloot/rare_rol_stone.py b/scripts/loot/lootItems/veryrareloot/rare_rol_stone.py new file mode 100644 index 00000000..122d8292 --- /dev/null +++ b/scripts/loot/lootItems/veryrareloot/rare_rol_stone.py @@ -0,0 +1,17 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Rare Rol Stone' + +def biolink(): + + return 1 + +def requiredCL(): + + return 80 + diff --git a/scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py b/scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py new file mode 100644 index 00000000..50c7655d --- /dev/null +++ b/scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py @@ -0,0 +1,17 @@ + +def itemTemplate(): + + return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + +def customItemName(): + + return 'Rare Sasho Gem' + +def biolink(): + + return 1 + +def requiredCL(): + + return 80 + diff --git a/scripts/loot/lootPools/profession_bracelets_75.py b/scripts/loot/lootPools/profession_bracelets_75.py index 8a765e2f..1ac31b60 100644 --- a/scripts/loot/lootPools/profession_bracelets_75.py +++ b/scripts/loot/lootPools/profession_bracelets_75.py @@ -1,8 +1,8 @@ def itemNames(): names = ['jedi_knight_meditation_bracelet_(right)','wrist_communications_scanner_SCNv4_(right)'] - names += ['insurgent_scanner_wrist_module_(right)','counter-toxin_wristband_prototype_IV_(right)'] + names += ['insurgent_scanner_wrist_module_(right)','counter-toxin_wristband_prototype_IV_(right)','insurgency_wrist_implantat-BLACK-(right)'] return names def itemChances(): - return [25,25,25,25] \ No newline at end of file + return [20,20,20,20,20] \ No newline at end of file diff --git a/scripts/loot/lootPools/profession_bracelets_85.py b/scripts/loot/lootPools/profession_bracelets_85.py index 9d609ba1..dbaba8db 100644 --- a/scripts/loot/lootPools/profession_bracelets_85.py +++ b/scripts/loot/lootPools/profession_bracelets_85.py @@ -1,10 +1,10 @@ def itemNames(): names = ['jedi_knights_wristguard_(right)','wrist_assault_booster_zulu_(right)','targeting_assist_wrist_implant_PTI-IV_(right)'] - names += ['personnel_comlink_wrist-P4_(right)','manufacturing_verdicator_200a_(right)','insurgency_wrist_implantat-BLACK-(right)'] + names += ['personnel_comlink_wrist-P4_(right)','manufacturing_verdicator_200a_(right)'] names += ['targeter_ranging_wrist_assist_V4_(right)','bracelet_of_Inspired_Status(right)'] return names def itemChances(): - return [16,12,12,12,12,12,12,12] \ No newline at end of file + return [16,14,14,14,14,14,14] \ No newline at end of file diff --git a/src/services/LootService.java b/src/services/LootService.java index 8f9fb3db..eabfc27a 100644 --- a/src/services/LootService.java +++ b/src/services/LootService.java @@ -292,6 +292,7 @@ public class LootService implements INetworkDispatch { Vector customizationAttributes = null; Vector customizationValues = null; Vector itemStats = null; + Vector itemSkillMods = null; if(core.scriptService.getMethod(itemPath,"","itemTemplate")==null){ String errorMessage = "Loot item '" + itemName + "' has no template function assigned in its script. Please contact Charon about this issue."; @@ -322,6 +323,9 @@ public class LootService implements INetworkDispatch { if(core.scriptService.getMethod(itemPath,"","itemStats")!=null) itemStats = (Vector)core.scriptService.fetchStringVector(itemPath,"itemStats"); + if(core.scriptService.getMethod(itemPath,"","itemStats")!=null) + itemSkillMods = (Vector)core.scriptService.fetchStringVector(itemPath,"itemSkillMods"); + if(core.scriptService.getMethod(itemPath,"","biolink")!=null) biolink = (Integer)core.scriptService.fetchInteger(itemPath,"biolink"); @@ -376,6 +380,13 @@ public class LootService implements INetworkDispatch { } handleStats(droppedItem, itemStats); } + + if (itemSkillMods!=null){ + handleSkillMods(droppedItem, itemSkillMods); + } + + + // if (customizationValues!=null) // setCustomization(droppedItem, itemName); @@ -532,6 +543,14 @@ public class LootService implements INetworkDispatch { } } + private void handleSkillMods(TangibleObject droppedItem, Vector skillMods) { + for (int i=0;i Date: Thu, 24 Apr 2014 17:46:28 -0400 Subject: [PATCH 14/27] Added accepting for missions, added first phase for delivery missions --- scripts/conversation/missions/deliver.py | 32 ++++++++++ scripts/radial/object/conversation.py | 1 - src/protocol/swg/ObjControllerMessage.java | 1 + .../MissionAcceptRequest.java | 13 +++- .../MissionAcceptResponse.java | 31 ++++++++-- .../objectives/DeliveryMissionObjective.java | 62 +++++++++++++++++-- .../mission/MissionMessageBuilder.java | 61 ++++++++++++------ .../objects/mission/MissionObject.java | 47 +++++++------- src/services/mission/MissionObjective.java | 12 +++- src/services/mission/MissionService.java | 40 +++++++----- 10 files changed, 227 insertions(+), 73 deletions(-) create mode 100644 scripts/conversation/missions/deliver.py diff --git a/scripts/conversation/missions/deliver.py b/scripts/conversation/missions/deliver.py new file mode 100644 index 00000000..2f751818 --- /dev/null +++ b/scripts/conversation/missions/deliver.py @@ -0,0 +1,32 @@ +from resources.common import OutOfBand +from resources.common import ProsePackage +from resources.objectives import DeliveryMissionObjective +import sys + +def startConversation(core, actor, npc): + mission = npc.getAttachment('assignedMission') + + if mission is None: + return + + objective = mission.getObjective() + + if mission.getGrandparent().getObjectId() != actor.getObjectId() or objective is None: + core.conversationService.sendStopConversation(actor, npc, 'conversation/respecseller', 's_38') + return + + if objective.getObjectivePhase() == 0: + handleFirstDeliveryStage(core, actor, npc, objective, mission) + return + + #convSvc.sendConversationMessage(actor, npc, OutOfBand(ProsePackage(mission.getMissionDescription(), 'm' + str(mission.getMissionId()) + 'p'))) + return + +def endConversation(core, actor, npc): + return + +def handleFirstDeliveryStage(core, actor, npc, objective, mission): + core.conversationService.sendStopConversation(actor, npc, mission.getMissionDescription(), 'm' + str(mission.getMissionId()) + 'p') + objective.createDeliveryItem() + objective.setObjectivePhase(1) + return \ No newline at end of file diff --git a/scripts/radial/object/conversation.py b/scripts/radial/object/conversation.py index ee774b7d..0603ecb1 100644 --- a/scripts/radial/object/conversation.py +++ b/scripts/radial/object/conversation.py @@ -9,7 +9,6 @@ def createRadial(core, owner, target, radials): def handleSelection(core, owner, target, option): if option == 26 and target: - print 'test' core.conversationService.handleStartConversation(owner, target) return \ No newline at end of file diff --git a/src/protocol/swg/ObjControllerMessage.java b/src/protocol/swg/ObjControllerMessage.java index a9f541b8..2c4482d1 100644 --- a/src/protocol/swg/ObjControllerMessage.java +++ b/src/protocol/swg/ObjControllerMessage.java @@ -74,6 +74,7 @@ public class ObjControllerMessage extends SWGMessage { public static final int NEXT_CRAFTING_STAGE_RESULT = 0x01BE; public static final int DRAFT_SLOTS_QUERY_RESPONSE = 0x01BF; public static final int RESOURCE_WEIGHTS = 0x0207; + public static final int MISSION_ACCEPT_RESPONSE = 0x00FA; public ObjControllerMessage() { diff --git a/src/protocol/swg/objectControllerObjects/MissionAcceptRequest.java b/src/protocol/swg/objectControllerObjects/MissionAcceptRequest.java index 62a37694..403861d3 100644 --- a/src/protocol/swg/objectControllerObjects/MissionAcceptRequest.java +++ b/src/protocol/swg/objectControllerObjects/MissionAcceptRequest.java @@ -27,7 +27,8 @@ public class MissionAcceptRequest extends ObjControllerObject { private long missionObjId; private long terminalObjId; - + private byte terminalType; + public MissionAcceptRequest() { } @Override @@ -36,6 +37,7 @@ public class MissionAcceptRequest extends ObjControllerObject { data.getInt(); setMissionObjId(data.getLong()); setTerminalObjId(data.getLong()); + setTerminalType(data.get()); } @Override @@ -58,5 +60,12 @@ public class MissionAcceptRequest extends ObjControllerObject { public void setTerminalObjId(long terminalObjId) { this.terminalObjId = terminalObjId; } - + + public void setTerminalType(byte terminalType) { + this.terminalType = terminalType; + } + + public byte getTerminalType() { + return terminalType; + } } diff --git a/src/protocol/swg/objectControllerObjects/MissionAcceptResponse.java b/src/protocol/swg/objectControllerObjects/MissionAcceptResponse.java index 50e862e9..faad427b 100644 --- a/src/protocol/swg/objectControllerObjects/MissionAcceptResponse.java +++ b/src/protocol/swg/objectControllerObjects/MissionAcceptResponse.java @@ -21,20 +21,43 @@ ******************************************************************************/ package protocol.swg.objectControllerObjects; +import java.nio.ByteOrder; + import org.apache.mina.core.buffer.IoBuffer; +import protocol.swg.ObjControllerMessage; + public class MissionAcceptResponse extends ObjControllerObject { + private long objectId; + private long missionObjId; + private byte terminalType; + private byte flag; + + public MissionAcceptResponse(long objectId, long missionObjId, byte terminalType, byte flag) { + this.objectId = objectId; + this.missionObjId = missionObjId; + this.terminalType = terminalType; + this.flag = flag; + } + @Override public void deserialize(IoBuffer data) { - // TODO Auto-generated method stub - } @Override public IoBuffer serialize() { - // TODO Auto-generated method stub - return null; + IoBuffer buffer = IoBuffer.allocate(27).order(ByteOrder.LITTLE_ENDIAN); + + buffer.putInt(ObjControllerMessage.MISSION_ACCEPT_RESPONSE); + buffer.putLong(objectId); + buffer.putInt(0); + + buffer.putLong(missionObjId); + buffer.put(flag); + buffer.put(terminalType); + + return buffer.flip(); } } diff --git a/src/resources/objectives/DeliveryMissionObjective.java b/src/resources/objectives/DeliveryMissionObjective.java index aa4d7a00..6e478756 100644 --- a/src/resources/objectives/DeliveryMissionObjective.java +++ b/src/resources/objectives/DeliveryMissionObjective.java @@ -21,25 +21,55 @@ ******************************************************************************/ package resources.objectives; +import engine.resources.objects.SWGObject; +import engine.resources.scene.Point3D; +import main.NGECore; +import resources.objects.creature.CreatureObject; import resources.objects.mission.MissionObject; import resources.objects.tangible.TangibleObject; +import resources.objects.waypoint.WaypointObject; import services.mission.MissionObjective; public class DeliveryMissionObjective extends MissionObjective { private TangibleObject deliveryObject; - private int objectivePhase; - + private NGECore core = NGECore.getInstance(); + public DeliveryMissionObjective(MissionObject parent) { super(parent); - this.objectivePhase = 0; } @Override public void activate() { + + if (isActivated()) + return; + + String template = "object/mobile/shared_dressed_commoner_tatooine_sullustan_male_06.iff"; + Point3D startLoc = parent.getStartLocation(); + + CreatureObject missionGiver = (CreatureObject) core.staticService.spawnObject(template, parent.getPlanet().name, 0, startLoc.x, startLoc.y, startLoc.z, 0, 1); + missionGiver.setAttachment("conversationFile", "missions/deliver"); + missionGiver.setAttachment("radial_filename", "object/conversation"); + missionGiver.setAttachment("assignedMission", getMissionObject()); + missionGiver.setOptionsBitmask(264); + + if (getObjectivePhase() == 0) { + WaypointObject waypoint = (WaypointObject) core.objectService.createObject("object/waypoint/shared_waypoint.iff", parent.getPlanet()); + waypoint.setPosition(startLoc); + waypoint.setName("@mission/" + parent.getMissionTitle() + ":" + parent.getMissionId()); + waypoint.setColor(WaypointObject.ORANGE); + waypoint.setActive(true); + getMissionObject().setAttachedWaypoint(waypoint); + } + setActive(true); } + @Override + public void update() { + } + @Override public void complete() { } @@ -47,8 +77,30 @@ public class DeliveryMissionObjective extends MissionObjective { @Override public void drop() { } + + public boolean createDeliveryItem() { + SWGObject player = getMissionObject().getGrandparent(); + + if (player == null) + return false; + + TangibleObject inventory = (TangibleObject) player.getSlottedObject("inventory"); + + if (inventory == null) + return false; + + TangibleObject deliveryObject = (TangibleObject) core.objectService.createObject("object/tangible/mission/shared_mission_datadisk.iff", getMissionObject().getGrandparent().getPlanet()); + + if (deliveryObject != null && inventory.add(deliveryObject)) { + setDeliveryObject(deliveryObject); + return true; + } + else + return false; + } + public TangibleObject getDeliveryObject() { return deliveryObject; } - - public int getObjectivePhase() { return objectivePhase; } + + public void setDeliveryObject(TangibleObject object) { this.deliveryObject = object; } } diff --git a/src/resources/objects/mission/MissionMessageBuilder.java b/src/resources/objects/mission/MissionMessageBuilder.java index 236afe65..24c9aa07 100644 --- a/src/resources/objects/mission/MissionMessageBuilder.java +++ b/src/resources/objects/mission/MissionMessageBuilder.java @@ -26,6 +26,7 @@ import java.nio.ByteOrder; import org.apache.mina.core.buffer.IoBuffer; import engine.resources.common.CRC; +import engine.resources.scene.Point3D; import resources.common.Console; import resources.common.StringUtilities; import resources.objects.ObjectMessageBuilder; @@ -100,11 +101,11 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.put(getAsciiString(mission.getMissionDescription())); buffer.putInt(0); - buffer.put(getAsciiString(mission.getMissionDescId())); + buffer.put(getAsciiString("m" + mission.getMissionId() + "d")); buffer.put(getAsciiString(mission.getMissionTitle())); buffer.putInt(0); - buffer.put(getAsciiString(mission.getMissionTitleId())); + buffer.put(getAsciiString("m" + mission.getMissionId() + "t")); buffer.putInt(0); // refresh counter @@ -131,14 +132,14 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { } else { buffer.putInt(wp.getCellId()); buffer.putFloat(wp.getPosition().x); - buffer.putFloat(wp.getPosition().z); buffer.putFloat(wp.getPosition().y); + buffer.putFloat(wp.getPosition().z); buffer.putLong(0); buffer.putInt(CRC.StringtoCRC(wp.getPlanet().name)); buffer.put(getUnicodeString(wp.getName())); - buffer.putLong(mission.getObjectId() + 1); + buffer.putLong(wp.getObjectId()); buffer.put(wp.getColor()); - buffer.put((byte) 0x01); + buffer.put((byte) (wp.isActive() ? 1 : 0)); } int size = buffer.position(); @@ -219,13 +220,13 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } - public IoBuffer buildStartLocationDelta(float x, float z, String planet) { + public IoBuffer buildStartLocationDelta(Point3D startLocation, String planet) { IoBuffer buffer = IoBuffer.allocate(24, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.putFloat(x); + buffer.putFloat(startLocation.x); buffer.putFloat(0); - buffer.putFloat(z); + buffer.putFloat(startLocation.z); buffer.putLong(0); @@ -236,7 +237,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { } int size = buffer.position(); buffer.flip(); - buffer = createDelta("MISO", (byte) 3, (short) 1, (short) 0x09, buffer, size + 4); + buffer = createDelta("MISO", (byte) 3, (short) 1, (short) 0x06, buffer, size + 4); return buffer; } @@ -267,13 +268,13 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } - public IoBuffer buildDestinationDelta(float x, float z, String planet) { + public IoBuffer buildDestinationDelta(Point3D destination, String planet) { IoBuffer buffer = IoBuffer.allocate(24, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.putFloat(x); + buffer.putFloat(destination.x); buffer.putFloat(0); - buffer.putFloat(z); + buffer.putFloat(destination.z); buffer.putLong(0); // Destination Object ID @@ -285,7 +286,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { int size = buffer.position(); buffer.flip(); - buffer = createDelta("MISO", (byte) 3, (short) 1, (short) 0x06, buffer, size + 4); + buffer = createDelta("MISO", (byte) 3, (short) 1, (short) 0x09, buffer, size + 4); return buffer; } @@ -303,13 +304,13 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } - public IoBuffer buildMissionDescriptionDelta(String desc, String id) { + public IoBuffer buildMissionDescriptionDelta(String desc, int id) { - IoBuffer buffer = IoBuffer.allocate(8 + desc.length() + id.length(), false).order(ByteOrder.LITTLE_ENDIAN); + IoBuffer buffer = IoBuffer.allocate(12 + desc.length(), false).order(ByteOrder.LITTLE_ENDIAN); buffer.put(getAsciiString(desc)); buffer.putInt(0); - buffer.put(getAsciiString(id)); + buffer.put(getAsciiString("m" + id + "d")); int size = buffer.position(); buffer.flip(); @@ -318,13 +319,13 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } - public IoBuffer buildMissionTitleDelta(String title, String id) { + public IoBuffer buildMissionTitleDelta(String title, int id) { - IoBuffer buffer = IoBuffer.allocate(8 + title.length() + id.length(), false).order(ByteOrder.LITTLE_ENDIAN); + IoBuffer buffer = IoBuffer.allocate(12 + title.length(), false).order(ByteOrder.LITTLE_ENDIAN); buffer.put(getAsciiString(title)); buffer.putInt(0); - buffer.put(getAsciiString(id)); + buffer.put(getAsciiString("m" + id + "t")); int size = buffer.position(); buffer.flip(); @@ -371,6 +372,28 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { return buffer; } + + public IoBuffer buildWaypointDelta(WaypointObject wp) { + + IoBuffer buffer = IoBuffer.allocate(44 + (2 * wp.getName().length()), false).order(ByteOrder.LITTLE_ENDIAN); + + buffer.putInt(wp.getCellId()); + buffer.putFloat(wp.getPosition().x); + buffer.putFloat(wp.getPosition().y); + buffer.putFloat(wp.getPosition().z); + buffer.putLong(0); + buffer.putInt(CRC.StringtoCRC(wp.getPlanet().name)); + buffer.put(getUnicodeString(wp.getName())); + buffer.putLong(wp.getObjectId()); + buffer.put(wp.getColor()); + buffer.put((byte) (wp.isActive() ? 1 : 0)); + + int size = buffer.position(); + buffer.flip(); + buffer = createDelta("MISO", (byte) 3, (short) 1, (short) 0x10, buffer, size + 4); + + return buffer; + } @Override public void sendListDelta(byte viewType, short updateType, IoBuffer buffer) { diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index 4c6d1cd4..12ed3fa8 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -35,7 +35,7 @@ import engine.resources.scene.Planet; import engine.resources.scene.Point3D; import engine.resources.scene.Quaternion; -@Persistent(version=0) +@Persistent(version=1) public class MissionObject extends IntangibleObject implements IPersistent { private Point3D destination; @@ -49,8 +49,7 @@ public class MissionObject extends IntangibleObject implements IPersistent { private String description = ""; private String title = ""; private String missionTargetName = ""; // Target object I guess? - private String descId = ""; - private String titleId = ""; + private int missionId = 0; private String type = ""; private int missionTemplateObject = 0; private WaypointObject attachedWaypoint; @@ -148,13 +147,12 @@ public class MissionObject extends IntangibleObject implements IPersistent { } } - public void setMissionDescription(String missionDescription, String id) { + public void setMissionDescription(String missionDescription) { synchronized(objectMutex) { this.description = missionDescription; - this.descId = id; } if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { - getGrandparent().getClient().getSession().write(messageBuilder.buildMissionDescriptionDelta(missionDescription, id)); + getGrandparent().getClient().getSession().write(messageBuilder.buildMissionDescriptionDelta(missionDescription, missionId)); } } @@ -164,13 +162,12 @@ public class MissionObject extends IntangibleObject implements IPersistent { } } - public void setMissionTitle(String missionTitle, String id) { + public void setMissionTitle(String missionTitle) { synchronized(objectMutex) { this.title = missionTitle; - this.titleId = id; } if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { - getGrandparent().getClient().getSession().write(messageBuilder.buildMissionTitleDelta(missionTitle, id)); + getGrandparent().getClient().getSession().write(messageBuilder.buildMissionTitleDelta(missionTitle, missionId)); } } @@ -195,9 +192,13 @@ public class MissionObject extends IntangibleObject implements IPersistent { } } - public void setAttachedWaypoint(WaypointObject missionAttachedWaypoint) { + public void setAttachedWaypoint(WaypointObject waypoint) { synchronized(objectMutex) { - this.attachedWaypoint = missionAttachedWaypoint; + this.attachedWaypoint = waypoint; + } + + if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { + getGrandparent().getClient().getSession().write(messageBuilder.buildWaypointDelta(waypoint)); } } @@ -216,18 +217,6 @@ public class MissionObject extends IntangibleObject implements IPersistent { } } - public String getMissionDescId() { - synchronized(objectMutex) { - return descId; - } - } - - public String getMissionTitleId() { - synchronized(objectMutex) { - return titleId; - } - } - public String getMissionType() { synchronized(objectMutex) { return type; @@ -274,7 +263,7 @@ public class MissionObject extends IntangibleObject implements IPersistent { } if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { - getGrandparent().getClient().getSession().write(messageBuilder.buildStartLocationDelta(startLocation.x, startLocation.z, planet)); + getGrandparent().getClient().getSession().write(messageBuilder.buildStartLocationDelta(startLocation, planet)); } } @@ -285,10 +274,18 @@ public class MissionObject extends IntangibleObject implements IPersistent { } if (getGrandparent() != null && getGrandparent().getClient() != null && getGrandparent().getClient().getSession() != null) { - getGrandparent().getClient().getSession().write(messageBuilder.buildDestinationDelta(destination.x, destination.z, planet)); + getGrandparent().getClient().getSession().write(messageBuilder.buildDestinationDelta(destination, planet)); } } + public int getMissionId() { + return missionId; + } + + public void setMissionId(int missionId) { + this.missionId = missionId; + } + public Transaction getTransaction() { return txn; } diff --git a/src/services/mission/MissionObjective.java b/src/services/mission/MissionObjective.java index 37b7de49..d74ef6d1 100644 --- a/src/services/mission/MissionObjective.java +++ b/src/services/mission/MissionObjective.java @@ -25,12 +25,13 @@ import com.sleepycat.persist.model.Persistent; import resources.objects.mission.MissionObject; -@Persistent +@Persistent(version=0) public abstract class MissionObjective { protected long startTime; protected boolean activated; protected MissionObject parent; + private int objectivePhase; public MissionObjective() { } @@ -38,14 +39,21 @@ public abstract class MissionObjective { this.startTime = System.currentTimeMillis(); this.activated = false; this.parent = parent; + this.objectivePhase = 0; } public abstract void activate(); public abstract void complete(); public abstract void drop(); + public abstract void update(); public long getStartTime() { return startTime; } + public boolean isActivated() { return activated; } public void setActive(boolean isActive) { this.activated = isActive; } - public MissionObject getParent() { return parent; } + + public MissionObject getMissionObject() { return parent; } + + public int getObjectivePhase() { return objectivePhase; } + public void setObjectivePhase(int phase) { this.objectivePhase = phase; } } diff --git a/src/services/mission/MissionService.java b/src/services/mission/MissionService.java index 0ed0dddd..08415813 100644 --- a/src/services/mission/MissionService.java +++ b/src/services/mission/MissionService.java @@ -35,9 +35,11 @@ import main.NGECore; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession; +import protocol.swg.ObjControllerMessage; import protocol.swg.objectControllerObjects.MissionAcceptRequest; import protocol.swg.objectControllerObjects.MissionAcceptResponse; import protocol.swg.objectControllerObjects.MissionListRequest; +import protocol.swg.objectControllerObjects.ObjControllerObject; import resources.common.Console; import resources.common.SpawnPoint; import resources.common.ObjControllerOpcodes; @@ -45,6 +47,7 @@ import resources.objectives.DeliveryMissionObjective; import resources.objects.creature.CreatureObject; import resources.objects.mission.MissionObject; import resources.objects.tangible.TangibleObject; +import resources.objects.waypoint.WaypointObject; import engine.clientdata.StfTable; import engine.clients.Client; import engine.resources.common.CRC; @@ -142,11 +145,13 @@ public class MissionService implements INetworkDispatch { return; if (handleMissionAccept(creature, mission)) { - //MissionAcceptResponse response = new MissionAcceptResponse(); - //session.write(response.serialize()); + MissionAcceptResponse response = new MissionAcceptResponse(object.getObjectId(), mission.getObjectId(), request.getTerminalType(), (byte) 1); + object.getClient().getSession().write(new ObjControllerMessage(0x0B, response).serialize()); + } else { + MissionAcceptResponse response = new MissionAcceptResponse(object.getObjectId(), mission.getObjectId(), request.getTerminalType(), (byte) 0); + object.getClient().getSession().write(new ObjControllerMessage(0x0B, response).serialize()); } } - }); } @@ -283,21 +288,18 @@ public class MissionService implements INetworkDispatch { if (hasBountyMission.get() && mission.getMissionType().equals("bounty")) // Can only have 1 bounty mission return false; - System.out.println("Player has " + missionCount.get() + " missions."); - if (missionCount.get() == 2) { creature.sendSystemMessage("@mission/mission_generic:too_many_missions", (byte) 0); return false; } - if (missionBag.transferTo(creature, datapad, mission)) { - createMissionObjective(creature, mission); - return true; - } else { return false; } + missionBag.transferTo(creature, datapad, mission); + createMissionObjective(creature, mission); + return true; } private void createMissionObjective(CreatureObject creature, MissionObject mission) { String type = mission.getMissionType(); - + System.out.println("Type: " + type); switch(type) { case "deliver": @@ -306,6 +308,7 @@ public class MissionService implements INetworkDispatch { mission.setObjective(objective); objective.activate(); + System.out.println("Went here!"); break; default: @@ -319,10 +322,10 @@ public class MissionService implements INetworkDispatch { String[] difficulties = { "easy", "medium", "hard" }; String missionStf = "mission/mission_deliver_neutral_" + difficulties[ran.nextInt(difficulties.length)]; - int strId = getRandomStringEntry(missionStf); - - mission.setMissionDescription(missionStf, "m" + String.valueOf(strId) + "d"); - mission.setMissionTitle(missionStf, "m" + String.valueOf(strId) + "t"); + + mission.setMissionId(getRandomStringEntry(missionStf)); + mission.setMissionDescription(missionStf); + mission.setMissionTitle(missionStf); mission.setCreator(nameGenerator.compose(2) + " " + nameGenerator.compose(3)); @@ -334,10 +337,17 @@ public class MissionService implements INetworkDispatch { mission.setStartLocation(startLocation, player.getPlanet().name); mission.setDestination(destination, player.getPlanet().name); - mission.setCreditReward((int) (50 * ((player.getWorldPosition().getDistance2D(destination) / 10)))); + mission.setCreditReward((int) (50 * ((startLocation.getDistance2D(destination) / 10)))); mission.setMissionTemplateObject(CRC.StringtoCRC("object/tangible/mission/shared_mission_datadisk.iff")); mission.setMissionTargetName("Datadisk"); + + WaypointObject waypoint = (WaypointObject) core.objectService.createObject("object/waypoint/shared_waypoint.iff", player.getPlanet()); + if (waypoint == null) + return; + + waypoint.setColor(WaypointObject.ORANGE); + } private void randomDestroyMission(SWGObject player, MissionObject mission) { From e877a4471351127cc8b8c54038667abda5f37cf2 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Fri, 25 Apr 2014 01:49:50 +0200 Subject: [PATCH 15/27] Jedi Loot templates inserted Buried treasure loot realized --- options.cfg | 4 +- scripts/commands/forage.py | 1 - .../lootItems/kraytpearl_ancient_flawless.py | 8 +++ .../bracelet_of_Inspired_Status(right).py | 2 +- ...er-toxin_wristband_prototype_IV_(right).py | 2 +- ...nsurgency_wrist_implantat-BLACK-(right).py | 2 +- .../insurgent_scanner_wrist_module_(right).py | 2 +- ...jedi_knight_meditation_bracelet_(right).py | 2 +- .../jedi_knights_wristguard_(right).py | 2 +- .../treasureloot/jedi_wristguard(right).py | 2 +- .../manufacturing_verdicator_200a_(right).py | 2 +- .../treasureloot/mysterious_data_disk.py | 9 +++ .../personnel_comlink_wrist-P4_(right).py | 2 +- ...argeter_ranging_wrist_assist_V4_(right).py | 2 +- ...ing_assist_wrist_implant_PTI-IV_(right).py | 2 +- .../wrist_assault_booster_zulu_(right).py | 2 +- ...st_communications_scanner_SCNv4_(right).py | 2 +- .../lootPools/jedi_components_treasure.py | 14 ++++ scripts/loot/lootPools/treasure_extra.py | 8 +++ scripts/mobiles/tatooine/tusken_raider.py | 1 + scripts/radial/object/treasuremap.py | 2 +- scripts/radial/object/treasuremapExtract.py | 8 +-- scripts/radial/object/treasuremapRead.py | 3 +- src/resources/common/Forager.java | 67 ++++++++++++------- src/resources/objects/loot/LootGroup.java | 12 ++-- .../objects/tangible/TangibleObject.java | 4 +- src/services/DevService.java | 3 +- src/services/LootService.java | 60 +++++++++++++---- src/services/ScriptService.java | 10 +++ src/services/object/ObjectService.java | 8 ++- 30 files changed, 176 insertions(+), 72 deletions(-) create mode 100644 scripts/loot/lootItems/kraytpearl_ancient_flawless.py create mode 100644 scripts/loot/lootItems/treasureloot/mysterious_data_disk.py create mode 100644 scripts/loot/lootPools/treasure_extra.py diff --git a/options.cfg b/options.cfg index cb743c88..5a3a7f8e 100644 --- a/options.cfg +++ b/options.cfg @@ -1,3 +1,3 @@ -LOAD.SNAPSHOT_OBJECTS=0 -LOAD.BUILDOUT_OBJECTS=0 +LOAD.SNAPSHOT_OBJECTS=1 +LOAD.BUILDOUT_OBJECTS=1 LOAD.RESOURCE.SYSTEM=1 \ No newline at end of file diff --git a/scripts/commands/forage.py b/scripts/commands/forage.py index 8d47c825..bce7443e 100644 --- a/scripts/commands/forage.py +++ b/scripts/commands/forage.py @@ -43,7 +43,6 @@ def run(core, actor, target, commandString): oldposition = actor.getAttachment('PostForagePosition') if actor.getPosition().getDistance2D(oldposition)<5: - System.out.println("actor.getPosition().getDistance2D(oldposition) " + actor.getPosition().getDistance2D(oldposition)); actor.sendSystemMessage("@skl_use:sys_forage_empty", 0); return diff --git a/scripts/loot/lootItems/kraytpearl_ancient_flawless.py b/scripts/loot/lootItems/kraytpearl_ancient_flawless.py new file mode 100644 index 00000000..89e55d04 --- /dev/null +++ b/scripts/loot/lootItems/kraytpearl_ancient_flawless.py @@ -0,0 +1,8 @@ + +def itemTemplate(): + + return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff'] + +def customItemName(): + + return '' diff --git a/scripts/loot/lootItems/treasureloot/bracelet_of_Inspired_Status(right).py b/scripts/loot/lootItems/treasureloot/bracelet_of_Inspired_Status(right).py index 57fbb45d..6df73bea 100644 --- a/scripts/loot/lootItems/treasureloot/bracelet_of_Inspired_Status(right).py +++ b/scripts/loot/lootItems/treasureloot/bracelet_of_Inspired_Status(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/counter-toxin_wristband_prototype_IV_(right).py b/scripts/loot/lootItems/treasureloot/counter-toxin_wristband_prototype_IV_(right).py index 13e10f5e..7f34bf48 100644 --- a/scripts/loot/lootItems/treasureloot/counter-toxin_wristband_prototype_IV_(right).py +++ b/scripts/loot/lootItems/treasureloot/counter-toxin_wristband_prototype_IV_(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/insurgency_wrist_implantat-BLACK-(right).py b/scripts/loot/lootItems/treasureloot/insurgency_wrist_implantat-BLACK-(right).py index 91289dfb..3e748ccf 100644 --- a/scripts/loot/lootItems/treasureloot/insurgency_wrist_implantat-BLACK-(right).py +++ b/scripts/loot/lootItems/treasureloot/insurgency_wrist_implantat-BLACK-(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s06_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/insurgent_scanner_wrist_module_(right).py b/scripts/loot/lootItems/treasureloot/insurgent_scanner_wrist_module_(right).py index 9311b78f..3cb1d321 100644 --- a/scripts/loot/lootItems/treasureloot/insurgent_scanner_wrist_module_(right).py +++ b/scripts/loot/lootItems/treasureloot/insurgent_scanner_wrist_module_(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/jedi_knight_meditation_bracelet_(right).py b/scripts/loot/lootItems/treasureloot/jedi_knight_meditation_bracelet_(right).py index 92ef3974..9dfd3ca8 100644 --- a/scripts/loot/lootItems/treasureloot/jedi_knight_meditation_bracelet_(right).py +++ b/scripts/loot/lootItems/treasureloot/jedi_knight_meditation_bracelet_(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s04_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/jedi_knights_wristguard_(right).py b/scripts/loot/lootItems/treasureloot/jedi_knights_wristguard_(right).py index 0056d769..ff605263 100644 --- a/scripts/loot/lootItems/treasureloot/jedi_knights_wristguard_(right).py +++ b/scripts/loot/lootItems/treasureloot/jedi_knights_wristguard_(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s02_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/jedi_wristguard(right).py b/scripts/loot/lootItems/treasureloot/jedi_wristguard(right).py index ecc1101b..b8565ab8 100644 --- a/scripts/loot/lootItems/treasureloot/jedi_wristguard(right).py +++ b/scripts/loot/lootItems/treasureloot/jedi_wristguard(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s02_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/manufacturing_verdicator_200a_(right).py b/scripts/loot/lootItems/treasureloot/manufacturing_verdicator_200a_(right).py index 0442286f..1817be94 100644 --- a/scripts/loot/lootItems/treasureloot/manufacturing_verdicator_200a_(right).py +++ b/scripts/loot/lootItems/treasureloot/manufacturing_verdicator_200a_(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/mysterious_data_disk.py b/scripts/loot/lootItems/treasureloot/mysterious_data_disk.py new file mode 100644 index 00000000..e81a23df --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/mysterious_data_disk.py @@ -0,0 +1,9 @@ + +def itemTemplate(): + + return ['object/tangible/loot/generic_usable/shared_datadisk_generic.iff'] + +def customItemName(): + + return 'Mysterious Data Disk' + diff --git a/scripts/loot/lootItems/treasureloot/personnel_comlink_wrist-P4_(right).py b/scripts/loot/lootItems/treasureloot/personnel_comlink_wrist-P4_(right).py index 86de451f..34d0cfca 100644 --- a/scripts/loot/lootItems/treasureloot/personnel_comlink_wrist-P4_(right).py +++ b/scripts/loot/lootItems/treasureloot/personnel_comlink_wrist-P4_(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/targeter_ranging_wrist_assist_V4_(right).py b/scripts/loot/lootItems/treasureloot/targeter_ranging_wrist_assist_V4_(right).py index 79e0623d..2c2d2d49 100644 --- a/scripts/loot/lootItems/treasureloot/targeter_ranging_wrist_assist_V4_(right).py +++ b/scripts/loot/lootItems/treasureloot/targeter_ranging_wrist_assist_V4_(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/targeting_assist_wrist_implant_PTI-IV_(right).py b/scripts/loot/lootItems/treasureloot/targeting_assist_wrist_implant_PTI-IV_(right).py index 0c4d1431..adcac454 100644 --- a/scripts/loot/lootItems/treasureloot/targeting_assist_wrist_implant_PTI-IV_(right).py +++ b/scripts/loot/lootItems/treasureloot/targeting_assist_wrist_implant_PTI-IV_(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/wrist_assault_booster_zulu_(right).py b/scripts/loot/lootItems/treasureloot/wrist_assault_booster_zulu_(right).py index fb8787d9..61695558 100644 --- a/scripts/loot/lootItems/treasureloot/wrist_assault_booster_zulu_(right).py +++ b/scripts/loot/lootItems/treasureloot/wrist_assault_booster_zulu_(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/treasureloot/wrist_communications_scanner_SCNv4_(right).py b/scripts/loot/lootItems/treasureloot/wrist_communications_scanner_SCNv4_(right).py index b90c0a36..f43a5684 100644 --- a/scripts/loot/lootItems/treasureloot/wrist_communications_scanner_SCNv4_(right).py +++ b/scripts/loot/lootItems/treasureloot/wrist_communications_scanner_SCNv4_(right).py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff'] def customItemName(): diff --git a/scripts/loot/lootPools/jedi_components_treasure.py b/scripts/loot/lootPools/jedi_components_treasure.py index e69de29b..91c26020 100644 --- a/scripts/loot/lootPools/jedi_components_treasure.py +++ b/scripts/loot/lootPools/jedi_components_treasure.py @@ -0,0 +1,14 @@ + +def itemNames(): + + components = ['jedi_relic_1','jedi_relic_2','colorcrystal'] + components += ['powercrystal_select','powercrystal_premium'] + components += ['kraytpearl_select','kraytpearl_premium','kraytpearl_flawless','kraytpearl_ancient_flawless'] + components += ['jedi_holocron_2_5','jedi_holocron_4_5','sith_holocron_4_5'] + return components + +def itemChances(): + + return [48,2,29,3,2,5,4,1,0.1,5.7,0.1,0.1] #11 + + \ No newline at end of file diff --git a/scripts/loot/lootPools/treasure_extra.py b/scripts/loot/lootPools/treasure_extra.py new file mode 100644 index 00000000..9c6b639d --- /dev/null +++ b/scripts/loot/lootPools/treasure_extra.py @@ -0,0 +1,8 @@ + +def itemNames(): + names = ['mysterious_data_disk'] + + return names + +def itemChances(): + return [100] \ No newline at end of file diff --git a/scripts/mobiles/tatooine/tusken_raider.py b/scripts/mobiles/tatooine/tusken_raider.py index 41542293..f3a3e867 100644 --- a/scripts/mobiles/tatooine/tusken_raider.py +++ b/scripts/mobiles/tatooine/tusken_raider.py @@ -10,6 +10,7 @@ def addTemplate(core): mobileTemplate.setLevel(10) mobileTemplate.setDifficulty(1) mobileTemplate.setAttackRange(24) + mobileTemplate.setAttackSpeed(1.0) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/radial/object/treasuremap.py b/scripts/radial/object/treasuremap.py index 80ab07a3..fe5f7c72 100644 --- a/scripts/radial/object/treasuremap.py +++ b/scripts/radial/object/treasuremap.py @@ -16,7 +16,7 @@ def createRadial(core, owner, target, radials): def handleSelection(core, owner, target, option): if option == 21 and target: - owner.sendSystemMessage('Treasuremap radial',0) + mapPlanet = target.getAttachment('MapPlanet') planet = core.terrainService.getPlanetByID(mapPlanet) if planet==None: diff --git a/scripts/radial/object/treasuremapExtract.py b/scripts/radial/object/treasuremapExtract.py index e4a8bdde..7277620e 100644 --- a/scripts/radial/object/treasuremapExtract.py +++ b/scripts/radial/object/treasuremapExtract.py @@ -16,12 +16,12 @@ def createRadial(core, owner, target, radials): return def handleSelection(core, owner, target, option): - if option == 21 and target: - owner.sendSystemMessage('TreasuremapExtract radial',0) + if option == 21 and target and owner: exactLoc = target.getAttachment('MapExactLocation') - #if owner.getPosition().getDistance2D(exactLoc)<20: - if owner.getPosition().getDistance2D(owner.getPosition())<20: + #if owner.getPosition().getDistance2D(owner.getPosition())<20: + if owner.getPosition().getDistance2D(exactLoc)<20: + target.setAttachment('radial_filename', 'object/usable') owner.sendSystemMessage('@treasure_map/treasure_map:sys_dist_here',0) #spawn guards diff --git a/scripts/radial/object/treasuremapRead.py b/scripts/radial/object/treasuremapRead.py index c3617bf9..bc3e0735 100644 --- a/scripts/radial/object/treasuremapRead.py +++ b/scripts/radial/object/treasuremapRead.py @@ -16,8 +16,7 @@ def createRadial(core, owner, target, radials): def handleSelection(core, owner, target, option): if option == 21 and target: - owner.sendSystemMessage('TreasuremapRead radial',0) - + planetID = target.getAttachment('MapPlanet') if planetID!=owner.getPlanetId(): owner.sendSystemMessage('@treasure_map/treasure_map:wrong_planet',0) diff --git a/src/resources/common/Forager.java b/src/resources/common/Forager.java index 0f027675..f1245db8 100644 --- a/src/resources/common/Forager.java +++ b/src/resources/common/Forager.java @@ -29,8 +29,10 @@ import java.util.Vector; import engine.resources.objects.SWGObject; import engine.resources.scene.Planet; import engine.resources.scene.Point3D; +import engine.resources.scene.Quaternion; import main.NGECore; import resources.datatables.Options; +import resources.objects.cell.CellObject; import resources.objects.creature.CreatureObject; import resources.objects.group.GroupObject; import resources.objects.loot.LootGroup; @@ -105,7 +107,9 @@ public class Forager { forager.sendSystemMessage("@skl_use:sys_forage_noroom",(byte) 0); } - chosenObject = 5; + // chosenObject = 5; // To test TMs + if(forager.getClient().isGM()) // Always yield a TM for testing + chosenObject = 5; forager.sendSystemMessage("chosenObject " + chosenObject,(byte) 0); switch (chosenObject) { @@ -150,8 +154,8 @@ public class Forager { int mapPlanetID = new Random().nextInt(mapPlanetIDs.length-1); foragedObject.setAttachment("MapPlanet", mapPlanetIDs[mapPlanetID]); System.out.println("mapPlanetID " + mapPlanetIDs[mapPlanetID]); - //foragedObject.setAttachment("radial_filename", "object/treasuremap"); - foragedObject.setAttachment("radial_filename", "object/treasuremapExtract"); + foragedObject.setAttachment("radial_filename", "object/treasuremap"); + //foragedObject.setAttachment("radial_filename", "object/treasuremapExtract"); foragerInventory.add(foragedObject); forager.sendSystemMessage("",(byte) 0); break; @@ -170,11 +174,11 @@ public class Forager { if (chosenObject>6) adversaryRoll=999; - adversaryRoll=999; + // adversaryRoll=999; // To test TMs - if (adversaryRoll<100) { // 14 + if (adversaryRoll<14) { // 14 100 // To test TMs int adversaryTypeRoll = new Random().nextInt(100); - if (adversaryTypeRoll<1){ + if (adversaryTypeRoll<50){ // wormie spawnWormie(forager); } else { @@ -355,12 +359,15 @@ public class Forager { } public void handleGuardSpawn(CreatureObject owner, TangibleObject map){ - + System.err.println("handleGuardSpawn"); short spawnLevel = (short) map.getAttachment("MapLevel"); //Point3D exactTreasureLocation = (Point3D) map.getAttachment("MapExactLocation"); Point3D exactTreasureLocation = owner.getPosition(); - GroupObject extractorGroup = (GroupObject) NGECore.getInstance().objectService.getObject(owner.getGroupId()); + GroupObject extractorGroup = null; + if (owner.getGroupId()!=0) + extractorGroup = (GroupObject) NGECore.getInstance().objectService.getObject(owner.getGroupId()); + int extractorGroupSize = 1; if (extractorGroup!=null) extractorGroupSize = extractorGroup.getMemberList().size(); @@ -381,12 +388,17 @@ public class Forager { } // spawn treasure container - TangibleObject treasureContainer = (TangibleObject) NGECore.getInstance().staticService.spawnObject("object/tangible/container/drum/shared_treasure_drum.iff", owner.getPlanet().getName(), 0L, exactTreasureLocation.x, exactTreasureLocation.y, exactTreasureLocation.z, 0.70F, 0.71F); + TangibleObject treasureContainer = (TangibleObject) NGECore.getInstance().staticService.spawnObject("object/tangible/container/drum/shared_treasure_drum.iff", owner.getPlanet().getName(), 0L, exactTreasureLocation.x, exactTreasureLocation.y, exactTreasureLocation.z, 0.70F, 0.71F); + +// CreatureObject treasureContainer = (CreatureObject) NGECore.getInstance().objectService.createObject("object/tangible/container/drum/shared_treasure_drum.iff", 0, owner.getPlanet(), exactTreasureLocation, owner.getOrientation()); +// NGECore.getInstance().simulationService.add(treasureContainer, exactTreasureLocation.x, exactTreasureLocation.z, true); + treasureContainer.setAttachment("radial_filename", "object/treasureContainer"); treasureContainer.setAttachment("TreasureExtractorID", owner.getObjectID()); treasureContainer.setAttachment("TreasureGuards",guardList); - //configureTreasureLoot(treasureContainer,owner,spawnLevel); - //NGECore.getInstance().lootService.DropLoot(owner, treasureContainer); + treasureContainer.setAttachment("ChestLevel",new Integer(spawnLevel)); + configureTreasureLoot(treasureContainer,owner,spawnLevel); + NGECore.getInstance().lootService.DropLoot(owner, treasureContainer); owner.sendSystemMessage("@treasure_map/treasure_map:sys_time_limit",(byte)0); @@ -459,17 +471,20 @@ public class Forager { // PROFESSION BRACELETS HOUSE FURNITURE WEARABLE BACKPACKS - String[] lootPoolNames = new String[]{"profession_bracelets_"+levelRange,"house_furniture","wearable_backpacks"}; - int[] lootPoolChances = new int[]{60,30,10}; - int lootGroupChance = 80; +// String[] lootPoolNames = new String[]{"profession_bracelets_"+levelRange,"house_furniture","wearable_backpacks"}; +// double[] lootPoolChances = new double[]{60,30,10}; + String[] lootPoolNames = new String[]{"profession_bracelets_"+levelRange}; + double[] lootPoolChances = new double[]{100}; + double lootGroupChance = 80; treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); // WEAPONSMITH COMPONENTS JEDI COMPONENTS GEM COLLECTION ITEMS TREASURE HUNTER COLLECTION ITEMS - lootPoolNames = new String[]{"weaponsmith_components","jedi_components","gem_collection_items","treasure_hunter_collection_items"}; - lootPoolChances = new int[]{15,25,30,30}; + //lootPoolNames = new String[]{"weaponsmith_components","jedi_components","gem_collection_items","treasure_hunter_collection_items"}; + //lootPoolChances = new double[]{15,25,30,30}; + lootPoolNames = new String[]{"jedi_components_treasure"}; + lootPoolChances = new double[]{100}; lootGroupChance = 80; treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); - // COMMON LOOTS: // Looted non-wearable Bounty Hunter armor pieces (Used to make Mandalorian armor at the Death Watch Bunker) @@ -480,23 +495,23 @@ public class Forager { // Advanced Power Stim (CL80) // Loot kits adhesives // Various Schematics - lootPoolNames = new String[]{"bh_armor_for_mando","advanced_stims_80","loot_kits_adhesives","various_schematics"}; - lootPoolChances = new int[]{15,25,30,30}; - lootGroupChance = 80; - treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); - +// lootPoolNames = new String[]{"bh_armor_for_mando","advanced_stims_80","loot_kits_adhesives","various_schematics"}; +// lootPoolChances = new double[]{15,25,30,30}; +// lootGroupChance = 80; +// treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); +// //GEM COLLECTION ITEMS CONSUMABLE BUFF ITEMS // VERY RARE BUFF ITEMS lootPoolNames = new String[]{"rare_buff_items"}; - lootPoolChances = new int[]{100}; - lootGroupChance = 1; + lootPoolChances = new double[]{100}; + lootGroupChance = 0.1; treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); // EXTRA - lootPoolNames = new String[]{"Mysterious Data Disk"}; - lootPoolChances = new int[]{100}; + lootPoolNames = new String[]{"treasure_extra"}; + lootPoolChances = new double[]{100}; lootGroupChance = 50; treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance); diff --git a/src/resources/objects/loot/LootGroup.java b/src/resources/objects/loot/LootGroup.java index e349eaac..1c626c05 100644 --- a/src/resources/objects/loot/LootGroup.java +++ b/src/resources/objects/loot/LootGroup.java @@ -31,20 +31,20 @@ import com.sleepycat.persist.model.Persistent; public class LootGroup { private String[] lootPoolNames; - private int[] lootPoolChances; - private int lootGroupChance; + private double[] lootPoolChances; + private double lootGroupChance; public LootGroup(){ } - public LootGroup(String[] lootPoolNames, int[] lootPoolChances, int lootGroupChance){ + public LootGroup(String[] lootPoolNames, double[] lootPoolChances, double lootGroupChance){ this.lootPoolNames = lootPoolNames; this.lootPoolChances = lootPoolChances; this.lootGroupChance = lootGroupChance; } - public void addLootData(String[] lootPoolNames, int[] lootPoolChances, int lootGroupChance){ + public void addLootData(String[] lootPoolNames, double[] lootPoolChances, double lootGroupChance){ this.lootPoolNames = lootPoolNames; this.lootPoolChances = lootPoolChances; this.lootGroupChance = lootGroupChance; @@ -54,11 +54,11 @@ public class LootGroup { return lootPoolNames; } - public int[] getLootPoolChances() { + public double[] getLootPoolChances() { return lootPoolChances; } - public int getLootGroupChance() { + public double getLootGroupChance() { return lootGroupChance; } } diff --git a/src/resources/objects/tangible/TangibleObject.java b/src/resources/objects/tangible/TangibleObject.java index 4efc2c4c..4a5f11c3 100644 --- a/src/resources/objects/tangible/TangibleObject.java +++ b/src/resources/objects/tangible/TangibleObject.java @@ -54,7 +54,7 @@ import engine.resources.scene.Planet; import engine.resources.scene.Point3D; import engine.resources.scene.Quaternion; -@Persistent(version=11) +@Persistent(version=12) public class TangibleObject extends SWGObject { // TODO: Thread safety @@ -495,7 +495,7 @@ public class TangibleObject extends SWGObject { return lootGroups; } - public void addToLootGroups(String[] lootPoolNames, int[] lootPoolChances, int lootGroupChance) { + public void addToLootGroups(String[] lootPoolNames, double[] lootPoolChances, double lootGroupChance) { System.out.println("lootPoolNames[0] " + lootPoolNames[0]); LootGroup lootGroup = new LootGroup(lootPoolNames, lootPoolChances, lootGroupChance); this.lootGroups.add(lootGroup); diff --git a/src/services/DevService.java b/src/services/DevService.java index d51a01c4..8a3ce949 100644 --- a/src/services/DevService.java +++ b/src/services/DevService.java @@ -1230,8 +1230,9 @@ public class DevService implements INetworkDispatch { deed.setBMR(15); deed.setAttributes(); inventory.add(deed); + return; - + case 125: TangibleObject genericCraftingTool = (TangibleObject) core.objectService.createObject("object/tangible/crafting/station/shared_generic_tool.iff", planet); genericCraftingTool.setCustomName("Generic Crafting Tool"); diff --git a/src/services/LootService.java b/src/services/LootService.java index eabfc27a..1105e13c 100644 --- a/src/services/LootService.java +++ b/src/services/LootService.java @@ -101,7 +101,15 @@ public class LootService implements INetworkDispatch { public void DropLoot(CreatureObject requester, TangibleObject lootedObject) { - GroupObject group = (GroupObject) core.objectService.getObject(requester.getGroupId()); + if (requester==null || lootedObject==null) + return; //QA + + GroupObject group = null; + if(requester.getGroupId()!=0) + group = (GroupObject) core.objectService.getObject(requester.getGroupId()); + + if (lootedObject.getKiller()==null) + lootedObject.setKiller(requester); if (lootedObject.isLooted() || lootedObject.isLootLock() || (group == null && !lootedObject.getKiller().equals(requester)) || (group != null && !group.getMemberList().contains(lootedObject.getKiller()))) return; @@ -124,8 +132,8 @@ public class LootService implements INetworkDispatch { while (iterator.hasNext()){ LootGroup lootGroup = iterator.next(); - int groupChance = lootGroup.getLootGroupChance(); - int lootGroupRoll = new Random().nextInt(100); + double groupChance = lootGroup.getLootGroupChance(); + double lootGroupRoll = new Random().nextDouble()*100; if (projectionCoefficientMatrixModulo!=0) lootGroupRoll=groupChance+1; if (lootGroupRoll <= groupChance){ @@ -168,7 +176,9 @@ public class LootService implements INetworkDispatch { } SWGObject lootedObjectInventory = lootedObject.getSlottedObject("inventory"); - System.out.println("lootedObjectInventory " + lootedObjectInventory.getTemplate()); + if (lootedObjectInventory==null || lootedObject.getTemplate().startsWith("object/tangible/container/drum/shared_treasure_drum.iff")) + lootedObjectInventory = lootedObject; // In case we don't know what we are dealing with + // For autoloot //SWGObject requesterInventory = requester.getSlottedObject("inventory"); @@ -193,7 +203,7 @@ public class LootService implements INetworkDispatch { private void handleLootGroup(LootGroup lootGroup,LootRollSession lootRollSession){ - int[] lootPoolChances = lootGroup.getLootPoolChances(); + double[] lootPoolChances = lootGroup.getLootPoolChances(); String[] lootPoolNames = lootGroup.getLootPoolNames(); if (lootPoolChances==null || lootPoolNames==null){ System.err.println("Lootpools are null!"); @@ -204,8 +214,8 @@ public class LootService implements INetworkDispatch { return; } - int randomItemFromGroup = new Random().nextInt(100); - int remainder = 0; // [10,20,30,34,5,1] + double randomItemFromGroup = new Random().nextDouble()*100; + double remainder = 0; // [10,20,30,34,5,1] for(int i=0;i itemNames = (Vector)core.scriptService.fetchStringVector(path,"itemNames"); - Vector itemChances = (Vector)core.scriptService.fetchIntegerVector(path,"itemChances"); + Vector itemChances = (Vector)core.scriptService.fetchDoubleVector(path,"itemChances"); - int randomItemFromPool = new Random().nextInt(100); + double randomItemFromPool = new Random().nextDouble()*100; int remainder = 0; // [10,20,30,34,5,1] for (int i=0;i0){ - droppedItem.setStringAttribute("required_profession", requiredProfession); + droppedItem.setStringAttribute("class_required", requiredProfession); } if (requiredFaction.length()>0){ @@ -577,6 +588,29 @@ public class LootService implements INetworkDispatch { if (lootedObject instanceof TangibleObject){ // This is for chests etc. // Check the py script + + // Treasure chest + if (lootedObject.getTemplate().equals("object/tangible/container/drum/shared_treasure_drum.iff")){ + GroupObject group = null; + if(requester.getGroupId()!=0) + group = (GroupObject) core.objectService.getObject(requester.getGroupId()); + int creditGroupMultiplier = 1; + if (group!=null) + creditGroupMultiplier = group.getMemberList().size(); + + int creatureCL = (int)lootedObject.getAttachment("ChestLevel"); + + if (creatureCL<=0) + creatureCL=1; + //creatureCL = 90; + int maximalCredits = (int)Math.floor(4*creatureCL + creatureCL*creatureCL*4/100); + int minimalCredits = (int)Math.floor(creatureCL*2 + maximalCredits/2); + int spanOfCredits = maximalCredits - minimalCredits; + if (spanOfCredits<=0) + spanOfCredits=1; + + lootedCredits = creditGroupMultiplier * (minimalCredits + new Random().nextInt(spanOfCredits)); + } } TangibleObject droppedCredits = createDroppedItem("object/tangible/item/shared_loot_cash.iff",requester.getPlanet()); @@ -648,7 +682,7 @@ public class LootService implements INetworkDispatch { droppedItem.getAttributes().put("@obj_attr_n:condition", "100/100"); droppedItem.getAttributes().put("@obj_attr_n:crystal_owner", "\\#D1F56F UNTUNED \\#FFFFFF "); droppedItem.getAttributes().put("@obj_attr_n:crystal_quality", qualityString); - droppedItem.setAttachment("radial_filename", "tunable"); + droppedItem.setAttachment("radial_filename", "item/tunable"); } private void handlePowerCrystal(TangibleObject droppedItem) { @@ -688,7 +722,7 @@ public class LootService implements INetworkDispatch { droppedItem.getAttributes().put("@obj_attr_n:condition", "100/100"); droppedItem.getAttributes().put("@obj_attr_n:crystal_owner", "\\#D1F56F UNTUNED \\#FFFFFF "); droppedItem.getAttributes().put("@obj_attr_n:crystal_quality", qualityString); - droppedItem.setAttachment("radial_filename", "tunable"); + droppedItem.setAttachment("radial_filename", "item/tunable"); } private void setWeaponStat(WeaponObject weapon, String statName, String minValue, String maxValue){ diff --git a/src/services/ScriptService.java b/src/services/ScriptService.java index c7bac81d..dab378b5 100644 --- a/src/services/ScriptService.java +++ b/src/services/ScriptService.java @@ -140,4 +140,14 @@ public class ScriptService { return vector; } + public Vector fetchDoubleVector(String path, String method) { + Vector vector = new Vector(); + PyObject result = core.scriptService.callScript(path, "", method); + Iterable comp = (Iterable)result.asIterable(); + for (Iterator temp = comp.iterator(); temp.hasNext();){ + vector.add(temp.next().asDouble()); + } + return vector; + } + } diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index 358ad44a..7d569bdd 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -338,7 +338,13 @@ public class ObjectService implements INetworkDispatch { object = new Player_House_Deed(objectID, planet, Template, position, orientation); - } else if(Template.startsWith("object/tangible")) { + } +// else if(Template.startsWith("object/tangible/container/drum/shared_treasure_drum.iff")) { +// +// object = new CreatureObject(objectID, planet, position, orientation, Template); +// +// } + else if(Template.startsWith("object/tangible")) { object = new TangibleObject(objectID, planet, Template, position, orientation); From c7a9b8492b402d2baf0b5e4e4bc47289b9f7f6e5 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Fri, 25 Apr 2014 03:14:29 +0200 Subject: [PATCH 16/27] Added a preliminary template to gems --- .../lootItems/treasureloot/force_amplification_crystal.py | 5 +++++ .../loot/lootItems/veryrareloot/rare_ankarres_sapphire.py | 2 +- scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py | 2 +- scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py | 2 +- scripts/loot/lootItems/veryrareloot/rare_power_gem.py | 2 +- scripts/loot/lootItems/veryrareloot/rare_rol_stone.py | 2 +- scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py | 2 +- 7 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 scripts/loot/lootItems/treasureloot/force_amplification_crystal.py diff --git a/scripts/loot/lootItems/treasureloot/force_amplification_crystal.py b/scripts/loot/lootItems/treasureloot/force_amplification_crystal.py new file mode 100644 index 00000000..aaf1e4d9 --- /dev/null +++ b/scripts/loot/lootItems/treasureloot/force_amplification_crystal.py @@ -0,0 +1,5 @@ + +def itemTemplate(): + + return ['object/tangible/loot/misc/shared_force_crystal.iff'] + diff --git a/scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py b/scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py index 652de8d4..5559fc50 100644 --- a/scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py +++ b/scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py b/scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py index ffac6875..4b6c1544 100644 --- a/scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py +++ b/scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py b/scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py index 0e6c09cb..ccd74091 100644 --- a/scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py +++ b/scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/veryrareloot/rare_power_gem.py b/scripts/loot/lootItems/veryrareloot/rare_power_gem.py index 98e4c801..f51777d3 100644 --- a/scripts/loot/lootItems/veryrareloot/rare_power_gem.py +++ b/scripts/loot/lootItems/veryrareloot/rare_power_gem.py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/veryrareloot/rare_rol_stone.py b/scripts/loot/lootItems/veryrareloot/rare_rol_stone.py index 122d8292..2795adff 100644 --- a/scripts/loot/lootItems/veryrareloot/rare_rol_stone.py +++ b/scripts/loot/lootItems/veryrareloot/rare_rol_stone.py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff'] def customItemName(): diff --git a/scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py b/scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py index 50c7655d..17a9ec0b 100644 --- a/scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py +++ b/scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff'] + return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff'] def customItemName(): From f1834d52ffb6e96045b4a65b37dd6a536a1f70d1 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Fri, 25 Apr 2014 03:27:45 +0200 Subject: [PATCH 17/27] Adv Stim loot pool added --- options.cfg | 4 ++-- scripts/loot/lootPools/advanced_stims_80.py | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/options.cfg b/options.cfg index 5a3a7f8e..cb743c88 100644 --- a/options.cfg +++ b/options.cfg @@ -1,3 +1,3 @@ -LOAD.SNAPSHOT_OBJECTS=1 -LOAD.BUILDOUT_OBJECTS=1 +LOAD.SNAPSHOT_OBJECTS=0 +LOAD.BUILDOUT_OBJECTS=0 LOAD.RESOURCE.SYSTEM=1 \ No newline at end of file diff --git a/scripts/loot/lootPools/advanced_stims_80.py b/scripts/loot/lootPools/advanced_stims_80.py index e69de29b..ea905ef8 100644 --- a/scripts/loot/lootPools/advanced_stims_80.py +++ b/scripts/loot/lootPools/advanced_stims_80.py @@ -0,0 +1,8 @@ + +def itemNames(): + + return ['adv_agility_stim_80','adv_power_stim_80'] + +def itemChances(): + + return [50,50] \ No newline at end of file From 608fb42e2f9fd03b64aee8e48e779d717c226114 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Fri, 25 Apr 2014 17:07:12 +0200 Subject: [PATCH 18/27] removed system.outs and system messages related to rolls --- options.cfg | 4 ++-- src/resources/common/Forager.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/options.cfg b/options.cfg index cb743c88..5a3a7f8e 100644 --- a/options.cfg +++ b/options.cfg @@ -1,3 +1,3 @@ -LOAD.SNAPSHOT_OBJECTS=0 -LOAD.BUILDOUT_OBJECTS=0 +LOAD.SNAPSHOT_OBJECTS=1 +LOAD.BUILDOUT_OBJECTS=1 LOAD.RESOURCE.SYSTEM=1 \ No newline at end of file diff --git a/src/resources/common/Forager.java b/src/resources/common/Forager.java index f1245db8..e0445f29 100644 --- a/src/resources/common/Forager.java +++ b/src/resources/common/Forager.java @@ -91,7 +91,7 @@ public class Forager { // if (forager.gotThePig(pig)){ // forageChances = forageChances3; //} - forager.sendSystemMessage("randomForageRoll " + randomForageRoll,(byte) 0); + //forager.sendSystemMessage("randomForageRoll " + randomForageRoll,(byte) 0); if (randomForageRoll Date: Fri, 25 Apr 2014 17:42:05 +0200 Subject: [PATCH 19/27] Continued work on Playerhouse deeds Added some more houses(need more testing when elevators work) Also altered objectservice to work with tcg houses --- scripts/houses/player_house_atat.py | 19 +++++++++++++++++++ scripts/houses/player_house_hangar.py | 19 +++++++++++++++++++ .../houses/player_house_jabbas_sail_barge.py | 19 +++++++++++++++++++ .../player_house_jedi_meditation_room.py | 19 +++++++++++++++++++ scripts/houses/player_house_mustafar_lg.py | 19 +++++++++++++++++++ .../player_house_sith_meditation_room.py | 19 +++++++++++++++++++ .../building/player/player_house_atat.py | 8 ++++++++ .../building/player/player_house_hangar.py | 8 ++++++++ .../player/player_house_jabbas_sail_barge.py | 8 ++++++++ .../player_house_jedi_meditation_room.py | 8 ++++++++ .../player/player_house_mustafar_lg.py | 7 +++++++ .../player_house_sith_meditation_room.py | 8 ++++++++ .../jabbas_sail_barge_deed.py | 8 ++++++++ .../player_house_deed/mustafar_house_lg.py | 8 ++++++++ ...tructure_deed_jedi_meditation_room_deed.py | 12 +++++++++++- ...tructure_deed_sith_meditation_room_deed.py | 12 +++++++++++- .../structure_deed_player_house_atat.py | 12 +++++++++++- .../structure_deed_player_house_hangar.py | 12 +++++++++++- src/services/object/ObjectService.java | 2 +- 19 files changed, 222 insertions(+), 5 deletions(-) create mode 100644 scripts/houses/player_house_atat.py create mode 100644 scripts/houses/player_house_hangar.py create mode 100644 scripts/houses/player_house_jabbas_sail_barge.py create mode 100644 scripts/houses/player_house_jedi_meditation_room.py create mode 100644 scripts/houses/player_house_mustafar_lg.py create mode 100644 scripts/houses/player_house_sith_meditation_room.py diff --git a/scripts/houses/player_house_atat.py b/scripts/houses/player_house_atat.py new file mode 100644 index 00000000..3d0b04d2 --- /dev/null +++ b/scripts/houses/player_house_atat.py @@ -0,0 +1,19 @@ +import sys +from services.housing import HouseTemplate +from engine.resources.scene import Point3D + +def setup(core): + houseTemplate = HouseTemplate("object/tangible/tcg/series5/shared_structure_deed_player_house_atat.iff", "object/building/player/shared_player_house_atat.iff", 3) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-3.8), float(5.86), float(15.1))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("corellia") + houseTemplate.addPlaceablePlanet("naboo") + houseTemplate.addPlaceablePlanet("talus") + houseTemplate.addPlaceablePlanet("rori") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.setDefaultItemLimit(350) + + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_hangar.py b/scripts/houses/player_house_hangar.py new file mode 100644 index 00000000..f3eab890 --- /dev/null +++ b/scripts/houses/player_house_hangar.py @@ -0,0 +1,19 @@ +import sys +from services.housing import HouseTemplate +from engine.resources.scene import Point3D + +def setup(core): + houseTemplate = HouseTemplate("object/tangible/tcg/series5/shared_structure_deed_player_house_hangar.iff", "object/building/player/shared_player_house_hangar.iff", 3) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(9.2), float(2.86), float(0.8))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("corellia") + houseTemplate.addPlaceablePlanet("naboo") + houseTemplate.addPlaceablePlanet("talus") + houseTemplate.addPlaceablePlanet("rori") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.setDefaultItemLimit(350) + + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_jabbas_sail_barge.py b/scripts/houses/player_house_jabbas_sail_barge.py new file mode 100644 index 00000000..abc84451 --- /dev/null +++ b/scripts/houses/player_house_jabbas_sail_barge.py @@ -0,0 +1,19 @@ +import sys +from services.housing import HouseTemplate +from engine.resources.scene import Point3D + +def setup(core): + houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_jabbas_sail_barge_deed.iff", "object/building/player/shared_player_house_jabbas_sail_barge.iff", 3) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(0), float(2.86), float(-3.5))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("corellia") + houseTemplate.addPlaceablePlanet("naboo") + houseTemplate.addPlaceablePlanet("talus") + houseTemplate.addPlaceablePlanet("rori") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.setDefaultItemLimit(350) + + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_jedi_meditation_room.py b/scripts/houses/player_house_jedi_meditation_room.py new file mode 100644 index 00000000..df257c29 --- /dev/null +++ b/scripts/houses/player_house_jedi_meditation_room.py @@ -0,0 +1,19 @@ +import sys +from services.housing import HouseTemplate +from engine.resources.scene import Point3D + +def setup(core): + houseTemplate = HouseTemplate("object/tangible/tcg/series3/shared_structure_deed_jedi_meditation_room_deed.iff", "object/building/player/shared_player_house_jedi_meditation_room.iff", 3) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(0), float(2.86), float(-3.5))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("corellia") + houseTemplate.addPlaceablePlanet("naboo") + houseTemplate.addPlaceablePlanet("talus") + houseTemplate.addPlaceablePlanet("rori") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.setDefaultItemLimit(350) + + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_mustafar_lg.py b/scripts/houses/player_house_mustafar_lg.py new file mode 100644 index 00000000..8d04566e --- /dev/null +++ b/scripts/houses/player_house_mustafar_lg.py @@ -0,0 +1,19 @@ +import sys +from services.housing import HouseTemplate +from engine.resources.scene import Point3D + +def setup(core): + houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_mustafar_house_lg.iff", "object/building/player/shared_player_house_mustafar_lg.iff", 5) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(1.5), float(2.86), float(13.7))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("corellia") + houseTemplate.addPlaceablePlanet("naboo") + houseTemplate.addPlaceablePlanet("talus") + houseTemplate.addPlaceablePlanet("rori") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.setDefaultItemLimit(200) + + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_sith_meditation_room.py b/scripts/houses/player_house_sith_meditation_room.py new file mode 100644 index 00000000..6e75e875 --- /dev/null +++ b/scripts/houses/player_house_sith_meditation_room.py @@ -0,0 +1,19 @@ +import sys +from services.housing import HouseTemplate +from engine.resources.scene import Point3D + +def setup(core): + houseTemplate = HouseTemplate("object/tangible/tcg/series3/shared_structure_deed_sith_meditation_room_deed.iff", "object/building/player/shared_player_house_sith_meditation_room.iff", 3) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(3), float(2.86), float(5.7))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("corellia") + houseTemplate.addPlaceablePlanet("naboo") + houseTemplate.addPlaceablePlanet("talus") + houseTemplate.addPlaceablePlanet("rori") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.setDefaultItemLimit(350) + + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/object/building/player/player_house_atat.py b/scripts/object/building/player/player_house_atat.py index ccad8904..030485f9 100644 --- a/scripts/object/building/player/player_house_atat.py +++ b/scripts/object/building/player/player_house_atat.py @@ -1,4 +1,12 @@ import sys +from engine.resources.scene import Quaternion def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -3.8, 5.86, 15.1, 0, 1, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 4.4, 18.5, 4.5, 0.707108, -0.707108, 1) + #structureterminal.setAttachment('radial_filename', 'structure_management_terminal') + structureterminal.setAttachment('housing_parentstruct', object) return \ No newline at end of file diff --git a/scripts/object/building/player/player_house_hangar.py b/scripts/object/building/player/player_house_hangar.py index ccad8904..a3c2e750 100644 --- a/scripts/object/building/player/player_house_hangar.py +++ b/scripts/object/building/player/player_house_hangar.py @@ -1,4 +1,12 @@ import sys +from engine.resources.scene import Quaternion def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -9.2, 2.86, 0.8, 1, 0, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 9.0, 0.7, -2, 0.707108, -0.707108, 1) + #structureterminal.setAttachment('radial_filename', 'structure_management_terminal') + structureterminal.setAttachment('housing_parentstruct', object) return \ No newline at end of file diff --git a/scripts/object/building/player/player_house_jabbas_sail_barge.py b/scripts/object/building/player/player_house_jabbas_sail_barge.py index ccad8904..354beadc 100644 --- a/scripts/object/building/player/player_house_jabbas_sail_barge.py +++ b/scripts/object/building/player/player_house_jabbas_sail_barge.py @@ -1,4 +1,12 @@ import sys +from engine.resources.scene import Quaternion def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 0, 2.86, -3.5, 0, 1, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 9.0, 0.7, -2, 0.707108, -0.707108, 1) + #structureterminal.setAttachment('radial_filename', 'structure_management_terminal') + structureterminal.setAttachment('housing_parentstruct', object) return \ No newline at end of file diff --git a/scripts/object/building/player/player_house_jedi_meditation_room.py b/scripts/object/building/player/player_house_jedi_meditation_room.py index ccad8904..b15dd1a4 100644 --- a/scripts/object/building/player/player_house_jedi_meditation_room.py +++ b/scripts/object/building/player/player_house_jedi_meditation_room.py @@ -1,4 +1,12 @@ import sys +from engine.resources.scene import Quaternion def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 3, 2.86, 5.7, 1, 0, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 8.2, 0.7, -1.0, 0.707108, -0.707108, 1) + #structureterminal.setAttachment('radial_filename', 'structure_management_terminal') + structureterminal.setAttachment('housing_parentstruct', object) return \ No newline at end of file diff --git a/scripts/object/building/player/player_house_mustafar_lg.py b/scripts/object/building/player/player_house_mustafar_lg.py index ccad8904..c768c102 100644 --- a/scripts/object/building/player/player_house_mustafar_lg.py +++ b/scripts/object/building/player/player_house_mustafar_lg.py @@ -1,4 +1,11 @@ import sys def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 1.5, 2.86, 13.0, -1, 0, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -4.1, 0.55, 6.6, 0.714 ,0.714, 1) + #structureterminal.setAttachment('radial_filename', 'structure_management_terminal') + structureterminal.setAttachment('housing_parentstruct', object) return \ No newline at end of file diff --git a/scripts/object/building/player/player_house_sith_meditation_room.py b/scripts/object/building/player/player_house_sith_meditation_room.py index ccad8904..fc3b32ac 100644 --- a/scripts/object/building/player/player_house_sith_meditation_room.py +++ b/scripts/object/building/player/player_house_sith_meditation_room.py @@ -1,4 +1,12 @@ import sys +from engine.resources.scene import Quaternion def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 3, 2.86, 5.7, 1, 0, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 4.2, 0.7, 2, 0.707108, -0.707108, 1) + #structureterminal.setAttachment('radial_filename', 'structure_management_terminal') + structureterminal.setAttachment('housing_parentstruct', object) return \ No newline at end of file diff --git a/scripts/object/tangible/deed/player_house_deed/jabbas_sail_barge_deed.py b/scripts/object/tangible/deed/player_house_deed/jabbas_sail_barge_deed.py index ccad8904..515f876b 100644 --- a/scripts/object/tangible/deed/player_house_deed/jabbas_sail_barge_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/jabbas_sail_barge_deed.py @@ -1,4 +1,12 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'deeds/structureDeed') + object.setConstructorTemplate('object/building/player/construction/shared_construction_player_house_jabbas_sail_barge.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_jabbas_sail_barge_deed.iff') + object.setLotRequirement(2) + object.setBMR(8) + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/object/tangible/deed/player_house_deed/mustafar_house_lg.py b/scripts/object/tangible/deed/player_house_deed/mustafar_house_lg.py index ccad8904..9232137e 100644 --- a/scripts/object/tangible/deed/player_house_deed/mustafar_house_lg.py +++ b/scripts/object/tangible/deed/player_house_deed/mustafar_house_lg.py @@ -1,4 +1,12 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'deeds/structureDeed') + object.setConstructorTemplate('object/building/player/construction/shared_construction_structure.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_mustafar_house_lg.iff') + object.setLotRequirement(2) + object.setBMR(8) + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/object/tangible/tcg/series3/structure_deed_jedi_meditation_room_deed.py b/scripts/object/tangible/tcg/series3/structure_deed_jedi_meditation_room_deed.py index ccad8904..3abde0fa 100644 --- a/scripts/object/tangible/tcg/series3/structure_deed_jedi_meditation_room_deed.py +++ b/scripts/object/tangible/tcg/series3/structure_deed_jedi_meditation_room_deed.py @@ -1,4 +1,14 @@ import sys def setup(core, object): - return \ No newline at end of file + object.setAttachment('radial_filename', 'deeds/structureDeed') + object.setConstructorTemplate('object/building/player/construction/shared_construction_player_jedi_meditation_room.iff') + object.setStructureTemplate('object/tangible/tcg/series3/shared_structure_deed_jedi_meditation_room_deed.iff') + object.setLotRequirement(3) + object.setBMR(8) + return + +def use(core, actor, object): + return + + \ No newline at end of file diff --git a/scripts/object/tangible/tcg/series3/structure_deed_sith_meditation_room_deed.py b/scripts/object/tangible/tcg/series3/structure_deed_sith_meditation_room_deed.py index ccad8904..d069e412 100644 --- a/scripts/object/tangible/tcg/series3/structure_deed_sith_meditation_room_deed.py +++ b/scripts/object/tangible/tcg/series3/structure_deed_sith_meditation_room_deed.py @@ -1,4 +1,14 @@ import sys def setup(core, object): - return \ No newline at end of file + object.setAttachment('radial_filename', 'deeds/structureDeed') + object.setConstructorTemplate('object/building/player/construction/shared_construction_player_sith_meditation_room.iff') + object.setStructureTemplate('object/tangible/tcg/series3/shared_structure_deed_sith_meditation_room_deed.iff') + object.setLotRequirement(3) + object.setBMR(8) + return + +def use(core, actor, object): + return + + \ No newline at end of file diff --git a/scripts/object/tangible/tcg/series5/structure_deed_player_house_atat.py b/scripts/object/tangible/tcg/series5/structure_deed_player_house_atat.py index ccad8904..af249f3e 100644 --- a/scripts/object/tangible/tcg/series5/structure_deed_player_house_atat.py +++ b/scripts/object/tangible/tcg/series5/structure_deed_player_house_atat.py @@ -1,4 +1,14 @@ import sys def setup(core, object): - return \ No newline at end of file + object.setAttachment('radial_filename', 'deeds/structureDeed') + object.setConstructorTemplate('object/building/player/construction/shared_construction_player_house_atat.iff') + object.setStructureTemplate('object/tangible/tcg/series5/shared_structure_deed_player_house_atat.iff') + object.setLotRequirement(3) + object.setBMR(8) + return + +def use(core, actor, object): + return + + \ No newline at end of file diff --git a/scripts/object/tangible/tcg/series5/structure_deed_player_house_hangar.py b/scripts/object/tangible/tcg/series5/structure_deed_player_house_hangar.py index ccad8904..3abde0fa 100644 --- a/scripts/object/tangible/tcg/series5/structure_deed_player_house_hangar.py +++ b/scripts/object/tangible/tcg/series5/structure_deed_player_house_hangar.py @@ -1,4 +1,14 @@ import sys def setup(core, object): - return \ No newline at end of file + object.setAttachment('radial_filename', 'deeds/structureDeed') + object.setConstructorTemplate('object/building/player/construction/shared_construction_player_jedi_meditation_room.iff') + object.setStructureTemplate('object/tangible/tcg/series3/shared_structure_deed_jedi_meditation_room_deed.iff') + object.setLotRequirement(3) + object.setBMR(8) + return + +def use(core, actor, object): + return + + \ No newline at end of file diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index 358ad44a..1ae312c9 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -334,7 +334,7 @@ public class ObjectService implements INetworkDispatch { object = new Harvester_Deed(objectID, planet, Template, position, orientation); - } else if(Template.startsWith("object/tangible/deed/player_house_deed") || Template.startsWith("object/tangible/deed/guild_deed") || Template.startsWith("object/tangible/deed/city_deed")) { + } else if(Template.startsWith("object/tangible/deed/player_house_deed") || Template.startsWith("object/tangible/deed/guild_deed") || Template.startsWith("object/tangible/deed/city_deed") || Template.startsWith("object/tangible/tcg")) { object = new Player_House_Deed(objectID, planet, Template, position, orientation); From 1633d4a3c59fdb7085c2f7b6e143ffb1bdbf3e2e Mon Sep 17 00:00:00 2001 From: Treeku Date: Fri, 25 Apr 2014 21:04:50 +0100 Subject: [PATCH 20/27] Fixed mount error --- src/services/pet/MountService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/pet/MountService.java b/src/services/pet/MountService.java index c7d68706..c438763b 100644 --- a/src/services/pet/MountService.java +++ b/src/services/pet/MountService.java @@ -551,7 +551,7 @@ public class MountService implements INetworkDispatch { LongAdder adder = new LongAdder(); - mount.getSlottedObject("inventory").viewChildren(owner, false, false, (obj) -> adder.increment()); + mount.getSlottedObject("inventory").viewChildren(mount, false, false, (obj) -> adder.increment()); int passengers = adder.intValue(); From 9bb4f280f00a12f57971d9b33647a30475131a84 Mon Sep 17 00:00:00 2001 From: Treeku Date: Fri, 25 Apr 2014 22:11:12 +0100 Subject: [PATCH 21/27] Fixed vehicle posture and states --- src/services/pet/MountService.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/services/pet/MountService.java b/src/services/pet/MountService.java index c438763b..03c92b92 100644 --- a/src/services/pet/MountService.java +++ b/src/services/pet/MountService.java @@ -426,11 +426,13 @@ public class MountService implements INetworkDispatch { mount._add(rider); // Set mount states and stuff + mount.setStateBitmask(mount.getStateBitmask() | State.MountedCreature); mount.setState(State.MountedCreature, true); - mount.setPosture(Posture.DrivingVehicle); + rider.setPosture((mount.getTemplate().contains("vehicle")) ? Posture.DrivingVehicle : Posture.RidingCreature); // Set rider states and stuff - rider.setState(StateStatus.RidingMount, true); + rider.setStateBitmask(rider.getStateBitmask() | State.RidingMount); + rider.setState(State.RidingMount, true); // Notify observers and update quadtree mount.notifyObservers(new UpdateContainmentMessage(rider.getObjectID(), mount.getObjectID(), 4), true); @@ -621,13 +623,13 @@ public class MountService implements INetworkDispatch { // Set mount states and stuff if (rider.getObjectID() == mount.getOwnerId()) { - //mount.setStateBitmask(0); + mount.setStateBitmask(getOptionsBitmask() & ~State.MountedCreature); mount.setState(State.MountedCreature, false); } // Set rider states and stuff - //rider.setStateBitmask(0); - rider.setState(StateStatus.RidingMount, false); + rider.setStateBitmask(getOptionsBitmask() & ~State.RidingMount); + rider.setState(State.RidingMount, false); rider.setPosture(Posture.Upright); // Update observers and quadtree From 5e240b00faf2e4cd27082d420a1c0a8bc9d8a512 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Fri, 25 Apr 2014 17:26:48 -0400 Subject: [PATCH 22/27] Added aborting for missions, finished delivery missions, cleaned up code --- scripts/conversation/missions/deliver.py | 50 ++++++++-- src/protocol/swg/ObjControllerMessage.java | 1 + .../objectControllerObjects/MissionAbort.java | 61 ++++++++++++ .../common/ObjControllerOpcodes.java | 1 + .../objectives/DeliveryMissionObjective.java | 99 +++++++++++++++++-- .../objectives/DestroyMissionObjective.java | 57 +++++++++++ .../objects/creature/CreatureObject.java | 18 ++++ src/services/mission/MissionObjective.java | 2 +- src/services/mission/MissionService.java | 73 +++++++++++--- 9 files changed, 335 insertions(+), 27 deletions(-) create mode 100644 src/protocol/swg/objectControllerObjects/MissionAbort.java create mode 100644 src/resources/objectives/DestroyMissionObjective.java diff --git a/scripts/conversation/missions/deliver.py b/scripts/conversation/missions/deliver.py index 2f751818..5caef3fa 100644 --- a/scripts/conversation/missions/deliver.py +++ b/scripts/conversation/missions/deliver.py @@ -4,7 +4,12 @@ from resources.objectives import DeliveryMissionObjective import sys def startConversation(core, actor, npc): - mission = npc.getAttachment('assignedMission') + missionId = npc.getAttachment('assignedMission') + + if missionId is None: + return + + mission = core.objectService.getObject(missionId) if mission is None: return @@ -12,21 +17,54 @@ def startConversation(core, actor, npc): objective = mission.getObjective() if mission.getGrandparent().getObjectId() != actor.getObjectId() or objective is None: - core.conversationService.sendStopConversation(actor, npc, 'conversation/respecseller', 's_38') + core.conversationService.sendStopConversation(actor, npc, 'mission/mission_generic', 'npc_job_request_no_job') return if objective.getObjectivePhase() == 0: - handleFirstDeliveryStage(core, actor, npc, objective, mission) + handlePickupStage(core, actor, npc, objective, mission) return - #convSvc.sendConversationMessage(actor, npc, OutOfBand(ProsePackage(mission.getMissionDescription(), 'm' + str(mission.getMissionId()) + 'p'))) + elif objective.getObjectivePhase() == 1: + handleDeliveryStage(core, actor, npc, objective, mission) + return + + elif objective.getObjectivePhase() == 2: + handleCompletionStage(core, actor, npc, objective, mission) + return return def endConversation(core, actor, npc): + core.conversationService.sendStopConversation(actor, npc, 'mission/mission_generic', 'npc_job_request_no_job') return -def handleFirstDeliveryStage(core, actor, npc, objective, mission): +def handlePickupStage(core, actor, npc, objective, mission): + + if objective.getMissionGiver().getObjectId() != npc.getObjectId(): + endConversation(core, actor, npc) + return + core.conversationService.sendStopConversation(actor, npc, mission.getMissionDescription(), 'm' + str(mission.getMissionId()) + 'p') objective.createDeliveryItem() - objective.setObjectivePhase(1) + objective.update() + return + +def handleDeliveryStage(core, actor, npc, objective, mission): + + if objective.getDropOffNpc().getObjectId() != npc.getObjectId(): + endConversation(core, actor, npc) + return + + core.conversationService.sendStopConversation(actor, npc, mission.getMissionDescription(), 'm' + str(mission.getMissionId()) + 'r') + core.objectService.destroyObject(objective.getDeliveryObject()) + objective.update() + return + +def handleCompletionStage(core, actor, npc, objective, mission): + + if objective.getMissionGiver().getObjectId() != npc.getObjectId(): + endConversation(core, actor, npc) + return + + core.conversationService.sendStopConversation(actor, npc, mission.getMissionDescription(), 'm' + str(mission.getMissionId()) + 's') + objective.complete() return \ No newline at end of file diff --git a/src/protocol/swg/ObjControllerMessage.java b/src/protocol/swg/ObjControllerMessage.java index 2c4482d1..cb1ff04b 100644 --- a/src/protocol/swg/ObjControllerMessage.java +++ b/src/protocol/swg/ObjControllerMessage.java @@ -75,6 +75,7 @@ public class ObjControllerMessage extends SWGMessage { public static final int DRAFT_SLOTS_QUERY_RESPONSE = 0x01BF; public static final int RESOURCE_WEIGHTS = 0x0207; public static final int MISSION_ACCEPT_RESPONSE = 0x00FA; + public static final int MISSION_ABORT_RESPONSE = 0x0142; public ObjControllerMessage() { diff --git a/src/protocol/swg/objectControllerObjects/MissionAbort.java b/src/protocol/swg/objectControllerObjects/MissionAbort.java new file mode 100644 index 00000000..2195c511 --- /dev/null +++ b/src/protocol/swg/objectControllerObjects/MissionAbort.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package protocol.swg.objectControllerObjects; + +import java.nio.ByteOrder; + +import org.apache.mina.core.buffer.IoBuffer; + +import protocol.swg.ObjControllerMessage; + +public class MissionAbort extends ObjControllerObject { + private long characterId; + private long missionId; + + public MissionAbort() { } + + @Override + public void deserialize(IoBuffer data) { + setCharacterId(data.getLong()); + data.getInt(); + setMissionId(data.getLong()); + } + + @Override + public IoBuffer serialize() { + IoBuffer buffer = IoBuffer.allocate(32).order(ByteOrder.LITTLE_ENDIAN); + + buffer.putInt(ObjControllerMessage.MISSION_ABORT_RESPONSE); + buffer.putLong(characterId); + buffer.putInt(0); + buffer.putLong(missionId); + return null; + } + + public long getMissionId() { return missionId; } + + public void setMissionId(long missionId) { this.missionId = missionId; } + + public long getCharacterId() { return characterId; } + + public void setCharacterId(long characterId) { this.characterId = characterId; } +} diff --git a/src/resources/common/ObjControllerOpcodes.java b/src/resources/common/ObjControllerOpcodes.java index 41db9dbd..c38a6071 100644 --- a/src/resources/common/ObjControllerOpcodes.java +++ b/src/resources/common/ObjControllerOpcodes.java @@ -35,6 +35,7 @@ public class ObjControllerOpcodes { public static final int BUFF_BUILDER_END = 0x5B020000; public static final int MISSION_LIST_REQUEST = 0xF5000000; public static final int MISSION_GENERIC_REQUEST = 0xF9000000; + public static final int MISSION_ABORT = 0x42010000; public static final int ChangeRoleIconChoice = 0x4D040000; public static final int IMAGE_DESIGN_CHANGE = 0x38020000; public static final int IMAGE_DESIGN_END = 0x39020000; diff --git a/src/resources/objectives/DeliveryMissionObjective.java b/src/resources/objectives/DeliveryMissionObjective.java index 6e478756..b5802390 100644 --- a/src/resources/objectives/DeliveryMissionObjective.java +++ b/src/resources/objectives/DeliveryMissionObjective.java @@ -24,6 +24,8 @@ package resources.objectives; import engine.resources.objects.SWGObject; import engine.resources.scene.Point3D; import main.NGECore; +import resources.common.OutOfBand; +import resources.common.ProsePackage; import resources.objects.creature.CreatureObject; import resources.objects.mission.MissionObject; import resources.objects.tangible.TangibleObject; @@ -33,6 +35,8 @@ import services.mission.MissionObjective; public class DeliveryMissionObjective extends MissionObjective { private TangibleObject deliveryObject; + private CreatureObject missionGiver; + private CreatureObject dropOffNpc; private NGECore core = NGECore.getInstance(); public DeliveryMissionObjective(MissionObject parent) { @@ -46,18 +50,44 @@ public class DeliveryMissionObjective extends MissionObjective { return; String template = "object/mobile/shared_dressed_commoner_tatooine_sullustan_male_06.iff"; + Point3D startLoc = parent.getStartLocation(); + Point3D destination = parent.getDestination(); + // TODO: Randomize this process. CreatureObject missionGiver = (CreatureObject) core.staticService.spawnObject(template, parent.getPlanet().name, 0, startLoc.x, startLoc.y, startLoc.z, 0, 1); + if (missionGiver == null) + return; + + missionGiver.setCustomName("a commoner"); missionGiver.setAttachment("conversationFile", "missions/deliver"); missionGiver.setAttachment("radial_filename", "object/conversation"); - missionGiver.setAttachment("assignedMission", getMissionObject()); + missionGiver.setAttachment("assignedMission", getMissionObject().getObjectId()); missionGiver.setOptionsBitmask(264); + setMissionGiver(missionGiver); + + CreatureObject dropOffNpc = (CreatureObject) core.staticService.spawnObject(template, parent.getPlanet().name, 0, destination.x, destination.y, destination.z, 0, 1); + if (dropOffNpc == null) + return; + + dropOffNpc.setCustomName("a commoner"); + dropOffNpc.setAttachment("conversationFile", "missions/deliver"); + dropOffNpc.setAttachment("radial_filename", "object/conversation"); + dropOffNpc.setAttachment("assignedMission", getMissionObject().getObjectId()); + dropOffNpc.setOptionsBitmask(264); + setDropOffNpc(dropOffNpc); if (getObjectivePhase() == 0) { WaypointObject waypoint = (WaypointObject) core.objectService.createObject("object/waypoint/shared_waypoint.iff", parent.getPlanet()); waypoint.setPosition(startLoc); - waypoint.setName("@mission/" + parent.getMissionTitle() + ":" + parent.getMissionId()); + waypoint.setName("@mission/" + parent.getMissionTitle() + ":" + "m" + parent.getMissionId() + "t"); + waypoint.setColor(WaypointObject.ORANGE); + waypoint.setActive(true); + getMissionObject().setAttachedWaypoint(waypoint); + } else if (getObjectivePhase() == 1) { + WaypointObject waypoint = (WaypointObject) core.objectService.createObject("object/waypoint/shared_waypoint.iff", parent.getPlanet()); + waypoint.setPosition(parent.getDestination()); + waypoint.setName("@mission/" + parent.getMissionTitle() + ":" + "m" + parent.getMissionId() + "t"); waypoint.setColor(WaypointObject.ORANGE); waypoint.setActive(true); getMissionObject().setAttachedWaypoint(waypoint); @@ -66,16 +96,62 @@ public class DeliveryMissionObjective extends MissionObjective { setActive(true); } - @Override - public void update() { - } - @Override public void complete() { + CreatureObject completer = (CreatureObject) getMissionObject().getGrandparent(); + + if (completer == null) + return; + + int reward = getMissionObject().getCreditReward(); + + completer.addBankCredits(reward); + + completer.sendSystemMessage(new OutOfBand(new ProsePackage("@mission/mission_generic:success_w_amount", reward)), (byte) 0); + + abort(); + + core.objectService.destroyObject(getMissionObject()); } @Override - public void drop() { + public void abort() { + if (deliveryObject != null) + core.objectService.destroyObject(deliveryObject.getObjectId()); + + if (missionGiver != null) + core.objectService.destroyObject(missionGiver, 360); + + if (dropOffNpc != null) + core.objectService.destroyObject(dropOffNpc, 360); + } + + @Override + public void update() { + + setObjectivePhase(getObjectivePhase() + 1); + + switch(getObjectivePhase()) { + case 1: + WaypointObject waypoint = (WaypointObject) core.objectService.createObject("object/waypoint/shared_waypoint.iff", parent.getPlanet()); + waypoint.setPosition(parent.getDestination()); + waypoint.setName("@mission/" + parent.getMissionTitle() + ":" + "m" + parent.getMissionId() + "t"); + waypoint.setColor(WaypointObject.ORANGE); + waypoint.setActive(true); + getMissionObject().setMissionTargetName("Dropoff Location"); + getMissionObject().setAttachedWaypoint(waypoint); + System.out.println("Waypoint set to " + parent.getDestination().x + " and " + parent.getDestination().z); + break; + case 2: + WaypointObject returnWp = (WaypointObject) core.objectService.createObject("object/waypoint/shared_waypoint.iff", parent.getPlanet()); + returnWp.setPosition(parent.getStartLocation()); + returnWp.setName("@mission/" + parent.getMissionTitle() + ":" + "m" + parent.getMissionId() + "t"); + returnWp.setColor(WaypointObject.ORANGE); + returnWp.setActive(true); + getMissionObject().setMissionTargetName("Return"); + getMissionObject().setAttachedWaypoint(returnWp); + break; + } } public boolean createDeliveryItem() { @@ -103,4 +179,13 @@ public class DeliveryMissionObjective extends MissionObjective { public TangibleObject getDeliveryObject() { return deliveryObject; } public void setDeliveryObject(TangibleObject object) { this.deliveryObject = object; } + + public CreatureObject getMissionGiver() { return missionGiver; } + + public void setMissionGiver(CreatureObject missionGiver) { this.missionGiver = missionGiver; } + + public CreatureObject getDropOffNpc() { return dropOffNpc; } + + public void setDropOffNpc(CreatureObject dropOffNpc) { this.dropOffNpc = dropOffNpc; } + } diff --git a/src/resources/objectives/DestroyMissionObjective.java b/src/resources/objectives/DestroyMissionObjective.java new file mode 100644 index 00000000..e4832756 --- /dev/null +++ b/src/resources/objectives/DestroyMissionObjective.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package resources.objectives; + +import resources.objects.mission.MissionObject; +import services.mission.MissionObjective; + +public class DestroyMissionObjective extends MissionObjective { + + public DestroyMissionObjective(MissionObject parent) { + super(parent); + } + + @Override + public void activate() { + // TODO Auto-generated method stub + + } + + @Override + public void complete() { + // TODO Auto-generated method stub + + } + + @Override + public void abort() { + // TODO Auto-generated method stub + + } + + @Override + public void update() { + // TODO Auto-generated method stub + + } + +} diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 7680d9bd..d6f2a861 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -251,12 +251,30 @@ public class CreatureObject extends TangibleObject implements IPersistent { getClient().getSession().write(messageBuilder.buildBankCreditsDelta(bankCredits)); } } + + public void addBankCredits(int amountToAdd) { + synchronized(objectMutex) { + this.bankCredits += amountToAdd; + } + if(getClient() != null && getClient().getSession() != null) { + getClient().getSession().write(messageBuilder.buildBankCreditsDelta(bankCredits)); + } + } public int getCashCredits() { synchronized(objectMutex) { return cashCredits; } } + + public void addCashCredits(int amountToAdd) { + synchronized(objectMutex) { + this.cashCredits += amountToAdd; + } + if(getClient() != null && getClient().getSession() != null) { + getClient().getSession().write(messageBuilder.buildCashCreditsDelta(cashCredits)); + } + } public void setCashCredits(int cashCredits) { synchronized(objectMutex) { diff --git a/src/services/mission/MissionObjective.java b/src/services/mission/MissionObjective.java index d74ef6d1..c81fcc0a 100644 --- a/src/services/mission/MissionObjective.java +++ b/src/services/mission/MissionObjective.java @@ -44,7 +44,7 @@ public abstract class MissionObjective { public abstract void activate(); public abstract void complete(); - public abstract void drop(); + public abstract void abort(); public abstract void update(); public long getStartTime() { return startTime; } diff --git a/src/services/mission/MissionService.java b/src/services/mission/MissionService.java index 08415813..40b5abf0 100644 --- a/src/services/mission/MissionService.java +++ b/src/services/mission/MissionService.java @@ -36,14 +36,14 @@ import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession; import protocol.swg.ObjControllerMessage; +import protocol.swg.objectControllerObjects.MissionAbort; import protocol.swg.objectControllerObjects.MissionAcceptRequest; import protocol.swg.objectControllerObjects.MissionAcceptResponse; import protocol.swg.objectControllerObjects.MissionListRequest; -import protocol.swg.objectControllerObjects.ObjControllerObject; -import resources.common.Console; import resources.common.SpawnPoint; import resources.common.ObjControllerOpcodes; import resources.objectives.DeliveryMissionObjective; +import resources.objectives.DestroyMissionObjective; import resources.objects.creature.CreatureObject; import resources.objects.mission.MissionObject; import resources.objects.tangible.TangibleObject; @@ -77,6 +77,38 @@ public class MissionService implements INetworkDispatch { @Override public void insertOpcodes(Map swgOpcodes, Map objControllerOpcodes) { + + objControllerOpcodes.put(ObjControllerOpcodes.MISSION_ABORT, new INetworkRemoteEvent() { + + @Override + public void handlePacket(IoSession session, IoBuffer data) throws Exception { + Client client = core.getClient(session); + + if(client == null || client.getSession() == null) + return; + + CreatureObject creature = (CreatureObject) client.getParent(); + + if(creature == null) + return; + + data.order(ByteOrder.LITTLE_ENDIAN); + MissionAbort abort = new MissionAbort(); + abort.deserialize(data); + + MissionObject mission = (MissionObject) core.objectService.getObject(abort.getMissionId()); + + if (mission == null) + return; + + if (mission.getGrandparent().getObjectId() != creature.getObjectId()) + return; + + handleMissionAbort(creature, mission); + } + + }); + objControllerOpcodes.put(ObjControllerOpcodes.MISSION_LIST_REQUEST, new INetworkRemoteEvent() { @Override @@ -112,7 +144,7 @@ public class MissionService implements INetworkDispatch { } else if (terminalType == TerminalType.ARTISAN) { } else { - Console.println("ERROR: Unsupported terminal " + terminal.getObjectId()); + //Console.println("ERROR: Unsupported terminal " + terminal.getObjectId()); } } @@ -155,6 +187,15 @@ public class MissionService implements INetworkDispatch { }); } + public void handleMissionAbort(CreatureObject creature, MissionObject mission) { + MissionObjective objective = mission.getObjective(); + + if (objective != null) + objective.abort(); + + core.objectService.destroyObject(mission.getObjectId()); + } + private void loadMissionEntryCounts() { File missionFolder = new File("./clientdata/string/en/mission"); File[] missionFiles = missionFolder.listFiles(); @@ -177,7 +218,7 @@ public class MissionService implements INetworkDispatch { } } if (gotCount == false) { - System.out.println("!NO ENTRY COUNT FOR " + missionStf); + //System.out.println("!NO ENTRY COUNT FOR " + missionStf); continue; } } catch (Exception e) { e.printStackTrace(); } @@ -192,7 +233,7 @@ public class MissionService implements INetworkDispatch { int ranEntryNum = 1; if (entryCounts.get(missionStf) != null) { ranEntryNum = ran.nextInt(entryCounts.get(missionStf)); } - else { System.out.println(missionStf + " was not found in entryCount and is using entry #1"); } + //else { System.out.println(missionStf + " was not found in entryCount and is using entry #1"); } if (ranEntryNum == 0) return 1; @@ -298,19 +339,23 @@ public class MissionService implements INetworkDispatch { } private void createMissionObjective(CreatureObject creature, MissionObject mission) { - String type = mission.getMissionType(); - System.out.println("Type: " + type); - switch(type) { + switch(mission.getMissionType()) { case "deliver": - DeliveryMissionObjective objective = new DeliveryMissionObjective(mission); + DeliveryMissionObjective deliveryObjective = new DeliveryMissionObjective(mission); - mission.setObjective(objective); + mission.setObjective(deliveryObjective); - objective.activate(); - System.out.println("Went here!"); + deliveryObjective.activate(); break; + case "destroy": + DestroyMissionObjective destroyObjective = new DestroyMissionObjective(mission); + + mission.setObjective(destroyObjective); + + destroyObjective.activate(); + break; default: break; } @@ -331,13 +376,14 @@ public class MissionService implements INetworkDispatch { mission.setMissionLevel(5); + // TODO: Use pre-defined commoner locations Point3D startLocation = SpawnPoint.getRandomPosition(player.getPosition(), (float) 50, (float) 300, player.getPlanetId()); Point3D destination = SpawnPoint.getRandomPosition(startLocation, (float) 50, (float) 500, player.getPlanetId()); mission.setStartLocation(startLocation, player.getPlanet().name); mission.setDestination(destination, player.getPlanet().name); - mission.setCreditReward((int) (50 * ((startLocation.getDistance2D(destination) / 10)))); + mission.setCreditReward((int) (50 + ((startLocation.getDistance2D(destination) / 10)))); mission.setMissionTemplateObject(CRC.StringtoCRC("object/tangible/mission/shared_mission_datadisk.iff")); mission.setMissionTargetName("Datadisk"); @@ -357,6 +403,7 @@ public class MissionService implements INetworkDispatch { private void randomBountyMission(SWGObject player, MissionObject mission) { } + public enum TerminalType {; public static final int GENERIC = 1; public static final int BOUNTYHUNTER = 2; From 6fc8c53bb93e2a4606454e5f81f0e5a2a77a17c6 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Fri, 25 Apr 2014 17:38:28 -0400 Subject: [PATCH 23/27] Fixed errors in MountService.java --- src/services/pet/MountService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/pet/MountService.java b/src/services/pet/MountService.java index 03c92b92..a8094945 100644 --- a/src/services/pet/MountService.java +++ b/src/services/pet/MountService.java @@ -623,12 +623,12 @@ public class MountService implements INetworkDispatch { // Set mount states and stuff if (rider.getObjectID() == mount.getOwnerId()) { - mount.setStateBitmask(getOptionsBitmask() & ~State.MountedCreature); + mount.setStateBitmask(mount.getOptionsBitmask() & ~State.MountedCreature); mount.setState(State.MountedCreature, false); } // Set rider states and stuff - rider.setStateBitmask(getOptionsBitmask() & ~State.RidingMount); + rider.setStateBitmask(rider.getOptionsBitmask() & ~State.RidingMount); rider.setState(State.RidingMount, false); rider.setPosture(Posture.Upright); From 565fdc20dadafc2612398a2ed441cf993982e52f Mon Sep 17 00:00:00 2001 From: Treeku Date: Fri, 25 Apr 2014 23:25:01 +0100 Subject: [PATCH 24/27] Refactored skillMods --- scripts/skillMods/absorption_bleeding.py | 8 +- scripts/skillMods/absorption_disease.py | 8 +- scripts/skillMods/absorption_fire.py | 8 +- scripts/skillMods/absorption_poison.py | 8 +- scripts/skillMods/accuracy_modifier.py | 8 +- scripts/skillMods/acid.py | 8 +- scripts/skillMods/action.py | 10 +- scripts/skillMods/actionPercent.py | 12 +- scripts/skillMods/action_burn.py | 8 +- scripts/skillMods/advanced_assembly.py | 8 +- .../advanced_ship_experimentation.py | 8 +- scripts/skillMods/agility.py | 20 ++- scripts/skillMods/agility_modified.py | 20 ++- .../area_damage_resist_full_percentage.py | 8 +- scripts/skillMods/armor_assembly.py | 8 +- scripts/skillMods/armor_customization.py | 8 +- scripts/skillMods/armor_experimentation.py | 8 +- scripts/skillMods/bh_dire_root.py | 8 +- scripts/skillMods/bh_dire_snare.py | 8 +- scripts/skillMods/bm_creature_knowledge.py | 8 +- scripts/skillMods/bm_incubator_dps_armor.py | 8 +- .../skillMods/bm_mutation_chance_increase.py | 8 +- scripts/skillMods/bm_xp_mod_boost.py | 8 +- scripts/skillMods/booster_assembly.py | 8 +- scripts/skillMods/booster_experimentation.py | 8 +- scripts/skillMods/bounty_hunter.py | 8 +- scripts/skillMods/bounty_mission_level.py | 8 +- scripts/skillMods/camouflage.py | 8 +- scripts/skillMods/chassis_assembly.py | 8 +- scripts/skillMods/chassis_experimentation.py | 8 +- scripts/skillMods/clothing_assembly.py | 8 +- scripts/skillMods/clothing_customization.py | 8 +- scripts/skillMods/clothing_experimentation.py | 8 +- scripts/skillMods/cold.py | 8 +- scripts/skillMods/combat_block_chance.py | 8 +- scripts/skillMods/combat_block_value.py | 8 +- .../combat_critical_hit_reduction.py | 8 +- .../skillMods/combat_divide_damage_dealt.py | 8 +- .../skillMods/combat_divide_damage_taken.py | 9 +- scripts/skillMods/combat_dodge.py | 8 +- scripts/skillMods/combat_evasion_chance.py | 8 +- scripts/skillMods/combat_evasion_value.py | 8 +- scripts/skillMods/combat_parry.py | 8 +- scripts/skillMods/combat_slow.py | 8 +- .../skillMods/combat_strikethrough_chance.py | 8 +- .../skillMods/combat_strikethrough_value.py | 8 +- scripts/skillMods/constitution.py | 10 +- scripts/skillMods/constitution_modified.py | 10 +- .../cooldown_percent_of_group_buff.py | 8 +- .../crafting_critical_success_bonus.py | 8 +- scripts/skillMods/creature_harvesting.py | 8 +- .../critical_damage_vulnerability.py | 8 +- scripts/skillMods/critical_hit_vulnerable.py | 8 +- scripts/skillMods/cybernetic_assembly.py | 8 +- scripts/skillMods/cybernetic_customization.py | 8 +- .../skillMods/cybernetic_experimentation.py | 8 +- .../cybernetic_psychosis_resistance.py | 8 +- .../skillMods/damage_decrease_percentage.py | 8 +- scripts/skillMods/debuff_purge.py | 11 +- scripts/skillMods/defense_reverse.py | 8 +- scripts/skillMods/detect_hidden.py | 8 +- scripts/skillMods/display_only_block.py | 8 +- scripts/skillMods/display_only_critical.py | 8 +- scripts/skillMods/display_only_dodge.py | 8 +- scripts/skillMods/display_only_evasion.py | 8 +- ...ly_expertise_critical_hit_pvp_reduction.py | 8 +- ...y_only_expertise_critical_hit_reduction.py | 8 +- .../skillMods/display_only_glancing_blow.py | 8 +- .../display_only_opp_block_reduction.py | 8 +- .../display_only_opp_dodge_reduction.py | 8 +- scripts/skillMods/display_only_parry.py | 8 +- .../skillMods/display_only_parry_reduction.py | 8 +- .../skillMods/display_only_strikethrough.py | 8 +- scripts/skillMods/display_only_tohit.py | 8 +- scripts/skillMods/dot_bleed.py | 11 +- scripts/skillMods/dot_divisor_all.py | 11 +- scripts/skillMods/dot_fire.py | 8 +- scripts/skillMods/dot_poison.py | 11 +- scripts/skillMods/dot_resist_all.py | 11 +- scripts/skillMods/droid_assembly.py | 8 +- scripts/skillMods/droid_customization.py | 8 +- scripts/skillMods/droid_experimentation.py | 8 +- scripts/skillMods/droid_find_chance.py | 8 +- scripts/skillMods/droid_find_speed.py | 8 +- scripts/skillMods/droid_track_chance.py | 8 +- scripts/skillMods/droid_track_speed.py | 8 +- scripts/skillMods/droid_tracks.py | 8 +- scripts/skillMods/electricity.py | 8 +- scripts/skillMods/energy.py | 8 +- scripts/skillMods/engine_assembly.py | 8 +- scripts/skillMods/engine_experimentation.py | 8 +- scripts/skillMods/engineering_reverse.py | 8 +- scripts/skillMods/expertise_action_all.py | 8 +- scripts/skillMods/expertise_action_carbine.py | 8 +- .../expertise_action_damage_line_of_sure.py | 8 +- .../skillMods/expertise_action_line_co_dm.py | 8 +- .../expertise_action_line_co_grenade.py | 8 +- scripts/skillMods/expertise_action_line_dm.py | 8 +- .../skillMods/expertise_action_line_dm_cc.py | 8 +- .../expertise_action_line_dm_crit.py | 8 +- .../expertise_action_line_fs_ae_dm_cc.py | 8 +- .../expertise_action_line_fs_cc_crit.py | 8 +- .../skillMods/expertise_action_line_fs_dm.py | 8 +- .../expertise_action_line_fs_sweep.py | 8 +- .../expertise_action_line_me_burst.py | 8 +- .../skillMods/expertise_action_line_me_dm.py | 8 +- .../expertise_action_line_me_heal.py | 8 +- .../expertise_action_line_me_smash.py | 8 +- .../skillMods/expertise_action_line_of_aoe.py | 9 +- .../expertise_action_line_of_group_buff.py | 8 +- .../expertise_action_line_of_paint.py | 8 +- .../expertise_action_line_of_sure.py | 8 +- .../skillMods/expertise_action_line_sm_dm.py | 8 +- .../expertise_action_line_sp_burst_shadows.py | 8 +- .../skillMods/expertise_action_line_sp_dm.py | 8 +- .../skillMods/expertise_action_line_sp_dot.py | 8 +- .../expertise_action_line_sp_hd_melee.py | 8 +- .../expertise_action_line_sp_smoke.py | 8 +- .../expertise_action_line_sp_stealth_melee.py | 8 +- ...expertise_action_line_sp_stealth_ranged.py | 8 +- .../expertise_action_line_sp_without_trace.py | 8 +- .../skillMods/expertise_action_line_trap.py | 8 +- scripts/skillMods/expertise_action_rifle.py | 8 +- .../skillMods/expertise_action_weapon_0.py | 8 +- .../skillMods/expertise_action_weapon_1.py | 8 +- .../skillMods/expertise_action_weapon_10.py | 8 +- .../skillMods/expertise_action_weapon_11.py | 8 +- .../skillMods/expertise_action_weapon_2.py | 8 +- .../skillMods/expertise_action_weapon_3.py | 8 +- .../skillMods/expertise_action_weapon_4.py | 8 +- .../skillMods/expertise_action_weapon_5.py | 8 +- .../skillMods/expertise_action_weapon_6.py | 8 +- .../skillMods/expertise_action_weapon_7.py | 8 +- .../skillMods/expertise_action_weapon_9.py | 8 +- .../expertise_action_weapon_melee.py | 8 +- scripts/skillMods/expertise_aggro_channel.py | 8 +- scripts/skillMods/expertise_agro_healing.py | 8 +- .../expertise_area_size_line_co_grenade.py | 8 +- ...tise_area_size_line_co_remote_detonator.py | 8 +- .../expertise_area_size_line_diretrap.py | 8 +- .../expertise_area_size_line_trap.py | 8 +- ...ertise_area_size_single_fs_mind_trick_2.py | 8 +- ...xpertise_armorset_glancing_blow_melee_2.py | 8 +- ...pertise_armorset_glancing_blow_ranged_2.py | 8 +- .../expertise_armorset_melee_block_2.py | 8 +- .../expertise_armorset_protection_1_energy.py | 8 +- ...expertise_armorset_protection_1_kinetic.py | 8 +- .../expertise_armorset_protection_2_energy.py | 8 +- ...expertise_armorset_protection_2_kinetic.py | 8 +- .../expertise_armorset_ranged_dodge_2.py | 8 +- .../expertise_assembly_increase_architect.py | 8 +- .../expertise_assembly_increase_armorsmith.py | 8 +- .../expertise_assembly_increase_artisan.py | 8 +- .../expertise_assembly_increase_chef.py | 8 +- .../expertise_assembly_increase_droid.py | 8 +- .../expertise_assembly_increase_shipwright.py | 8 +- .../expertise_assembly_increase_tailor.py | 8 +- ...expertise_assembly_increase_weaponsmith.py | 8 +- .../skillMods/expertise_assult_action_buff.py | 10 +- .../expertise_attacker_action_gain.py | 8 +- scripts/skillMods/expertise_aura_maintain.py | 8 +- .../expertise_avoidance_overpower.py | 8 +- .../expertise_bh_detect_camo_chance.py | 8 +- scripts/skillMods/expertise_bm_add_pet_bar.py | 8 +- .../expertise_bm_dna_harvesting_1.py | 8 +- ...expertise_bm_enhanced_skill_acquisition.py | 8 +- .../expertise_bm_enzyme_enhancement.py | 8 +- .../expertise_bm_genetic_engineering.py | 8 +- .../expertise_bm_improved_pet_heal.py | 8 +- .../expertise_bm_incubation_quality.py | 8 +- .../skillMods/expertise_bm_incubation_time.py | 8 +- scripts/skillMods/expertise_bm_pet_armor.py | 8 +- .../expertise_bm_pet_attack_speed.py | 8 +- scripts/skillMods/expertise_bm_pet_damage.py | 8 +- .../expertise_bm_pet_evade_chance.py | 8 +- .../skillMods/expertise_bm_pet_evade_value.py | 8 +- .../skillMods/expertise_bm_pet_happiness.py | 8 +- scripts/skillMods/expertise_bm_pet_health.py | 8 +- .../expertise_bm_pet_movement_rate.py | 8 +- .../skillMods/expertise_bm_pet_recovery.py | 8 +- scripts/skillMods/expertise_bm_pet_regen.py | 8 +- .../skillMods/expertise_bm_pet_revive_time.py | 8 +- .../expertise_bm_self_debuff_reduction.py | 8 +- scripts/skillMods/expertise_bm_train_mount.py | 8 +- .../expertise_buff_best_deal_ever.py | 8 +- ...pertise_buff_chance_fs_force_throw_root.py | 8 +- .../expertise_buff_chance_line_fs_ae_dm_cc.py | 8 +- ...pertise_buff_chance_line_fs_force_throw.py | 8 +- .../expertise_buff_chance_line_fs_heal.py | 8 +- .../expertise_buff_duration_group_snare.py | 8 +- ...rtise_buff_duration_line_bh_return_fire.py | 8 +- ...ise_buff_duration_line_en_debuff_thrill.py | 8 +- ...ation_line_en_unhealthy_fixation_debuff.py | 8 +- ...xpertise_buff_duration_line_fs_ae_dm_cc.py | 8 +- .../expertise_buff_duration_line_fs_dm_cc.py | 8 +- ...pertise_buff_duration_line_fs_force_run.py | 8 +- ...rtise_buff_duration_line_fs_force_throw.py | 8 +- .../expertise_buff_duration_line_fs_heal.py | 8 +- ...ertise_buff_duration_line_fs_mind_trick.py | 8 +- .../expertise_buff_duration_line_me_debuff.py | 8 +- ...expertise_buff_duration_line_me_enhance.py | 8 +- ...ertise_buff_duration_line_of_group_buff.py | 9 +- ...ertise_buff_duration_line_sm_false_hope.py | 8 +- ...e_buff_duration_line_sm_impossible_odds.py | 8 +- ...tise_buff_duration_line_sm_skullduggery.py | 8 +- ...ise_buff_duration_line_sp_burst_shadows.py | 8 +- .../expertise_buff_duration_line_sp_decoy.py | 8 +- ...rtise_buff_duration_line_sp_preparation.py | 8 +- .../expertise_buff_en_void_dance_buff.py | 8 +- .../expertise_burst_fire_devastation_bonus.py | 8 +- .../skillMods/expertise_co_burst_fire_proc.py | 8 +- scripts/skillMods/expertise_co_flash_bang.py | 8 +- .../skillMods/expertise_co_muscle_spasm.py | 8 +- ...expertise_complexity_decrease_architect.py | 8 +- ...xpertise_complexity_decrease_armorsmith.py | 8 +- .../expertise_complexity_decrease_chef.py | 8 +- .../expertise_complexity_decrease_droid.py | 8 +- ...xpertise_complexity_decrease_shipwright.py | 8 +- .../expertise_complexity_decrease_tailor.py | 8 +- ...pertise_complexity_decrease_weaponsmith.py | 8 +- ...ertise_cooldown_line_bh_flawless_strike.py | 8 +- .../expertise_cooldown_line_bh_return_fire.py | 8 +- ...expertise_cooldown_line_co_riddle_armor.py | 8 +- .../skillMods/expertise_cooldown_line_dm.py | 8 +- .../expertise_cooldown_line_dm_cc.py | 8 +- .../expertise_cooldown_line_dm_crit.py | 8 +- .../expertise_cooldown_line_fs_ae_dm_cc.py | 8 +- .../expertise_cooldown_line_fs_cc_crit.py | 8 +- .../expertise_cooldown_line_fs_dm.py | 8 +- .../expertise_cooldown_line_fs_sweep.py | 8 +- .../expertise_cooldown_line_me_aoe_revive.py | 8 +- .../expertise_cooldown_line_me_dot.py | 8 +- .../expertise_cooldown_line_me_evasion.py | 8 +- .../expertise_cooldown_line_me_revive.py | 8 +- .../expertise_cooldown_line_me_stasis_self.py | 8 +- .../expertise_cooldown_line_of_firepower.py | 15 +-- .../expertise_cooldown_line_of_heal.py | 8 +- .../expertise_cooldown_line_of_paint.py | 8 +- .../expertise_cooldown_line_of_purge.py | 8 +- .../expertise_cooldown_line_of_sup.py | 8 +- .../expertise_cooldown_line_of_sure.py | 8 +- .../skillMods/expertise_cooldown_line_sh.py | 8 +- .../expertise_cooldown_line_sm_dm.py | 8 +- .../expertise_cooldown_line_sm_dm_cc.py | 8 +- .../expertise_cooldown_line_sm_false_hope.py | 8 +- ...rtise_cooldown_line_sp_burst_of_shadows.py | 8 +- .../expertise_cooldown_line_sp_dm.py | 8 +- .../expertise_cooldown_line_sp_preparation.py | 8 +- ...pertise_cooldown_line_sp_reveal_shadows.py | 8 +- .../expertise_cooldown_line_sp_smoke.py | 8 +- ...xpertise_cooldown_line_sp_without_trace.py | 8 +- scripts/skillMods/expertise_critical_1h.py | 8 +- scripts/skillMods/expertise_critical_2h.py | 8 +- .../skillMods/expertise_critical_carbine.py | 8 +- scripts/skillMods/expertise_critical_heavy.py | 8 +- .../expertise_critical_line_co_dm.py | 8 +- .../skillMods/expertise_critical_line_dm.py | 8 +- .../expertise_critical_line_dm_crit.py | 8 +- .../expertise_critical_line_en_spiral_kick.py | 8 +- .../expertise_critical_line_fldmot.py | 8 +- .../expertise_critical_line_fs_dm.py | 8 +- .../expertise_critical_line_me_dm.py | 8 +- .../expertise_critical_line_of_aoe.py | 8 +- .../expertise_critical_line_of_sure.py | 8 +- .../expertise_critical_line_sm_dm.py | 8 +- .../expertise_critical_line_sp_dm.py | 8 +- ...xpertise_critical_line_sp_stealth_melee.py | 8 +- ...pertise_critical_line_sp_stealth_ranged.py | 8 +- scripts/skillMods/expertise_critical_melee.py | 22 ++-- .../skillMods/expertise_critical_niche_all.py | 8 +- .../expertise_critical_niche_creature.py | 8 +- .../expertise_critical_niche_droid.py | 8 +- .../skillMods/expertise_critical_niche_npc.py | 8 +- .../skillMods/expertise_critical_niche_pvp.py | 8 +- .../skillMods/expertise_critical_pistol.py | 8 +- .../skillMods/expertise_critical_polearm.py | 8 +- scripts/skillMods/expertise_critical_rifle.py | 8 +- .../skillMods/expertise_critical_unarmed.py | 8 +- .../expertise_damage_add_to_action.py | 8 +- scripts/skillMods/expertise_damage_all.py | 8 +- .../skillMods/expertise_damage_area_effect.py | 8 +- .../expertise_damage_attacker_action.py | 8 +- .../expertise_damage_convert_to_action.py | 8 +- .../expertise_damage_decrease_chance.py | 8 +- .../expertise_damage_decrease_percentage.py | 8 +- .../skillMods/expertise_damage_line_co_dm.py | 8 +- .../expertise_damage_line_co_grenade.py | 8 +- ...pertise_damage_line_co_remote_detonator.py | 8 +- scripts/skillMods/expertise_damage_line_dm.py | 8 +- .../skillMods/expertise_damage_line_dm_cc.py | 8 +- .../expertise_damage_line_dm_crit.py | 8 +- ...rtise_damage_line_en_sweeping_pirouette.py | 8 +- .../skillMods/expertise_damage_line_fldmot.py | 8 +- .../expertise_damage_line_fs_ae_dm_cc.py | 8 +- .../expertise_damage_line_fs_cc_crit.py | 8 +- .../skillMods/expertise_damage_line_fs_dm.py | 8 +- .../expertise_damage_line_fs_dm_cc.py | 8 +- .../expertise_damage_line_fs_force_throw.py | 8 +- .../expertise_damage_line_fs_saber_reflect.py | 8 +- .../expertise_damage_line_fs_sweep.py | 8 +- .../skillMods/expertise_damage_line_me_dm.py | 8 +- .../skillMods/expertise_damage_line_me_dot.py | 8 +- .../skillMods/expertise_damage_line_of_aoe.py | 8 +- .../expertise_damage_line_of_paint.py | 8 +- .../expertise_damage_line_of_sure.py | 8 +- .../skillMods/expertise_damage_line_sm_dm.py | 8 +- .../skillMods/expertise_damage_line_sp_dm.py | 8 +- .../expertise_damage_line_sp_hd_melee.py | 8 +- .../expertise_damage_line_sp_stealth_melee.py | 8 +- ...expertise_damage_line_sp_stealth_ranged.py | 8 +- ...e_damage_line_vulnerability_of_buff_def.py | 8 +- ...pertise_damage_line_vulnerability_of_dm.py | 8 +- scripts/skillMods/expertise_damage_melee.py | 8 +- scripts/skillMods/expertise_damage_pistol.py | 8 +- scripts/skillMods/expertise_damage_ranged.py | 8 +- ...expertise_damage_to_healing_fs_ae_dm_cc.py | 8 +- scripts/skillMods/expertise_damage_unarmed.py | 8 +- .../skillMods/expertise_damage_weapon_0.py | 8 +- .../skillMods/expertise_damage_weapon_1.py | 8 +- .../skillMods/expertise_damage_weapon_10.py | 8 +- .../skillMods/expertise_damage_weapon_11.py | 8 +- .../skillMods/expertise_damage_weapon_2.py | 8 +- .../skillMods/expertise_damage_weapon_29.py | 8 +- .../skillMods/expertise_damage_weapon_3.py | 8 +- .../skillMods/expertise_damage_weapon_4.py | 8 +- .../skillMods/expertise_damage_weapon_5.py | 8 +- .../skillMods/expertise_damage_weapon_6.py | 8 +- .../skillMods/expertise_damage_weapon_7.py | 8 +- .../skillMods/expertise_damage_weapon_9.py | 8 +- .../skillMods/expertise_damage_weapon_all.py | 8 +- ...xpertise_delay_line_co_remote_detonator.py | 8 +- .../skillMods/expertise_devastation_bonus.py | 8 +- scripts/skillMods/expertise_dodge.py | 8 +- .../skillMods/expertise_dot_absorption_all.py | 8 +- ...ertise_dot_damage_line_sp_stealth_melee.py | 8 +- ...rtise_dot_damage_line_sp_stealth_ranged.py | 8 +- ...rtise_dot_duration_line_co_armor_splash.py | 8 +- .../expertise_dot_duration_line_co_grenade.py | 8 +- ...expertise_dot_duration_line_co_it_burns.py | 8 +- ...rtise_dot_duration_line_co_shock_tracer.py | 8 +- .../expertise_dot_duration_line_me_dot.py | 8 +- scripts/skillMods/expertise_dot_increase.py | 8 +- .../skillMods/expertise_double_deal_chance.py | 8 +- .../skillMods/expertise_double_hit_chance.py | 8 +- .../expertise_dueterium_rounds_proc.py | 8 +- .../expertise_en_combat_buff_increase.py | 8 +- .../expertise_en_debuff_thrill_increase.py | 8 +- ...ertise_en_holographic_additional_backup.py | 8 +- scripts/skillMods/expertise_en_improv.py | 8 +- .../expertise_en_inspire_attrib_increase.py | 8 +- ...xpertise_en_inspire_base_point_increase.py | 8 +- ...rtise_en_inspire_buff_duration_increase.py | 8 +- ...pertise_en_inspire_proc_chance_increase.py | 8 +- ...tise_en_inspire_pulse_duration_increase.py | 8 +- .../expertise_en_inspire_resist_increase.py | 8 +- .../expertise_en_inspire_trader_increase.py | 8 +- .../expertise_en_performance_increase.py | 8 +- scripts/skillMods/expertise_evasion_chance.py | 12 +- scripts/skillMods/expertise_evasion_value.py | 12 +- ...tise_experimentation_increase_architect.py | 8 +- ...ise_experimentation_increase_armorsmith.py | 8 +- ...ertise_experimentation_increase_artisan.py | 8 +- ...expertise_experimentation_increase_chef.py | 8 +- ...ise_experimentation_increase_cybernetic.py | 8 +- ...xpertise_experimentation_increase_droid.py | 8 +- ...ise_experimentation_increase_shipwright.py | 8 +- ...pertise_experimentation_increase_tailor.py | 8 +- ...se_experimentation_increase_weaponsmith.py | 8 +- ...pertise_experimentation_point_architect.py | 8 +- ...ertise_experimentation_point_armorsmith.py | 8 +- ...expertise_experimentation_point_artisan.py | 8 +- .../expertise_experimentation_point_chef.py | 8 +- .../expertise_experimentation_point_droid.py | 8 +- ...ertise_experimentation_point_shipwright.py | 8 +- .../expertise_experimentation_point_tailor.py | 8 +- ...rtise_experimentation_point_weaponsmith.py | 8 +- .../expertise_factory_energy_decrease.py | 8 +- .../expertise_factory_maintenance_decrease.py | 8 +- .../expertise_factory_production_increase.py | 8 +- .../skillMods/expertise_fast_talk_bonus.py | 8 +- scripts/skillMods/expertise_fast_talk_rank.py | 8 +- scripts/skillMods/expertise_focus.py | 8 +- .../expertise_focus_critical_buff_line.py | 8 +- .../expertise_focus_damage_increase.py | 8 +- scripts/skillMods/expertise_focus_stamina.py | 8 +- scripts/skillMods/expertise_focus_strength.py | 8 +- .../expertise_force_cloak_combat_escape.py | 8 +- scripts/skillMods/expertise_freeshot_co_dm.py | 8 +- .../expertise_freeshot_co_grenade.py | 8 +- scripts/skillMods/expertise_freeshot_dm.py | 8 +- scripts/skillMods/expertise_freeshot_fs_dm.py | 8 +- .../skillMods/expertise_freeshot_me_debuff.py | 8 +- scripts/skillMods/expertise_freeshot_me_dm.py | 8 +- .../skillMods/expertise_freeshot_me_heal.py | 8 +- .../skillMods/expertise_freeshot_of_aoe.py | 8 +- .../skillMods/expertise_freeshot_of_sure.py | 8 +- scripts/skillMods/expertise_freeshot_sm_dm.py | 8 +- .../skillMods/expertise_freeshot_sm_dm_cc.py | 8 +- scripts/skillMods/expertise_freeshot_sp_dm.py | 8 +- .../expertise_fs_force_clarity_1_proc.py | 8 +- .../skillMods/expertise_glancing_blow_all.py | 12 +- .../expertise_glancing_blow_melee.py | 8 +- .../expertise_glancing_blow_melee_defense.py | 8 +- .../expertise_glancing_blow_ranged.py | 8 +- ...expertise_harvester_collection_increase.py | 8 +- .../expertise_harvester_energy_decrease.py | 8 +- ...xpertise_harvester_maintenance_decrease.py | 8 +- .../expertise_havester_storage_increase.py | 8 +- scripts/skillMods/expertise_healing_all.py | 8 +- .../expertise_healing_line_fs_heal.py | 8 +- .../expertise_healing_line_me_heal.py | 8 +- .../expertise_healing_line_me_hot.py | 8 +- .../expertise_healing_line_me_hot_ae.py | 8 +- .../expertise_healing_line_of_heal.py | 8 +- .../expertise_healing_line_sm_heal.py | 8 +- .../expertise_healing_line_sp_cloaked_heal.py | 8 +- .../expertise_healing_line_sp_heal.py | 8 +- scripts/skillMods/expertise_hit_by_luck.py | 8 +- .../expertise_increase_hit_by_luck.py | 8 +- .../expertise_increase_smuggler_loot.py | 8 +- .../expertise_innate_protection_all.py | 32 +++-- .../expertise_innate_protection_energy.py | 12 +- .../expertise_innate_protection_kinetic.py | 10 +- .../expertise_innate_reduction_all_player.py | 8 +- .../skillMods/expertise_junk_dealer_cut.py | 8 +- .../skillMods/expertise_lucky_break_chance.py | 8 +- scripts/skillMods/expertise_miss_by_luck.py | 8 +- .../expertise_movement_buff_fs_force_run.py | 8 +- ...ise_movement_buff_invis_sp_buff_invis_1.py | 8 +- ...e_movement_buff_invis_sp_buff_stealth_1.py | 8 +- .../skillMods/expertise_on_target_critical.py | 8 +- .../expertise_on_target_protection.py | 8 +- ...xpertise_overridable_protection_generic.py | 8 +- scripts/skillMods/expertise_parry.py | 8 +- scripts/skillMods/expertise_pet_dodge.py | 8 +- .../expertise_poison_knuckle_proc.py | 8 +- .../skillMods/expertise_range_bonus_all.py | 8 +- .../expertise_range_bonus_carbine.py | 8 +- .../skillMods/expertise_range_bonus_melee.py | 8 +- .../skillMods/expertise_range_bonus_pistol.py | 8 +- .../skillMods/expertise_range_bonus_ranged.py | 8 +- .../expertise_resource_quality_increase.py | 8 +- .../expertise_resource_sampling_increase.py | 8 +- ...pertise_resource_sampling_time_decrease.py | 8 +- .../expertise_reverse_engineering_bonus.py | 8 +- scripts/skillMods/expertise_riddle_armor.py | 8 +- .../expertise_root_chance_fs_dm_cc.py | 8 +- scripts/skillMods/expertise_saber_block.py | 8 +- ...ise_skill_buff_glancing_blow_vulnerable.py | 8 +- scripts/skillMods/expertise_sly_lie_bonus.py | 8 +- scripts/skillMods/expertise_sly_lie_rank.py | 8 +- .../skillMods/expertise_sm_card_melee_proc.py | 8 +- .../expertise_sm_card_ranged_proc.py | 8 +- .../expertise_sm_feeling_lucky_chance_proc.py | 8 +- scripts/skillMods/expertise_sm_melee_proc.py | 8 +- .../skillMods/expertise_sm_melee_stun_proc.py | 8 +- .../expertise_sm_ranged_shot_proc.py | 8 +- .../expertise_sm_rank_damage_bonus.py | 8 +- .../expertise_sm_rank_range_bonus.py | 8 +- .../expertise_socket_increase_tailor.py | 8 +- ...expertise_sp_cripple_trap_proc_increase.py | 8 +- ...p_reveal_shadows_detect_chance_increase.py | 8 +- ...ise_sp_reveal_shadows_distance_increase.py | 8 +- ...pertise_spot_a_sucker_critical_decrease.py | 8 +- .../expertise_spot_a_sucker_glance_chance.py | 8 +- scripts/skillMods/expertise_stance.py | 12 +- .../expertise_stance_constitution.py | 8 +- scripts/skillMods/expertise_stance_evasion.py | 8 +- .../expertise_stance_glance_buff_line.py | 8 +- scripts/skillMods/expertise_stance_parry.py | 8 +- scripts/skillMods/expertise_stance_riposte.py | 8 +- .../skillMods/expertise_stance_saber_block.py | 8 +- .../expertise_strikethrough_chance.py | 8 +- .../skillMods/expertise_underworld_boss.py | 8 +- .../expertise_undiminished_critical_melee.py | 8 +- .../expertise_vendor_cost_decrease.py | 8 +- .../skillMods/expertise_vendor_item_limit.py | 8 +- .../expertise_vendor_limit_increase.py | 8 +- .../skillMods/expertise_youll_regret_that.py | 8 +- scripts/skillMods/face.py | 14 +- scripts/skillMods/factory_speed.py | 8 +- .../skillMods/fast_attack_line_co_grenade.py | 8 +- scripts/skillMods/fast_attack_line_dm_cc.py | 8 +- .../skillMods/fast_attack_line_fs_powers.py | 8 +- .../skillMods/fast_attack_line_me_debuff.py | 8 +- scripts/skillMods/fast_attack_line_me_dm.py | 8 +- scripts/skillMods/fast_attack_line_me_heal.py | 8 +- .../skillMods/fast_attack_line_me_revive.py | 8 +- scripts/skillMods/fast_attack_line_of_aoe.py | 8 +- scripts/skillMods/fast_attack_line_of_heal.py | 8 +- scripts/skillMods/fast_attack_line_sm_dm.py | 8 +- scripts/skillMods/fast_attack_line_sp_dm.py | 8 +- .../skillMods/fast_attack_line_sp_perfect.py | 8 +- .../skillMods/fast_attack_line_sp_smoke.py | 8 +- scripts/skillMods/food_assembly.py | 8 +- scripts/skillMods/food_experimentation.py | 8 +- scripts/skillMods/force_sensitive.py | 8 +- scripts/skillMods/general_assembly.py | 8 +- scripts/skillMods/general_experimentation.py | 8 +- scripts/skillMods/glancing_blow_vulnerable.py | 8 +- scripts/skillMods/hair.py | 14 +- scripts/skillMods/healing_action.py | 11 +- scripts/skillMods/healing_dance_ability.py | 8 +- scripts/skillMods/healing_dance_wound.py | 8 +- scripts/skillMods/healing_health.py | 8 +- scripts/skillMods/healing_music_ability.py | 8 +- scripts/skillMods/healing_music_wound.py | 8 +- scripts/skillMods/health.py | 12 +- scripts/skillMods/healthPercent.py | 12 +- scripts/skillMods/heat.py | 8 +- scripts/skillMods/hiring.py | 8 +- .../skillMods/incubation_time_reduction.py | 8 +- scripts/skillMods/instrument_assembly.py | 8 +- scripts/skillMods/instrument_customization.py | 8 +- scripts/skillMods/invis.py | 8 +- scripts/skillMods/jedi_saber_assembly.py | 8 +- .../skillMods/jedi_saber_experimentation.py | 8 +- .../kill_meter_co_armor_splash_proc.py | 8 +- .../skillMods/kill_meter_co_it_burns_proc.py | 8 +- .../kill_meter_co_youll_regret_that_reac.py | 8 +- .../kill_meter_damage_line_co_grenade.py | 8 +- .../skillMods/kill_meter_damage_weapon_all.py | 8 +- scripts/skillMods/kinetic.py | 8 +- scripts/skillMods/level_add_to_damage.py | 8 +- scripts/skillMods/luck.py | 24 ++-- scripts/skillMods/luck_modified.py | 24 ++-- scripts/skillMods/manage_vendor.py | 8 +- scripts/skillMods/markings.py | 13 +- scripts/skillMods/me_doom_chance.py | 8 +- .../skillMods/milk_exceptional_modified.py | 8 +- scripts/skillMods/milk_quantity_modified.py | 8 +- scripts/skillMods/milk_stun_modified.py | 8 +- scripts/skillMods/misc.py | 8 +- scripts/skillMods/missile_launching.py | 8 +- scripts/skillMods/movement.py | 13 +- scripts/skillMods/movement_resist_root.py | 8 +- scripts/skillMods/movement_resist_snare.py | 8 +- .../skillMods/of_inspired_action_chance.py | 8 +- scripts/skillMods/pilot_special_tactics.py | 8 +- scripts/skillMods/piloting.py | 8 +- scripts/skillMods/politics.py | 8 +- scripts/skillMods/power_systems.py | 8 +- .../power_systems_experimentation.py | 8 +- scripts/skillMods/precision.py | 24 ++-- scripts/skillMods/precision_modified.py | 24 ++-- scripts/skillMods/private_place_bank.py | 8 +- scripts/skillMods/private_place_cityhall.py | 8 +- scripts/skillMods/private_place_cloning.py | 8 +- .../skillMods/private_place_exotic_garden.py | 8 +- scripts/skillMods/private_place_garage.py | 8 +- scripts/skillMods/private_place_hospital.py | 8 +- .../skillMods/private_place_large_garden.py | 8 +- .../skillMods/private_place_medium_garden.py | 8 +- .../skillMods/private_place_shuttleport.py | 8 +- .../skillMods/private_place_small_garden.py | 8 +- scripts/skillMods/propulsion_reverse.py | 8 +- scripts/skillMods/resistance_bleeding.py | 8 +- scripts/skillMods/resistance_disease.py | 8 +- scripts/skillMods/resistance_fire.py | 8 +- .../skillMods/resistance_incapacitation.py | 8 +- scripts/skillMods/resistance_poison.py | 8 +- scripts/skillMods/resistance_spice_downer.py | 8 +- scripts/skillMods/shields_assembly.py | 8 +- scripts/skillMods/shields_experimentation.py | 8 +- scripts/skillMods/ship_weapon_damage.py | 8 +- scripts/skillMods/shop_sign.py | 8 +- scripts/skillMods/slope_move.py | 8 +- ...cial_sign_chronicle_master_hanging_sign.py | 8 +- ...ial_sign_chronicle_master_standing_sign.py | 8 +- .../skillMods/special_sign_efol_hanging.py | 8 +- .../skillMods/special_sign_efol_standing.py | 8 +- .../special_sign_halloween_hanging_sign.py | 8 +- .../special_sign_halloween_standing_sign.py | 8 +- .../special_sign_imp_empire_day_hanging.py | 8 +- .../special_sign_imp_empire_day_standing.py | 8 +- .../special_sign_reb_empire_day_hanging.py | 8 +- .../special_sign_reb_empire_day_standing.py | 8 +- scripts/skillMods/special_sign_tcg_series3.py | 8 +- scripts/skillMods/special_sign_tcg_series5.py | 8 +- .../special_sign_wod_sm_01_banner.py | 8 +- .../special_sign_wod_sm_01_hanging.py | 8 +- .../special_sign_wod_sm_01_standing.py | 8 +- .../special_sign_wod_sm_02_banner.py | 8 +- .../special_sign_wod_sm_03_banner.py | 8 +- .../special_vendor_tcg_series1_bomarr_monk.py | 8 +- .../special_vendor_tcg_series1_ewok.py | 8 +- .../special_vendor_tcg_series1_gungan.py | 8 +- .../special_vendor_tcg_series1_jawa.py | 8 +- .../special_vendor_tcg_series1_meatlump.py | 8 +- ...pecial_vendor_tcg_series1_serving_droid.py | 8 +- ...special_vendor_tcg_series3_battle_droid.py | 8 +- .../special_vendor_tcg_series3_nightsister.py | 8 +- .../special_vendor_tcg_series4_kitonak.py | 8 +- .../special_vendor_tcg_series4_toydarian.py | 8 +- scripts/skillMods/species.py | 8 +- scripts/skillMods/species_bothan.py | 8 +- scripts/skillMods/species_human.py | 8 +- scripts/skillMods/species_ithorian.py | 8 +- scripts/skillMods/species_moncal.py | 8 +- scripts/skillMods/species_rodian.py | 8 +- scripts/skillMods/species_sullustan.py | 8 +- scripts/skillMods/species_trandoshan.py | 8 +- scripts/skillMods/species_twilek.py | 8 +- scripts/skillMods/species_wookiee.py | 8 +- scripts/skillMods/species_zabrak.py | 8 +- scripts/skillMods/stamina.py | 18 ++- scripts/skillMods/stamina_modified.py | 18 ++- scripts/skillMods/stealth.py | 8 +- scripts/skillMods/stealth_divisor.py | 8 +- scripts/skillMods/strength.py | 12 +- scripts/skillMods/strength_modified.py | 10 +- scripts/skillMods/strikethrough_vulnerable.py | 8 +- scripts/skillMods/structure_assembly.py | 8 +- scripts/skillMods/structure_customization.py | 8 +- .../skillMods/structure_experimentation.py | 8 +- scripts/skillMods/surveying.py | 8 +- scripts/skillMods/systems_reverse.py | 8 +- scripts/skillMods/tka_armor.py | 8 +- scripts/skillMods/trader.py | 8 +- scripts/skillMods/vendor_item_limit.py | 8 +- scripts/skillMods/weapon_assembly.py | 8 +- scripts/skillMods/weapon_experimentation.py | 8 +- scripts/skillMods/weapon_systems.py | 8 +- .../weapon_systems_experimentation.py | 8 +- src/resources/objects/SkillMod.java | 93 +++++++++----- .../objects/creature/CreatureObject.java | 39 +----- src/services/EquipmentService.java | 4 +- src/services/SkillModService.java | 121 +++++++++++++++--- src/services/resources/ResourceService.java | 2 +- 629 files changed, 2167 insertions(+), 3328 deletions(-) diff --git a/scripts/skillMods/absorption_bleeding.py b/scripts/skillMods/absorption_bleeding.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/absorption_bleeding.py +++ b/scripts/skillMods/absorption_bleeding.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/absorption_disease.py b/scripts/skillMods/absorption_disease.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/absorption_disease.py +++ b/scripts/skillMods/absorption_disease.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/absorption_fire.py b/scripts/skillMods/absorption_fire.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/absorption_fire.py +++ b/scripts/skillMods/absorption_fire.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/absorption_poison.py b/scripts/skillMods/absorption_poison.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/absorption_poison.py +++ b/scripts/skillMods/absorption_poison.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/accuracy_modifier.py b/scripts/skillMods/accuracy_modifier.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/accuracy_modifier.py +++ b/scripts/skillMods/accuracy_modifier.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/acid.py b/scripts/skillMods/acid.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/acid.py +++ b/scripts/skillMods/acid.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/action.py b/scripts/skillMods/action.py index 5d92ea61..b5c5e291 100644 --- a/scripts/skillMods/action.py +++ b/scripts/skillMods/action.py @@ -1,12 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.setMaxAction(actor.getMaxAction() + base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.setMaxAction(actor.getMaxAction() - base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/actionPercent.py b/scripts/skillMods/actionPercent.py index aaae3c10..a2fabea0 100644 --- a/scripts/skillMods/actionPercent.py +++ b/scripts/skillMods/actionPercent.py @@ -2,13 +2,11 @@ import sys # Temporarily disabled until the skillmod calculation system is refactored -def add(core, actor, name, base): - #actor.addSkillMod(name, base) - #actor.setMaxAction(actor.getMaxAction() + int((float(actor.getMaxAction()) * (float(base) / float(100))))) +def add(core, actor, skillMod, divisor): + #actor.setMaxAction(actor.getMaxAction() + int((float(actor.getMaxAction()) * (float(skillMod.getBase()) / float(100))))) return - -def deduct(core, actor, name, base): - #actor.deductSkillMod(name, base) - #actor.setMaxAction(actor.getMaxAction() - int((float(actor.getMaxAction()) * (float(base) / float(100))))) + +def deduct(core, actor, skillMod, divisor): + #actor.setMaxAction(actor.getMaxAction() - int((float(actor.getMaxAction()) * (float(skillMod.getBase()) / float(100))))) return \ No newline at end of file diff --git a/scripts/skillMods/action_burn.py b/scripts/skillMods/action_burn.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/action_burn.py +++ b/scripts/skillMods/action_burn.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/advanced_assembly.py b/scripts/skillMods/advanced_assembly.py index ee7769e2..6cd11173 100644 --- a/scripts/skillMods/advanced_assembly.py +++ b/scripts/skillMods/advanced_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, divisor): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, divisor): return \ No newline at end of file diff --git a/scripts/skillMods/advanced_ship_experimentation.py b/scripts/skillMods/advanced_ship_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/advanced_ship_experimentation.py +++ b/scripts/skillMods/advanced_ship_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/agility.py b/scripts/skillMods/agility.py index 80b31400..9f9e8568 100644 --- a/scripts/skillMods/agility.py +++ b/scripts/skillMods/agility.py @@ -1,16 +1,14 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.addSkillMod('display_only_dodge', base) - actor.addSkillMod('display_only_parry', base / 2) - actor.addSkillMod('display_only_evasion', base) +def add(core, actor, skillMod, value): + core.skillModService.addSkillMod('display_only_dodge', base) + core.skillModService.addSkillMod('display_only_parry', base / 2) + core.skillModService.addSkillMod('display_only_evasion', base) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.deductSkillMod('display_only_dodge', base) - actor.deductSkillMod('display_only_parry', base / 2) - actor.deductSkillMod('display_only_evasion', base) + +def deduct(core, actor, skillMod, value): + core.skillModService.deductSkillMod('display_only_dodge', base) + core.skillModService.deductSkillMod('display_only_parry', base / 2) + core.skillModService.deductSkillMod('display_only_evasion', base) return \ No newline at end of file diff --git a/scripts/skillMods/agility_modified.py b/scripts/skillMods/agility_modified.py index 80b31400..9f9e8568 100644 --- a/scripts/skillMods/agility_modified.py +++ b/scripts/skillMods/agility_modified.py @@ -1,16 +1,14 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.addSkillMod('display_only_dodge', base) - actor.addSkillMod('display_only_parry', base / 2) - actor.addSkillMod('display_only_evasion', base) +def add(core, actor, skillMod, value): + core.skillModService.addSkillMod('display_only_dodge', base) + core.skillModService.addSkillMod('display_only_parry', base / 2) + core.skillModService.addSkillMod('display_only_evasion', base) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.deductSkillMod('display_only_dodge', base) - actor.deductSkillMod('display_only_parry', base / 2) - actor.deductSkillMod('display_only_evasion', base) + +def deduct(core, actor, skillMod, value): + core.skillModService.deductSkillMod('display_only_dodge', base) + core.skillModService.deductSkillMod('display_only_parry', base / 2) + core.skillModService.deductSkillMod('display_only_evasion', base) return \ No newline at end of file diff --git a/scripts/skillMods/area_damage_resist_full_percentage.py b/scripts/skillMods/area_damage_resist_full_percentage.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/area_damage_resist_full_percentage.py +++ b/scripts/skillMods/area_damage_resist_full_percentage.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/armor_assembly.py b/scripts/skillMods/armor_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/armor_assembly.py +++ b/scripts/skillMods/armor_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/armor_customization.py b/scripts/skillMods/armor_customization.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/armor_customization.py +++ b/scripts/skillMods/armor_customization.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/armor_experimentation.py b/scripts/skillMods/armor_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/armor_experimentation.py +++ b/scripts/skillMods/armor_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/bh_dire_root.py b/scripts/skillMods/bh_dire_root.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/bh_dire_root.py +++ b/scripts/skillMods/bh_dire_root.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/bh_dire_snare.py b/scripts/skillMods/bh_dire_snare.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/bh_dire_snare.py +++ b/scripts/skillMods/bh_dire_snare.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/bm_creature_knowledge.py b/scripts/skillMods/bm_creature_knowledge.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/bm_creature_knowledge.py +++ b/scripts/skillMods/bm_creature_knowledge.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/bm_incubator_dps_armor.py b/scripts/skillMods/bm_incubator_dps_armor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/bm_incubator_dps_armor.py +++ b/scripts/skillMods/bm_incubator_dps_armor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/bm_mutation_chance_increase.py b/scripts/skillMods/bm_mutation_chance_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/bm_mutation_chance_increase.py +++ b/scripts/skillMods/bm_mutation_chance_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/bm_xp_mod_boost.py b/scripts/skillMods/bm_xp_mod_boost.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/bm_xp_mod_boost.py +++ b/scripts/skillMods/bm_xp_mod_boost.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/booster_assembly.py b/scripts/skillMods/booster_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/booster_assembly.py +++ b/scripts/skillMods/booster_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/booster_experimentation.py b/scripts/skillMods/booster_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/booster_experimentation.py +++ b/scripts/skillMods/booster_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/bounty_hunter.py b/scripts/skillMods/bounty_hunter.py index ee7769e2..6cd11173 100644 --- a/scripts/skillMods/bounty_hunter.py +++ b/scripts/skillMods/bounty_hunter.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, divisor): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, divisor): return \ No newline at end of file diff --git a/scripts/skillMods/bounty_mission_level.py b/scripts/skillMods/bounty_mission_level.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/bounty_mission_level.py +++ b/scripts/skillMods/bounty_mission_level.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/camouflage.py b/scripts/skillMods/camouflage.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/camouflage.py +++ b/scripts/skillMods/camouflage.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/chassis_assembly.py b/scripts/skillMods/chassis_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/chassis_assembly.py +++ b/scripts/skillMods/chassis_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/chassis_experimentation.py b/scripts/skillMods/chassis_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/chassis_experimentation.py +++ b/scripts/skillMods/chassis_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/clothing_assembly.py b/scripts/skillMods/clothing_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/clothing_assembly.py +++ b/scripts/skillMods/clothing_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/clothing_customization.py b/scripts/skillMods/clothing_customization.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/clothing_customization.py +++ b/scripts/skillMods/clothing_customization.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/clothing_experimentation.py b/scripts/skillMods/clothing_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/clothing_experimentation.py +++ b/scripts/skillMods/clothing_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/cold.py b/scripts/skillMods/cold.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/cold.py +++ b/scripts/skillMods/cold.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/combat_block_chance.py b/scripts/skillMods/combat_block_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/combat_block_chance.py +++ b/scripts/skillMods/combat_block_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/combat_block_value.py b/scripts/skillMods/combat_block_value.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/combat_block_value.py +++ b/scripts/skillMods/combat_block_value.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/combat_critical_hit_reduction.py b/scripts/skillMods/combat_critical_hit_reduction.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/combat_critical_hit_reduction.py +++ b/scripts/skillMods/combat_critical_hit_reduction.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/combat_divide_damage_dealt.py b/scripts/skillMods/combat_divide_damage_dealt.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/combat_divide_damage_dealt.py +++ b/scripts/skillMods/combat_divide_damage_dealt.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/combat_divide_damage_taken.py b/scripts/skillMods/combat_divide_damage_taken.py index 8d3e11e4..b5c5e291 100644 --- a/scripts/skillMods/combat_divide_damage_taken.py +++ b/scripts/skillMods/combat_divide_damage_taken.py @@ -1,9 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return + \ No newline at end of file diff --git a/scripts/skillMods/combat_dodge.py b/scripts/skillMods/combat_dodge.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/combat_dodge.py +++ b/scripts/skillMods/combat_dodge.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/combat_evasion_chance.py b/scripts/skillMods/combat_evasion_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/combat_evasion_chance.py +++ b/scripts/skillMods/combat_evasion_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/combat_evasion_value.py b/scripts/skillMods/combat_evasion_value.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/combat_evasion_value.py +++ b/scripts/skillMods/combat_evasion_value.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/combat_parry.py b/scripts/skillMods/combat_parry.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/combat_parry.py +++ b/scripts/skillMods/combat_parry.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/combat_slow.py b/scripts/skillMods/combat_slow.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/combat_slow.py +++ b/scripts/skillMods/combat_slow.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/combat_strikethrough_chance.py b/scripts/skillMods/combat_strikethrough_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/combat_strikethrough_chance.py +++ b/scripts/skillMods/combat_strikethrough_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/combat_strikethrough_value.py b/scripts/skillMods/combat_strikethrough_value.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/combat_strikethrough_value.py +++ b/scripts/skillMods/combat_strikethrough_value.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/constitution.py b/scripts/skillMods/constitution.py index edf5e01c..73c88999 100644 --- a/scripts/skillMods/constitution.py +++ b/scripts/skillMods/constitution.py @@ -1,14 +1,12 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): actor.setMaxHealth(actor.getMaxHealth() + base * 8) actor.setMaxAction(actor.getMaxAction() + base * 2) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): actor.setMaxHealth(actor.getMaxHealth() - base * 8) actor.setMaxAction(actor.getMaxAction() - base * 2) return - + \ No newline at end of file diff --git a/scripts/skillMods/constitution_modified.py b/scripts/skillMods/constitution_modified.py index edf5e01c..73c88999 100644 --- a/scripts/skillMods/constitution_modified.py +++ b/scripts/skillMods/constitution_modified.py @@ -1,14 +1,12 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): actor.setMaxHealth(actor.getMaxHealth() + base * 8) actor.setMaxAction(actor.getMaxAction() + base * 2) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): actor.setMaxHealth(actor.getMaxHealth() - base * 8) actor.setMaxAction(actor.getMaxAction() - base * 2) return - + \ No newline at end of file diff --git a/scripts/skillMods/cooldown_percent_of_group_buff.py b/scripts/skillMods/cooldown_percent_of_group_buff.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/cooldown_percent_of_group_buff.py +++ b/scripts/skillMods/cooldown_percent_of_group_buff.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/crafting_critical_success_bonus.py b/scripts/skillMods/crafting_critical_success_bonus.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/crafting_critical_success_bonus.py +++ b/scripts/skillMods/crafting_critical_success_bonus.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/creature_harvesting.py b/scripts/skillMods/creature_harvesting.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/creature_harvesting.py +++ b/scripts/skillMods/creature_harvesting.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/critical_damage_vulnerability.py b/scripts/skillMods/critical_damage_vulnerability.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/critical_damage_vulnerability.py +++ b/scripts/skillMods/critical_damage_vulnerability.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/critical_hit_vulnerable.py b/scripts/skillMods/critical_hit_vulnerable.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/critical_hit_vulnerable.py +++ b/scripts/skillMods/critical_hit_vulnerable.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/cybernetic_assembly.py b/scripts/skillMods/cybernetic_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/cybernetic_assembly.py +++ b/scripts/skillMods/cybernetic_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/cybernetic_customization.py b/scripts/skillMods/cybernetic_customization.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/cybernetic_customization.py +++ b/scripts/skillMods/cybernetic_customization.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/cybernetic_experimentation.py b/scripts/skillMods/cybernetic_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/cybernetic_experimentation.py +++ b/scripts/skillMods/cybernetic_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/cybernetic_psychosis_resistance.py b/scripts/skillMods/cybernetic_psychosis_resistance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/cybernetic_psychosis_resistance.py +++ b/scripts/skillMods/cybernetic_psychosis_resistance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/damage_decrease_percentage.py b/scripts/skillMods/damage_decrease_percentage.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/damage_decrease_percentage.py +++ b/scripts/skillMods/damage_decrease_percentage.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/debuff_purge.py b/scripts/skillMods/debuff_purge.py index f198037b..b5c5e291 100644 --- a/scripts/skillMods/debuff_purge.py +++ b/scripts/skillMods/debuff_purge.py @@ -1,9 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - return \ No newline at end of file + +def deduct(core, actor, skillMod, value): + return + \ No newline at end of file diff --git a/scripts/skillMods/defense_reverse.py b/scripts/skillMods/defense_reverse.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/defense_reverse.py +++ b/scripts/skillMods/defense_reverse.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/detect_hidden.py b/scripts/skillMods/detect_hidden.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/detect_hidden.py +++ b/scripts/skillMods/detect_hidden.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_block.py b/scripts/skillMods/display_only_block.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_block.py +++ b/scripts/skillMods/display_only_block.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_critical.py b/scripts/skillMods/display_only_critical.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_critical.py +++ b/scripts/skillMods/display_only_critical.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_dodge.py b/scripts/skillMods/display_only_dodge.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_dodge.py +++ b/scripts/skillMods/display_only_dodge.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_evasion.py b/scripts/skillMods/display_only_evasion.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_evasion.py +++ b/scripts/skillMods/display_only_evasion.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_expertise_critical_hit_pvp_reduction.py b/scripts/skillMods/display_only_expertise_critical_hit_pvp_reduction.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_expertise_critical_hit_pvp_reduction.py +++ b/scripts/skillMods/display_only_expertise_critical_hit_pvp_reduction.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_expertise_critical_hit_reduction.py b/scripts/skillMods/display_only_expertise_critical_hit_reduction.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_expertise_critical_hit_reduction.py +++ b/scripts/skillMods/display_only_expertise_critical_hit_reduction.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_glancing_blow.py b/scripts/skillMods/display_only_glancing_blow.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_glancing_blow.py +++ b/scripts/skillMods/display_only_glancing_blow.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_opp_block_reduction.py b/scripts/skillMods/display_only_opp_block_reduction.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_opp_block_reduction.py +++ b/scripts/skillMods/display_only_opp_block_reduction.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_opp_dodge_reduction.py b/scripts/skillMods/display_only_opp_dodge_reduction.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_opp_dodge_reduction.py +++ b/scripts/skillMods/display_only_opp_dodge_reduction.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_parry.py b/scripts/skillMods/display_only_parry.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_parry.py +++ b/scripts/skillMods/display_only_parry.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_parry_reduction.py b/scripts/skillMods/display_only_parry_reduction.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_parry_reduction.py +++ b/scripts/skillMods/display_only_parry_reduction.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_strikethrough.py b/scripts/skillMods/display_only_strikethrough.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_strikethrough.py +++ b/scripts/skillMods/display_only_strikethrough.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/display_only_tohit.py b/scripts/skillMods/display_only_tohit.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/display_only_tohit.py +++ b/scripts/skillMods/display_only_tohit.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/dot_bleed.py b/scripts/skillMods/dot_bleed.py index f198037b..b5c5e291 100644 --- a/scripts/skillMods/dot_bleed.py +++ b/scripts/skillMods/dot_bleed.py @@ -1,9 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - return \ No newline at end of file + +def deduct(core, actor, skillMod, value): + return + \ No newline at end of file diff --git a/scripts/skillMods/dot_divisor_all.py b/scripts/skillMods/dot_divisor_all.py index f198037b..b5c5e291 100644 --- a/scripts/skillMods/dot_divisor_all.py +++ b/scripts/skillMods/dot_divisor_all.py @@ -1,9 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - return \ No newline at end of file + +def deduct(core, actor, skillMod, value): + return + \ No newline at end of file diff --git a/scripts/skillMods/dot_fire.py b/scripts/skillMods/dot_fire.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/dot_fire.py +++ b/scripts/skillMods/dot_fire.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/dot_poison.py b/scripts/skillMods/dot_poison.py index f198037b..b5c5e291 100644 --- a/scripts/skillMods/dot_poison.py +++ b/scripts/skillMods/dot_poison.py @@ -1,9 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - return \ No newline at end of file + +def deduct(core, actor, skillMod, value): + return + \ No newline at end of file diff --git a/scripts/skillMods/dot_resist_all.py b/scripts/skillMods/dot_resist_all.py index f198037b..b5c5e291 100644 --- a/scripts/skillMods/dot_resist_all.py +++ b/scripts/skillMods/dot_resist_all.py @@ -1,9 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - return \ No newline at end of file + +def deduct(core, actor, skillMod, value): + return + \ No newline at end of file diff --git a/scripts/skillMods/droid_assembly.py b/scripts/skillMods/droid_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/droid_assembly.py +++ b/scripts/skillMods/droid_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/droid_customization.py b/scripts/skillMods/droid_customization.py index ee7769e2..6cd11173 100644 --- a/scripts/skillMods/droid_customization.py +++ b/scripts/skillMods/droid_customization.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, divisor): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, divisor): return \ No newline at end of file diff --git a/scripts/skillMods/droid_experimentation.py b/scripts/skillMods/droid_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/droid_experimentation.py +++ b/scripts/skillMods/droid_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/droid_find_chance.py b/scripts/skillMods/droid_find_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/droid_find_chance.py +++ b/scripts/skillMods/droid_find_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/droid_find_speed.py b/scripts/skillMods/droid_find_speed.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/droid_find_speed.py +++ b/scripts/skillMods/droid_find_speed.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/droid_track_chance.py b/scripts/skillMods/droid_track_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/droid_track_chance.py +++ b/scripts/skillMods/droid_track_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/droid_track_speed.py b/scripts/skillMods/droid_track_speed.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/droid_track_speed.py +++ b/scripts/skillMods/droid_track_speed.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/droid_tracks.py b/scripts/skillMods/droid_tracks.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/droid_tracks.py +++ b/scripts/skillMods/droid_tracks.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/electricity.py b/scripts/skillMods/electricity.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/electricity.py +++ b/scripts/skillMods/electricity.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/energy.py b/scripts/skillMods/energy.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/energy.py +++ b/scripts/skillMods/energy.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/engine_assembly.py b/scripts/skillMods/engine_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/engine_assembly.py +++ b/scripts/skillMods/engine_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/engine_experimentation.py b/scripts/skillMods/engine_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/engine_experimentation.py +++ b/scripts/skillMods/engine_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/engineering_reverse.py b/scripts/skillMods/engineering_reverse.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/engineering_reverse.py +++ b/scripts/skillMods/engineering_reverse.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_all.py b/scripts/skillMods/expertise_action_all.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_all.py +++ b/scripts/skillMods/expertise_action_all.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_carbine.py b/scripts/skillMods/expertise_action_carbine.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_carbine.py +++ b/scripts/skillMods/expertise_action_carbine.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_damage_line_of_sure.py b/scripts/skillMods/expertise_action_damage_line_of_sure.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_damage_line_of_sure.py +++ b/scripts/skillMods/expertise_action_damage_line_of_sure.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_co_dm.py b/scripts/skillMods/expertise_action_line_co_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_co_dm.py +++ b/scripts/skillMods/expertise_action_line_co_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_co_grenade.py b/scripts/skillMods/expertise_action_line_co_grenade.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_co_grenade.py +++ b/scripts/skillMods/expertise_action_line_co_grenade.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_dm.py b/scripts/skillMods/expertise_action_line_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_dm.py +++ b/scripts/skillMods/expertise_action_line_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_dm_cc.py b/scripts/skillMods/expertise_action_line_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_dm_cc.py +++ b/scripts/skillMods/expertise_action_line_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_dm_crit.py b/scripts/skillMods/expertise_action_line_dm_crit.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_dm_crit.py +++ b/scripts/skillMods/expertise_action_line_dm_crit.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_fs_ae_dm_cc.py b/scripts/skillMods/expertise_action_line_fs_ae_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_fs_ae_dm_cc.py +++ b/scripts/skillMods/expertise_action_line_fs_ae_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_fs_cc_crit.py b/scripts/skillMods/expertise_action_line_fs_cc_crit.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_fs_cc_crit.py +++ b/scripts/skillMods/expertise_action_line_fs_cc_crit.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_fs_dm.py b/scripts/skillMods/expertise_action_line_fs_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_fs_dm.py +++ b/scripts/skillMods/expertise_action_line_fs_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_fs_sweep.py b/scripts/skillMods/expertise_action_line_fs_sweep.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_fs_sweep.py +++ b/scripts/skillMods/expertise_action_line_fs_sweep.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_me_burst.py b/scripts/skillMods/expertise_action_line_me_burst.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_me_burst.py +++ b/scripts/skillMods/expertise_action_line_me_burst.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_me_dm.py b/scripts/skillMods/expertise_action_line_me_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_me_dm.py +++ b/scripts/skillMods/expertise_action_line_me_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_me_heal.py b/scripts/skillMods/expertise_action_line_me_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_me_heal.py +++ b/scripts/skillMods/expertise_action_line_me_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_me_smash.py b/scripts/skillMods/expertise_action_line_me_smash.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_me_smash.py +++ b/scripts/skillMods/expertise_action_line_me_smash.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_of_aoe.py b/scripts/skillMods/expertise_action_line_of_aoe.py index f4c71024..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_of_aoe.py +++ b/scripts/skillMods/expertise_action_line_of_aoe.py @@ -1,11 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return - \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_of_group_buff.py b/scripts/skillMods/expertise_action_line_of_group_buff.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_of_group_buff.py +++ b/scripts/skillMods/expertise_action_line_of_group_buff.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_of_paint.py b/scripts/skillMods/expertise_action_line_of_paint.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_of_paint.py +++ b/scripts/skillMods/expertise_action_line_of_paint.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_of_sure.py b/scripts/skillMods/expertise_action_line_of_sure.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_of_sure.py +++ b/scripts/skillMods/expertise_action_line_of_sure.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_sm_dm.py b/scripts/skillMods/expertise_action_line_sm_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_sm_dm.py +++ b/scripts/skillMods/expertise_action_line_sm_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_sp_burst_shadows.py b/scripts/skillMods/expertise_action_line_sp_burst_shadows.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_sp_burst_shadows.py +++ b/scripts/skillMods/expertise_action_line_sp_burst_shadows.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_sp_dm.py b/scripts/skillMods/expertise_action_line_sp_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_sp_dm.py +++ b/scripts/skillMods/expertise_action_line_sp_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_sp_dot.py b/scripts/skillMods/expertise_action_line_sp_dot.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_sp_dot.py +++ b/scripts/skillMods/expertise_action_line_sp_dot.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_sp_hd_melee.py b/scripts/skillMods/expertise_action_line_sp_hd_melee.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_sp_hd_melee.py +++ b/scripts/skillMods/expertise_action_line_sp_hd_melee.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_sp_smoke.py b/scripts/skillMods/expertise_action_line_sp_smoke.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_sp_smoke.py +++ b/scripts/skillMods/expertise_action_line_sp_smoke.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_sp_stealth_melee.py b/scripts/skillMods/expertise_action_line_sp_stealth_melee.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_sp_stealth_melee.py +++ b/scripts/skillMods/expertise_action_line_sp_stealth_melee.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_sp_stealth_ranged.py b/scripts/skillMods/expertise_action_line_sp_stealth_ranged.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_sp_stealth_ranged.py +++ b/scripts/skillMods/expertise_action_line_sp_stealth_ranged.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_sp_without_trace.py b/scripts/skillMods/expertise_action_line_sp_without_trace.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_sp_without_trace.py +++ b/scripts/skillMods/expertise_action_line_sp_without_trace.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_line_trap.py b/scripts/skillMods/expertise_action_line_trap.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_line_trap.py +++ b/scripts/skillMods/expertise_action_line_trap.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_rifle.py b/scripts/skillMods/expertise_action_rifle.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_rifle.py +++ b/scripts/skillMods/expertise_action_rifle.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_0.py b/scripts/skillMods/expertise_action_weapon_0.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_weapon_0.py +++ b/scripts/skillMods/expertise_action_weapon_0.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_1.py b/scripts/skillMods/expertise_action_weapon_1.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_weapon_1.py +++ b/scripts/skillMods/expertise_action_weapon_1.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_10.py b/scripts/skillMods/expertise_action_weapon_10.py index ee7769e2..6cd11173 100644 --- a/scripts/skillMods/expertise_action_weapon_10.py +++ b/scripts/skillMods/expertise_action_weapon_10.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, divisor): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, divisor): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_11.py b/scripts/skillMods/expertise_action_weapon_11.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_weapon_11.py +++ b/scripts/skillMods/expertise_action_weapon_11.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_2.py b/scripts/skillMods/expertise_action_weapon_2.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_weapon_2.py +++ b/scripts/skillMods/expertise_action_weapon_2.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_3.py b/scripts/skillMods/expertise_action_weapon_3.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_weapon_3.py +++ b/scripts/skillMods/expertise_action_weapon_3.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_4.py b/scripts/skillMods/expertise_action_weapon_4.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_weapon_4.py +++ b/scripts/skillMods/expertise_action_weapon_4.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_5.py b/scripts/skillMods/expertise_action_weapon_5.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_weapon_5.py +++ b/scripts/skillMods/expertise_action_weapon_5.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_6.py b/scripts/skillMods/expertise_action_weapon_6.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_weapon_6.py +++ b/scripts/skillMods/expertise_action_weapon_6.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_7.py b/scripts/skillMods/expertise_action_weapon_7.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_weapon_7.py +++ b/scripts/skillMods/expertise_action_weapon_7.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_9.py b/scripts/skillMods/expertise_action_weapon_9.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_weapon_9.py +++ b/scripts/skillMods/expertise_action_weapon_9.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_action_weapon_melee.py b/scripts/skillMods/expertise_action_weapon_melee.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_action_weapon_melee.py +++ b/scripts/skillMods/expertise_action_weapon_melee.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_aggro_channel.py b/scripts/skillMods/expertise_aggro_channel.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_aggro_channel.py +++ b/scripts/skillMods/expertise_aggro_channel.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_agro_healing.py b/scripts/skillMods/expertise_agro_healing.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_agro_healing.py +++ b/scripts/skillMods/expertise_agro_healing.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_area_size_line_co_grenade.py b/scripts/skillMods/expertise_area_size_line_co_grenade.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_area_size_line_co_grenade.py +++ b/scripts/skillMods/expertise_area_size_line_co_grenade.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_area_size_line_co_remote_detonator.py b/scripts/skillMods/expertise_area_size_line_co_remote_detonator.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_area_size_line_co_remote_detonator.py +++ b/scripts/skillMods/expertise_area_size_line_co_remote_detonator.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_area_size_line_diretrap.py b/scripts/skillMods/expertise_area_size_line_diretrap.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_area_size_line_diretrap.py +++ b/scripts/skillMods/expertise_area_size_line_diretrap.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_area_size_line_trap.py b/scripts/skillMods/expertise_area_size_line_trap.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_area_size_line_trap.py +++ b/scripts/skillMods/expertise_area_size_line_trap.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_area_size_single_fs_mind_trick_2.py b/scripts/skillMods/expertise_area_size_single_fs_mind_trick_2.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_area_size_single_fs_mind_trick_2.py +++ b/scripts/skillMods/expertise_area_size_single_fs_mind_trick_2.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_armorset_glancing_blow_melee_2.py b/scripts/skillMods/expertise_armorset_glancing_blow_melee_2.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_armorset_glancing_blow_melee_2.py +++ b/scripts/skillMods/expertise_armorset_glancing_blow_melee_2.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_armorset_glancing_blow_ranged_2.py b/scripts/skillMods/expertise_armorset_glancing_blow_ranged_2.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_armorset_glancing_blow_ranged_2.py +++ b/scripts/skillMods/expertise_armorset_glancing_blow_ranged_2.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_armorset_melee_block_2.py b/scripts/skillMods/expertise_armorset_melee_block_2.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_armorset_melee_block_2.py +++ b/scripts/skillMods/expertise_armorset_melee_block_2.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_armorset_protection_1_energy.py b/scripts/skillMods/expertise_armorset_protection_1_energy.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_armorset_protection_1_energy.py +++ b/scripts/skillMods/expertise_armorset_protection_1_energy.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_armorset_protection_1_kinetic.py b/scripts/skillMods/expertise_armorset_protection_1_kinetic.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_armorset_protection_1_kinetic.py +++ b/scripts/skillMods/expertise_armorset_protection_1_kinetic.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_armorset_protection_2_energy.py b/scripts/skillMods/expertise_armorset_protection_2_energy.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_armorset_protection_2_energy.py +++ b/scripts/skillMods/expertise_armorset_protection_2_energy.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_armorset_protection_2_kinetic.py b/scripts/skillMods/expertise_armorset_protection_2_kinetic.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_armorset_protection_2_kinetic.py +++ b/scripts/skillMods/expertise_armorset_protection_2_kinetic.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_armorset_ranged_dodge_2.py b/scripts/skillMods/expertise_armorset_ranged_dodge_2.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_armorset_ranged_dodge_2.py +++ b/scripts/skillMods/expertise_armorset_ranged_dodge_2.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_assembly_increase_architect.py b/scripts/skillMods/expertise_assembly_increase_architect.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_assembly_increase_architect.py +++ b/scripts/skillMods/expertise_assembly_increase_architect.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_assembly_increase_armorsmith.py b/scripts/skillMods/expertise_assembly_increase_armorsmith.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_assembly_increase_armorsmith.py +++ b/scripts/skillMods/expertise_assembly_increase_armorsmith.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_assembly_increase_artisan.py b/scripts/skillMods/expertise_assembly_increase_artisan.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_assembly_increase_artisan.py +++ b/scripts/skillMods/expertise_assembly_increase_artisan.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_assembly_increase_chef.py b/scripts/skillMods/expertise_assembly_increase_chef.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_assembly_increase_chef.py +++ b/scripts/skillMods/expertise_assembly_increase_chef.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_assembly_increase_droid.py b/scripts/skillMods/expertise_assembly_increase_droid.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_assembly_increase_droid.py +++ b/scripts/skillMods/expertise_assembly_increase_droid.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_assembly_increase_shipwright.py b/scripts/skillMods/expertise_assembly_increase_shipwright.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_assembly_increase_shipwright.py +++ b/scripts/skillMods/expertise_assembly_increase_shipwright.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_assembly_increase_tailor.py b/scripts/skillMods/expertise_assembly_increase_tailor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_assembly_increase_tailor.py +++ b/scripts/skillMods/expertise_assembly_increase_tailor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_assembly_increase_weaponsmith.py b/scripts/skillMods/expertise_assembly_increase_weaponsmith.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_assembly_increase_weaponsmith.py +++ b/scripts/skillMods/expertise_assembly_increase_weaponsmith.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_assult_action_buff.py b/scripts/skillMods/expertise_assult_action_buff.py index ee7769e2..6fd75693 100644 --- a/scripts/skillMods/expertise_assult_action_buff.py +++ b/scripts/skillMods/expertise_assult_action_buff.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return - \ No newline at end of file + \ No newline at end of file diff --git a/scripts/skillMods/expertise_attacker_action_gain.py b/scripts/skillMods/expertise_attacker_action_gain.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_attacker_action_gain.py +++ b/scripts/skillMods/expertise_attacker_action_gain.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_aura_maintain.py b/scripts/skillMods/expertise_aura_maintain.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_aura_maintain.py +++ b/scripts/skillMods/expertise_aura_maintain.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_avoidance_overpower.py b/scripts/skillMods/expertise_avoidance_overpower.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_avoidance_overpower.py +++ b/scripts/skillMods/expertise_avoidance_overpower.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bh_detect_camo_chance.py b/scripts/skillMods/expertise_bh_detect_camo_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bh_detect_camo_chance.py +++ b/scripts/skillMods/expertise_bh_detect_camo_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_add_pet_bar.py b/scripts/skillMods/expertise_bm_add_pet_bar.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_add_pet_bar.py +++ b/scripts/skillMods/expertise_bm_add_pet_bar.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_dna_harvesting_1.py b/scripts/skillMods/expertise_bm_dna_harvesting_1.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_dna_harvesting_1.py +++ b/scripts/skillMods/expertise_bm_dna_harvesting_1.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_enhanced_skill_acquisition.py b/scripts/skillMods/expertise_bm_enhanced_skill_acquisition.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_enhanced_skill_acquisition.py +++ b/scripts/skillMods/expertise_bm_enhanced_skill_acquisition.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_enzyme_enhancement.py b/scripts/skillMods/expertise_bm_enzyme_enhancement.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_enzyme_enhancement.py +++ b/scripts/skillMods/expertise_bm_enzyme_enhancement.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_genetic_engineering.py b/scripts/skillMods/expertise_bm_genetic_engineering.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_genetic_engineering.py +++ b/scripts/skillMods/expertise_bm_genetic_engineering.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_improved_pet_heal.py b/scripts/skillMods/expertise_bm_improved_pet_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_improved_pet_heal.py +++ b/scripts/skillMods/expertise_bm_improved_pet_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_incubation_quality.py b/scripts/skillMods/expertise_bm_incubation_quality.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_incubation_quality.py +++ b/scripts/skillMods/expertise_bm_incubation_quality.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_incubation_time.py b/scripts/skillMods/expertise_bm_incubation_time.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_incubation_time.py +++ b/scripts/skillMods/expertise_bm_incubation_time.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_pet_armor.py b/scripts/skillMods/expertise_bm_pet_armor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_pet_armor.py +++ b/scripts/skillMods/expertise_bm_pet_armor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_pet_attack_speed.py b/scripts/skillMods/expertise_bm_pet_attack_speed.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_pet_attack_speed.py +++ b/scripts/skillMods/expertise_bm_pet_attack_speed.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_pet_damage.py b/scripts/skillMods/expertise_bm_pet_damage.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_pet_damage.py +++ b/scripts/skillMods/expertise_bm_pet_damage.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_pet_evade_chance.py b/scripts/skillMods/expertise_bm_pet_evade_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_pet_evade_chance.py +++ b/scripts/skillMods/expertise_bm_pet_evade_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_pet_evade_value.py b/scripts/skillMods/expertise_bm_pet_evade_value.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_pet_evade_value.py +++ b/scripts/skillMods/expertise_bm_pet_evade_value.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_pet_happiness.py b/scripts/skillMods/expertise_bm_pet_happiness.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_pet_happiness.py +++ b/scripts/skillMods/expertise_bm_pet_happiness.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_pet_health.py b/scripts/skillMods/expertise_bm_pet_health.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_pet_health.py +++ b/scripts/skillMods/expertise_bm_pet_health.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_pet_movement_rate.py b/scripts/skillMods/expertise_bm_pet_movement_rate.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_pet_movement_rate.py +++ b/scripts/skillMods/expertise_bm_pet_movement_rate.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_pet_recovery.py b/scripts/skillMods/expertise_bm_pet_recovery.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_pet_recovery.py +++ b/scripts/skillMods/expertise_bm_pet_recovery.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_pet_regen.py b/scripts/skillMods/expertise_bm_pet_regen.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_pet_regen.py +++ b/scripts/skillMods/expertise_bm_pet_regen.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_pet_revive_time.py b/scripts/skillMods/expertise_bm_pet_revive_time.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_pet_revive_time.py +++ b/scripts/skillMods/expertise_bm_pet_revive_time.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_self_debuff_reduction.py b/scripts/skillMods/expertise_bm_self_debuff_reduction.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_self_debuff_reduction.py +++ b/scripts/skillMods/expertise_bm_self_debuff_reduction.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_bm_train_mount.py b/scripts/skillMods/expertise_bm_train_mount.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_bm_train_mount.py +++ b/scripts/skillMods/expertise_bm_train_mount.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_best_deal_ever.py b/scripts/skillMods/expertise_buff_best_deal_ever.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_best_deal_ever.py +++ b/scripts/skillMods/expertise_buff_best_deal_ever.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_chance_fs_force_throw_root.py b/scripts/skillMods/expertise_buff_chance_fs_force_throw_root.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_chance_fs_force_throw_root.py +++ b/scripts/skillMods/expertise_buff_chance_fs_force_throw_root.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_chance_line_fs_ae_dm_cc.py b/scripts/skillMods/expertise_buff_chance_line_fs_ae_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_chance_line_fs_ae_dm_cc.py +++ b/scripts/skillMods/expertise_buff_chance_line_fs_ae_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_chance_line_fs_force_throw.py b/scripts/skillMods/expertise_buff_chance_line_fs_force_throw.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_chance_line_fs_force_throw.py +++ b/scripts/skillMods/expertise_buff_chance_line_fs_force_throw.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_chance_line_fs_heal.py b/scripts/skillMods/expertise_buff_chance_line_fs_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_chance_line_fs_heal.py +++ b/scripts/skillMods/expertise_buff_chance_line_fs_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_group_snare.py b/scripts/skillMods/expertise_buff_duration_group_snare.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_group_snare.py +++ b/scripts/skillMods/expertise_buff_duration_group_snare.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_bh_return_fire.py b/scripts/skillMods/expertise_buff_duration_line_bh_return_fire.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_bh_return_fire.py +++ b/scripts/skillMods/expertise_buff_duration_line_bh_return_fire.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_en_debuff_thrill.py b/scripts/skillMods/expertise_buff_duration_line_en_debuff_thrill.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_en_debuff_thrill.py +++ b/scripts/skillMods/expertise_buff_duration_line_en_debuff_thrill.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_en_unhealthy_fixation_debuff.py b/scripts/skillMods/expertise_buff_duration_line_en_unhealthy_fixation_debuff.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_en_unhealthy_fixation_debuff.py +++ b/scripts/skillMods/expertise_buff_duration_line_en_unhealthy_fixation_debuff.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_ae_dm_cc.py b/scripts/skillMods/expertise_buff_duration_line_fs_ae_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_fs_ae_dm_cc.py +++ b/scripts/skillMods/expertise_buff_duration_line_fs_ae_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_dm_cc.py b/scripts/skillMods/expertise_buff_duration_line_fs_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_fs_dm_cc.py +++ b/scripts/skillMods/expertise_buff_duration_line_fs_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_force_run.py b/scripts/skillMods/expertise_buff_duration_line_fs_force_run.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_fs_force_run.py +++ b/scripts/skillMods/expertise_buff_duration_line_fs_force_run.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_force_throw.py b/scripts/skillMods/expertise_buff_duration_line_fs_force_throw.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_fs_force_throw.py +++ b/scripts/skillMods/expertise_buff_duration_line_fs_force_throw.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_heal.py b/scripts/skillMods/expertise_buff_duration_line_fs_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_fs_heal.py +++ b/scripts/skillMods/expertise_buff_duration_line_fs_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_mind_trick.py b/scripts/skillMods/expertise_buff_duration_line_fs_mind_trick.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_fs_mind_trick.py +++ b/scripts/skillMods/expertise_buff_duration_line_fs_mind_trick.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_me_debuff.py b/scripts/skillMods/expertise_buff_duration_line_me_debuff.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_me_debuff.py +++ b/scripts/skillMods/expertise_buff_duration_line_me_debuff.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_me_enhance.py b/scripts/skillMods/expertise_buff_duration_line_me_enhance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_me_enhance.py +++ b/scripts/skillMods/expertise_buff_duration_line_me_enhance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_of_group_buff.py b/scripts/skillMods/expertise_buff_duration_line_of_group_buff.py index f4c71024..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_of_group_buff.py +++ b/scripts/skillMods/expertise_buff_duration_line_of_group_buff.py @@ -1,11 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return - \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_sm_false_hope.py b/scripts/skillMods/expertise_buff_duration_line_sm_false_hope.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_sm_false_hope.py +++ b/scripts/skillMods/expertise_buff_duration_line_sm_false_hope.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_sm_impossible_odds.py b/scripts/skillMods/expertise_buff_duration_line_sm_impossible_odds.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_sm_impossible_odds.py +++ b/scripts/skillMods/expertise_buff_duration_line_sm_impossible_odds.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_sm_skullduggery.py b/scripts/skillMods/expertise_buff_duration_line_sm_skullduggery.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_sm_skullduggery.py +++ b/scripts/skillMods/expertise_buff_duration_line_sm_skullduggery.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_sp_burst_shadows.py b/scripts/skillMods/expertise_buff_duration_line_sp_burst_shadows.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_sp_burst_shadows.py +++ b/scripts/skillMods/expertise_buff_duration_line_sp_burst_shadows.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_sp_decoy.py b/scripts/skillMods/expertise_buff_duration_line_sp_decoy.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_sp_decoy.py +++ b/scripts/skillMods/expertise_buff_duration_line_sp_decoy.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_duration_line_sp_preparation.py b/scripts/skillMods/expertise_buff_duration_line_sp_preparation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_duration_line_sp_preparation.py +++ b/scripts/skillMods/expertise_buff_duration_line_sp_preparation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_buff_en_void_dance_buff.py b/scripts/skillMods/expertise_buff_en_void_dance_buff.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_buff_en_void_dance_buff.py +++ b/scripts/skillMods/expertise_buff_en_void_dance_buff.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_burst_fire_devastation_bonus.py b/scripts/skillMods/expertise_burst_fire_devastation_bonus.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_burst_fire_devastation_bonus.py +++ b/scripts/skillMods/expertise_burst_fire_devastation_bonus.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_co_burst_fire_proc.py b/scripts/skillMods/expertise_co_burst_fire_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_co_burst_fire_proc.py +++ b/scripts/skillMods/expertise_co_burst_fire_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_co_flash_bang.py b/scripts/skillMods/expertise_co_flash_bang.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_co_flash_bang.py +++ b/scripts/skillMods/expertise_co_flash_bang.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_co_muscle_spasm.py b/scripts/skillMods/expertise_co_muscle_spasm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_co_muscle_spasm.py +++ b/scripts/skillMods/expertise_co_muscle_spasm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_complexity_decrease_architect.py b/scripts/skillMods/expertise_complexity_decrease_architect.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_complexity_decrease_architect.py +++ b/scripts/skillMods/expertise_complexity_decrease_architect.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_complexity_decrease_armorsmith.py b/scripts/skillMods/expertise_complexity_decrease_armorsmith.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_complexity_decrease_armorsmith.py +++ b/scripts/skillMods/expertise_complexity_decrease_armorsmith.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_complexity_decrease_chef.py b/scripts/skillMods/expertise_complexity_decrease_chef.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_complexity_decrease_chef.py +++ b/scripts/skillMods/expertise_complexity_decrease_chef.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_complexity_decrease_droid.py b/scripts/skillMods/expertise_complexity_decrease_droid.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_complexity_decrease_droid.py +++ b/scripts/skillMods/expertise_complexity_decrease_droid.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_complexity_decrease_shipwright.py b/scripts/skillMods/expertise_complexity_decrease_shipwright.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_complexity_decrease_shipwright.py +++ b/scripts/skillMods/expertise_complexity_decrease_shipwright.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_complexity_decrease_tailor.py b/scripts/skillMods/expertise_complexity_decrease_tailor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_complexity_decrease_tailor.py +++ b/scripts/skillMods/expertise_complexity_decrease_tailor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_complexity_decrease_weaponsmith.py b/scripts/skillMods/expertise_complexity_decrease_weaponsmith.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_complexity_decrease_weaponsmith.py +++ b/scripts/skillMods/expertise_complexity_decrease_weaponsmith.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_bh_flawless_strike.py b/scripts/skillMods/expertise_cooldown_line_bh_flawless_strike.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_bh_flawless_strike.py +++ b/scripts/skillMods/expertise_cooldown_line_bh_flawless_strike.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_bh_return_fire.py b/scripts/skillMods/expertise_cooldown_line_bh_return_fire.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_bh_return_fire.py +++ b/scripts/skillMods/expertise_cooldown_line_bh_return_fire.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_co_riddle_armor.py b/scripts/skillMods/expertise_cooldown_line_co_riddle_armor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_co_riddle_armor.py +++ b/scripts/skillMods/expertise_cooldown_line_co_riddle_armor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_dm.py b/scripts/skillMods/expertise_cooldown_line_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_dm.py +++ b/scripts/skillMods/expertise_cooldown_line_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_dm_cc.py b/scripts/skillMods/expertise_cooldown_line_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_dm_cc.py +++ b/scripts/skillMods/expertise_cooldown_line_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_dm_crit.py b/scripts/skillMods/expertise_cooldown_line_dm_crit.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_dm_crit.py +++ b/scripts/skillMods/expertise_cooldown_line_dm_crit.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_fs_ae_dm_cc.py b/scripts/skillMods/expertise_cooldown_line_fs_ae_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_fs_ae_dm_cc.py +++ b/scripts/skillMods/expertise_cooldown_line_fs_ae_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_fs_cc_crit.py b/scripts/skillMods/expertise_cooldown_line_fs_cc_crit.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_fs_cc_crit.py +++ b/scripts/skillMods/expertise_cooldown_line_fs_cc_crit.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_fs_dm.py b/scripts/skillMods/expertise_cooldown_line_fs_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_fs_dm.py +++ b/scripts/skillMods/expertise_cooldown_line_fs_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_fs_sweep.py b/scripts/skillMods/expertise_cooldown_line_fs_sweep.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_fs_sweep.py +++ b/scripts/skillMods/expertise_cooldown_line_fs_sweep.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_me_aoe_revive.py b/scripts/skillMods/expertise_cooldown_line_me_aoe_revive.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_me_aoe_revive.py +++ b/scripts/skillMods/expertise_cooldown_line_me_aoe_revive.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_me_dot.py b/scripts/skillMods/expertise_cooldown_line_me_dot.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_me_dot.py +++ b/scripts/skillMods/expertise_cooldown_line_me_dot.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_me_evasion.py b/scripts/skillMods/expertise_cooldown_line_me_evasion.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_me_evasion.py +++ b/scripts/skillMods/expertise_cooldown_line_me_evasion.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_me_revive.py b/scripts/skillMods/expertise_cooldown_line_me_revive.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_me_revive.py +++ b/scripts/skillMods/expertise_cooldown_line_me_revive.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_me_stasis_self.py b/scripts/skillMods/expertise_cooldown_line_me_stasis_self.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_me_stasis_self.py +++ b/scripts/skillMods/expertise_cooldown_line_me_stasis_self.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_of_firepower.py b/scripts/skillMods/expertise_cooldown_line_of_firepower.py index ab7fca99..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_of_firepower.py +++ b/scripts/skillMods/expertise_cooldown_line_of_firepower.py @@ -1,19 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - return - import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_of_heal.py b/scripts/skillMods/expertise_cooldown_line_of_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_of_heal.py +++ b/scripts/skillMods/expertise_cooldown_line_of_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_of_paint.py b/scripts/skillMods/expertise_cooldown_line_of_paint.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_of_paint.py +++ b/scripts/skillMods/expertise_cooldown_line_of_paint.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_of_purge.py b/scripts/skillMods/expertise_cooldown_line_of_purge.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_of_purge.py +++ b/scripts/skillMods/expertise_cooldown_line_of_purge.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_of_sup.py b/scripts/skillMods/expertise_cooldown_line_of_sup.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_of_sup.py +++ b/scripts/skillMods/expertise_cooldown_line_of_sup.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_of_sure.py b/scripts/skillMods/expertise_cooldown_line_of_sure.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_of_sure.py +++ b/scripts/skillMods/expertise_cooldown_line_of_sure.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_sh.py b/scripts/skillMods/expertise_cooldown_line_sh.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_sh.py +++ b/scripts/skillMods/expertise_cooldown_line_sh.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_sm_dm.py b/scripts/skillMods/expertise_cooldown_line_sm_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_sm_dm.py +++ b/scripts/skillMods/expertise_cooldown_line_sm_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_sm_dm_cc.py b/scripts/skillMods/expertise_cooldown_line_sm_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_sm_dm_cc.py +++ b/scripts/skillMods/expertise_cooldown_line_sm_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_sm_false_hope.py b/scripts/skillMods/expertise_cooldown_line_sm_false_hope.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_sm_false_hope.py +++ b/scripts/skillMods/expertise_cooldown_line_sm_false_hope.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_sp_burst_of_shadows.py b/scripts/skillMods/expertise_cooldown_line_sp_burst_of_shadows.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_sp_burst_of_shadows.py +++ b/scripts/skillMods/expertise_cooldown_line_sp_burst_of_shadows.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_sp_dm.py b/scripts/skillMods/expertise_cooldown_line_sp_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_sp_dm.py +++ b/scripts/skillMods/expertise_cooldown_line_sp_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_sp_preparation.py b/scripts/skillMods/expertise_cooldown_line_sp_preparation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_sp_preparation.py +++ b/scripts/skillMods/expertise_cooldown_line_sp_preparation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_sp_reveal_shadows.py b/scripts/skillMods/expertise_cooldown_line_sp_reveal_shadows.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_sp_reveal_shadows.py +++ b/scripts/skillMods/expertise_cooldown_line_sp_reveal_shadows.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_sp_smoke.py b/scripts/skillMods/expertise_cooldown_line_sp_smoke.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_sp_smoke.py +++ b/scripts/skillMods/expertise_cooldown_line_sp_smoke.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_cooldown_line_sp_without_trace.py b/scripts/skillMods/expertise_cooldown_line_sp_without_trace.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_cooldown_line_sp_without_trace.py +++ b/scripts/skillMods/expertise_cooldown_line_sp_without_trace.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_1h.py b/scripts/skillMods/expertise_critical_1h.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_1h.py +++ b/scripts/skillMods/expertise_critical_1h.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_2h.py b/scripts/skillMods/expertise_critical_2h.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_2h.py +++ b/scripts/skillMods/expertise_critical_2h.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_carbine.py b/scripts/skillMods/expertise_critical_carbine.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_carbine.py +++ b/scripts/skillMods/expertise_critical_carbine.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_heavy.py b/scripts/skillMods/expertise_critical_heavy.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_heavy.py +++ b/scripts/skillMods/expertise_critical_heavy.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_co_dm.py b/scripts/skillMods/expertise_critical_line_co_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_co_dm.py +++ b/scripts/skillMods/expertise_critical_line_co_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_dm.py b/scripts/skillMods/expertise_critical_line_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_dm.py +++ b/scripts/skillMods/expertise_critical_line_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_dm_crit.py b/scripts/skillMods/expertise_critical_line_dm_crit.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_dm_crit.py +++ b/scripts/skillMods/expertise_critical_line_dm_crit.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_en_spiral_kick.py b/scripts/skillMods/expertise_critical_line_en_spiral_kick.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_en_spiral_kick.py +++ b/scripts/skillMods/expertise_critical_line_en_spiral_kick.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_fldmot.py b/scripts/skillMods/expertise_critical_line_fldmot.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_fldmot.py +++ b/scripts/skillMods/expertise_critical_line_fldmot.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_fs_dm.py b/scripts/skillMods/expertise_critical_line_fs_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_fs_dm.py +++ b/scripts/skillMods/expertise_critical_line_fs_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_me_dm.py b/scripts/skillMods/expertise_critical_line_me_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_me_dm.py +++ b/scripts/skillMods/expertise_critical_line_me_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_of_aoe.py b/scripts/skillMods/expertise_critical_line_of_aoe.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_of_aoe.py +++ b/scripts/skillMods/expertise_critical_line_of_aoe.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_of_sure.py b/scripts/skillMods/expertise_critical_line_of_sure.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_of_sure.py +++ b/scripts/skillMods/expertise_critical_line_of_sure.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_sm_dm.py b/scripts/skillMods/expertise_critical_line_sm_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_sm_dm.py +++ b/scripts/skillMods/expertise_critical_line_sm_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_sp_dm.py b/scripts/skillMods/expertise_critical_line_sp_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_sp_dm.py +++ b/scripts/skillMods/expertise_critical_line_sp_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_sp_stealth_melee.py b/scripts/skillMods/expertise_critical_line_sp_stealth_melee.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_sp_stealth_melee.py +++ b/scripts/skillMods/expertise_critical_line_sp_stealth_melee.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_line_sp_stealth_ranged.py b/scripts/skillMods/expertise_critical_line_sp_stealth_ranged.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_line_sp_stealth_ranged.py +++ b/scripts/skillMods/expertise_critical_line_sp_stealth_ranged.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_melee.py b/scripts/skillMods/expertise_critical_melee.py index fd6ebde6..4757f6ed 100644 --- a/scripts/skillMods/expertise_critical_melee.py +++ b/scripts/skillMods/expertise_critical_melee.py @@ -1,16 +1,16 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod("expertise_critical_1h", base) - actor.addSkillMod("expertise_critical_2h", base) - actor.addSkillMod("expertise_critical_unarmed", base) - actor.addSkillMod("expertise_critical_polearm", base) +def add(core, actor, skillMod, value): + core.skillModService.addSkillMod(actor, "expertise_critical_1h", value) + core.skillModService.addSkillMod(actor, "expertise_critical_2h", value) + core.skillModService.addSkillMod(actor, "expertise_critical_unarmed", value) + core.skillModService.addSkillMod(actor, "expertise_critical_polearm", value) return - -def deduct(core, actor, name, base): - actor.deductSkillMod("expertise_critical_1h", base) - actor.deductSkillMod("expertise_critical_2h", base) - actor.deductSkillMod("expertise_critical_unarmed", base) - actor.deductSkillMod("expertise_critical_polearm", base) + +def deduct(core, actor, skillMod, value): + core.skillModService.deductSkillMod(actor, "expertise_critical_1h", value) + core.skillModService.deductSkillMod(actor, "expertise_critical_2h", value) + core.skillModService.deductSkillMod(actor, "expertise_critical_unarmed", value) + core.skillModService.deductSkillMod(actor, "expertise_critical_polearm", value) return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_niche_all.py b/scripts/skillMods/expertise_critical_niche_all.py index ef07415a..b6492df5 100644 --- a/scripts/skillMods/expertise_critical_niche_all.py +++ b/scripts/skillMods/expertise_critical_niche_all.py @@ -1,12 +1,10 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): core.skillModService.addSkillMod(actor, 'display_only_critical', 100 * base) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): core.skillModService.deductSkillMod(actor, 'display_only_critical', 100 * base) return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_niche_creature.py b/scripts/skillMods/expertise_critical_niche_creature.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_niche_creature.py +++ b/scripts/skillMods/expertise_critical_niche_creature.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_niche_droid.py b/scripts/skillMods/expertise_critical_niche_droid.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_niche_droid.py +++ b/scripts/skillMods/expertise_critical_niche_droid.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_niche_npc.py b/scripts/skillMods/expertise_critical_niche_npc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_niche_npc.py +++ b/scripts/skillMods/expertise_critical_niche_npc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_niche_pvp.py b/scripts/skillMods/expertise_critical_niche_pvp.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_niche_pvp.py +++ b/scripts/skillMods/expertise_critical_niche_pvp.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_pistol.py b/scripts/skillMods/expertise_critical_pistol.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_pistol.py +++ b/scripts/skillMods/expertise_critical_pistol.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_polearm.py b/scripts/skillMods/expertise_critical_polearm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_polearm.py +++ b/scripts/skillMods/expertise_critical_polearm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_rifle.py b/scripts/skillMods/expertise_critical_rifle.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_rifle.py +++ b/scripts/skillMods/expertise_critical_rifle.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_critical_unarmed.py b/scripts/skillMods/expertise_critical_unarmed.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_critical_unarmed.py +++ b/scripts/skillMods/expertise_critical_unarmed.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_add_to_action.py b/scripts/skillMods/expertise_damage_add_to_action.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_add_to_action.py +++ b/scripts/skillMods/expertise_damage_add_to_action.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_all.py b/scripts/skillMods/expertise_damage_all.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_all.py +++ b/scripts/skillMods/expertise_damage_all.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_area_effect.py b/scripts/skillMods/expertise_damage_area_effect.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_area_effect.py +++ b/scripts/skillMods/expertise_damage_area_effect.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_attacker_action.py b/scripts/skillMods/expertise_damage_attacker_action.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_attacker_action.py +++ b/scripts/skillMods/expertise_damage_attacker_action.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_convert_to_action.py b/scripts/skillMods/expertise_damage_convert_to_action.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_convert_to_action.py +++ b/scripts/skillMods/expertise_damage_convert_to_action.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_decrease_chance.py b/scripts/skillMods/expertise_damage_decrease_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_decrease_chance.py +++ b/scripts/skillMods/expertise_damage_decrease_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_decrease_percentage.py b/scripts/skillMods/expertise_damage_decrease_percentage.py index f4c71024..c23ada08 100644 --- a/scripts/skillMods/expertise_damage_decrease_percentage.py +++ b/scripts/skillMods/expertise_damage_decrease_percentage.py @@ -1,11 +1,9 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_co_dm.py b/scripts/skillMods/expertise_damage_line_co_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_co_dm.py +++ b/scripts/skillMods/expertise_damage_line_co_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_co_grenade.py b/scripts/skillMods/expertise_damage_line_co_grenade.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_co_grenade.py +++ b/scripts/skillMods/expertise_damage_line_co_grenade.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_co_remote_detonator.py b/scripts/skillMods/expertise_damage_line_co_remote_detonator.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_co_remote_detonator.py +++ b/scripts/skillMods/expertise_damage_line_co_remote_detonator.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_dm.py b/scripts/skillMods/expertise_damage_line_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_dm.py +++ b/scripts/skillMods/expertise_damage_line_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_dm_cc.py b/scripts/skillMods/expertise_damage_line_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_dm_cc.py +++ b/scripts/skillMods/expertise_damage_line_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_dm_crit.py b/scripts/skillMods/expertise_damage_line_dm_crit.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_dm_crit.py +++ b/scripts/skillMods/expertise_damage_line_dm_crit.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_en_sweeping_pirouette.py b/scripts/skillMods/expertise_damage_line_en_sweeping_pirouette.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_en_sweeping_pirouette.py +++ b/scripts/skillMods/expertise_damage_line_en_sweeping_pirouette.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_fldmot.py b/scripts/skillMods/expertise_damage_line_fldmot.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_fldmot.py +++ b/scripts/skillMods/expertise_damage_line_fldmot.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_fs_ae_dm_cc.py b/scripts/skillMods/expertise_damage_line_fs_ae_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_fs_ae_dm_cc.py +++ b/scripts/skillMods/expertise_damage_line_fs_ae_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_fs_cc_crit.py b/scripts/skillMods/expertise_damage_line_fs_cc_crit.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_fs_cc_crit.py +++ b/scripts/skillMods/expertise_damage_line_fs_cc_crit.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_fs_dm.py b/scripts/skillMods/expertise_damage_line_fs_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_fs_dm.py +++ b/scripts/skillMods/expertise_damage_line_fs_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_fs_dm_cc.py b/scripts/skillMods/expertise_damage_line_fs_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_fs_dm_cc.py +++ b/scripts/skillMods/expertise_damage_line_fs_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_fs_force_throw.py b/scripts/skillMods/expertise_damage_line_fs_force_throw.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_fs_force_throw.py +++ b/scripts/skillMods/expertise_damage_line_fs_force_throw.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_fs_saber_reflect.py b/scripts/skillMods/expertise_damage_line_fs_saber_reflect.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_fs_saber_reflect.py +++ b/scripts/skillMods/expertise_damage_line_fs_saber_reflect.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_fs_sweep.py b/scripts/skillMods/expertise_damage_line_fs_sweep.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_fs_sweep.py +++ b/scripts/skillMods/expertise_damage_line_fs_sweep.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_me_dm.py b/scripts/skillMods/expertise_damage_line_me_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_me_dm.py +++ b/scripts/skillMods/expertise_damage_line_me_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_me_dot.py b/scripts/skillMods/expertise_damage_line_me_dot.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_me_dot.py +++ b/scripts/skillMods/expertise_damage_line_me_dot.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_of_aoe.py b/scripts/skillMods/expertise_damage_line_of_aoe.py index f4c71024..c23ada08 100644 --- a/scripts/skillMods/expertise_damage_line_of_aoe.py +++ b/scripts/skillMods/expertise_damage_line_of_aoe.py @@ -1,11 +1,9 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_of_paint.py b/scripts/skillMods/expertise_damage_line_of_paint.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_of_paint.py +++ b/scripts/skillMods/expertise_damage_line_of_paint.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_of_sure.py b/scripts/skillMods/expertise_damage_line_of_sure.py index f4c71024..c23ada08 100644 --- a/scripts/skillMods/expertise_damage_line_of_sure.py +++ b/scripts/skillMods/expertise_damage_line_of_sure.py @@ -1,11 +1,9 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_sm_dm.py b/scripts/skillMods/expertise_damage_line_sm_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_sm_dm.py +++ b/scripts/skillMods/expertise_damage_line_sm_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_sp_dm.py b/scripts/skillMods/expertise_damage_line_sp_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_sp_dm.py +++ b/scripts/skillMods/expertise_damage_line_sp_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_sp_hd_melee.py b/scripts/skillMods/expertise_damage_line_sp_hd_melee.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_sp_hd_melee.py +++ b/scripts/skillMods/expertise_damage_line_sp_hd_melee.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_sp_stealth_melee.py b/scripts/skillMods/expertise_damage_line_sp_stealth_melee.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_sp_stealth_melee.py +++ b/scripts/skillMods/expertise_damage_line_sp_stealth_melee.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_sp_stealth_ranged.py b/scripts/skillMods/expertise_damage_line_sp_stealth_ranged.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_sp_stealth_ranged.py +++ b/scripts/skillMods/expertise_damage_line_sp_stealth_ranged.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_vulnerability_of_buff_def.py b/scripts/skillMods/expertise_damage_line_vulnerability_of_buff_def.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_vulnerability_of_buff_def.py +++ b/scripts/skillMods/expertise_damage_line_vulnerability_of_buff_def.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_line_vulnerability_of_dm.py b/scripts/skillMods/expertise_damage_line_vulnerability_of_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_line_vulnerability_of_dm.py +++ b/scripts/skillMods/expertise_damage_line_vulnerability_of_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_melee.py b/scripts/skillMods/expertise_damage_melee.py index f4c71024..c23ada08 100644 --- a/scripts/skillMods/expertise_damage_melee.py +++ b/scripts/skillMods/expertise_damage_melee.py @@ -1,11 +1,9 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_pistol.py b/scripts/skillMods/expertise_damage_pistol.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_pistol.py +++ b/scripts/skillMods/expertise_damage_pistol.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_ranged.py b/scripts/skillMods/expertise_damage_ranged.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_ranged.py +++ b/scripts/skillMods/expertise_damage_ranged.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_to_healing_fs_ae_dm_cc.py b/scripts/skillMods/expertise_damage_to_healing_fs_ae_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_to_healing_fs_ae_dm_cc.py +++ b/scripts/skillMods/expertise_damage_to_healing_fs_ae_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_unarmed.py b/scripts/skillMods/expertise_damage_unarmed.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_unarmed.py +++ b/scripts/skillMods/expertise_damage_unarmed.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_0.py b/scripts/skillMods/expertise_damage_weapon_0.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_0.py +++ b/scripts/skillMods/expertise_damage_weapon_0.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_1.py b/scripts/skillMods/expertise_damage_weapon_1.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_1.py +++ b/scripts/skillMods/expertise_damage_weapon_1.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_10.py b/scripts/skillMods/expertise_damage_weapon_10.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_10.py +++ b/scripts/skillMods/expertise_damage_weapon_10.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_11.py b/scripts/skillMods/expertise_damage_weapon_11.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_11.py +++ b/scripts/skillMods/expertise_damage_weapon_11.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_2.py b/scripts/skillMods/expertise_damage_weapon_2.py index f4c71024..c23ada08 100644 --- a/scripts/skillMods/expertise_damage_weapon_2.py +++ b/scripts/skillMods/expertise_damage_weapon_2.py @@ -1,11 +1,9 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_29.py b/scripts/skillMods/expertise_damage_weapon_29.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_29.py +++ b/scripts/skillMods/expertise_damage_weapon_29.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_3.py b/scripts/skillMods/expertise_damage_weapon_3.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_3.py +++ b/scripts/skillMods/expertise_damage_weapon_3.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_4.py b/scripts/skillMods/expertise_damage_weapon_4.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_4.py +++ b/scripts/skillMods/expertise_damage_weapon_4.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_5.py b/scripts/skillMods/expertise_damage_weapon_5.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_5.py +++ b/scripts/skillMods/expertise_damage_weapon_5.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_6.py b/scripts/skillMods/expertise_damage_weapon_6.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_6.py +++ b/scripts/skillMods/expertise_damage_weapon_6.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_7.py b/scripts/skillMods/expertise_damage_weapon_7.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_7.py +++ b/scripts/skillMods/expertise_damage_weapon_7.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_9.py b/scripts/skillMods/expertise_damage_weapon_9.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_9.py +++ b/scripts/skillMods/expertise_damage_weapon_9.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_damage_weapon_all.py b/scripts/skillMods/expertise_damage_weapon_all.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_damage_weapon_all.py +++ b/scripts/skillMods/expertise_damage_weapon_all.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_delay_line_co_remote_detonator.py b/scripts/skillMods/expertise_delay_line_co_remote_detonator.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_delay_line_co_remote_detonator.py +++ b/scripts/skillMods/expertise_delay_line_co_remote_detonator.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_devastation_bonus.py b/scripts/skillMods/expertise_devastation_bonus.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_devastation_bonus.py +++ b/scripts/skillMods/expertise_devastation_bonus.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_dodge.py b/scripts/skillMods/expertise_dodge.py index f4c71024..c23ada08 100644 --- a/scripts/skillMods/expertise_dodge.py +++ b/scripts/skillMods/expertise_dodge.py @@ -1,11 +1,9 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_dot_absorption_all.py b/scripts/skillMods/expertise_dot_absorption_all.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_dot_absorption_all.py +++ b/scripts/skillMods/expertise_dot_absorption_all.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_dot_damage_line_sp_stealth_melee.py b/scripts/skillMods/expertise_dot_damage_line_sp_stealth_melee.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_dot_damage_line_sp_stealth_melee.py +++ b/scripts/skillMods/expertise_dot_damage_line_sp_stealth_melee.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_dot_damage_line_sp_stealth_ranged.py b/scripts/skillMods/expertise_dot_damage_line_sp_stealth_ranged.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_dot_damage_line_sp_stealth_ranged.py +++ b/scripts/skillMods/expertise_dot_damage_line_sp_stealth_ranged.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_dot_duration_line_co_armor_splash.py b/scripts/skillMods/expertise_dot_duration_line_co_armor_splash.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_dot_duration_line_co_armor_splash.py +++ b/scripts/skillMods/expertise_dot_duration_line_co_armor_splash.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_dot_duration_line_co_grenade.py b/scripts/skillMods/expertise_dot_duration_line_co_grenade.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_dot_duration_line_co_grenade.py +++ b/scripts/skillMods/expertise_dot_duration_line_co_grenade.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_dot_duration_line_co_it_burns.py b/scripts/skillMods/expertise_dot_duration_line_co_it_burns.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_dot_duration_line_co_it_burns.py +++ b/scripts/skillMods/expertise_dot_duration_line_co_it_burns.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_dot_duration_line_co_shock_tracer.py b/scripts/skillMods/expertise_dot_duration_line_co_shock_tracer.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_dot_duration_line_co_shock_tracer.py +++ b/scripts/skillMods/expertise_dot_duration_line_co_shock_tracer.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_dot_duration_line_me_dot.py b/scripts/skillMods/expertise_dot_duration_line_me_dot.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_dot_duration_line_me_dot.py +++ b/scripts/skillMods/expertise_dot_duration_line_me_dot.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_dot_increase.py b/scripts/skillMods/expertise_dot_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_dot_increase.py +++ b/scripts/skillMods/expertise_dot_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_double_deal_chance.py b/scripts/skillMods/expertise_double_deal_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_double_deal_chance.py +++ b/scripts/skillMods/expertise_double_deal_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_double_hit_chance.py b/scripts/skillMods/expertise_double_hit_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_double_hit_chance.py +++ b/scripts/skillMods/expertise_double_hit_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_dueterium_rounds_proc.py b/scripts/skillMods/expertise_dueterium_rounds_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_dueterium_rounds_proc.py +++ b/scripts/skillMods/expertise_dueterium_rounds_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_combat_buff_increase.py b/scripts/skillMods/expertise_en_combat_buff_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_combat_buff_increase.py +++ b/scripts/skillMods/expertise_en_combat_buff_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_debuff_thrill_increase.py b/scripts/skillMods/expertise_en_debuff_thrill_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_debuff_thrill_increase.py +++ b/scripts/skillMods/expertise_en_debuff_thrill_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_holographic_additional_backup.py b/scripts/skillMods/expertise_en_holographic_additional_backup.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_holographic_additional_backup.py +++ b/scripts/skillMods/expertise_en_holographic_additional_backup.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_improv.py b/scripts/skillMods/expertise_en_improv.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_improv.py +++ b/scripts/skillMods/expertise_en_improv.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_inspire_attrib_increase.py b/scripts/skillMods/expertise_en_inspire_attrib_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_inspire_attrib_increase.py +++ b/scripts/skillMods/expertise_en_inspire_attrib_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_inspire_base_point_increase.py b/scripts/skillMods/expertise_en_inspire_base_point_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_inspire_base_point_increase.py +++ b/scripts/skillMods/expertise_en_inspire_base_point_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_inspire_buff_duration_increase.py b/scripts/skillMods/expertise_en_inspire_buff_duration_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_inspire_buff_duration_increase.py +++ b/scripts/skillMods/expertise_en_inspire_buff_duration_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_inspire_proc_chance_increase.py b/scripts/skillMods/expertise_en_inspire_proc_chance_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_inspire_proc_chance_increase.py +++ b/scripts/skillMods/expertise_en_inspire_proc_chance_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_inspire_pulse_duration_increase.py b/scripts/skillMods/expertise_en_inspire_pulse_duration_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_inspire_pulse_duration_increase.py +++ b/scripts/skillMods/expertise_en_inspire_pulse_duration_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_inspire_resist_increase.py b/scripts/skillMods/expertise_en_inspire_resist_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_inspire_resist_increase.py +++ b/scripts/skillMods/expertise_en_inspire_resist_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_inspire_trader_increase.py b/scripts/skillMods/expertise_en_inspire_trader_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_inspire_trader_increase.py +++ b/scripts/skillMods/expertise_en_inspire_trader_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_en_performance_increase.py b/scripts/skillMods/expertise_en_performance_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_en_performance_increase.py +++ b/scripts/skillMods/expertise_en_performance_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_evasion_chance.py b/scripts/skillMods/expertise_evasion_chance.py index 44fc827c..ad63a264 100644 --- a/scripts/skillMods/expertise_evasion_chance.py +++ b/scripts/skillMods/expertise_evasion_chance.py @@ -1,12 +1,10 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - core.skillModService.addSkillMod(actor, 'display_only_evasion', 100 * (actor.getSkillModBase('expertise_evasion_chance'))) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'display_only_evasion', 100 * skillMod.getBase()) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - core.skillModService.deductSkillMod(actor, 'display_only_evasion', 100 * (actor.getSkillModBase('expertise_evasion_chance'))) + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'display_only_evasion', 100 * skillMod.getBase()) return \ No newline at end of file diff --git a/scripts/skillMods/expertise_evasion_value.py b/scripts/skillMods/expertise_evasion_value.py index fa2af1aa..b5ccba7f 100644 --- a/scripts/skillMods/expertise_evasion_value.py +++ b/scripts/skillMods/expertise_evasion_value.py @@ -1,12 +1,10 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - core.skillModService.addSkillMod(actor, 'combat_evasion_value', (actor.getSkillModBase('expertise_evasion_value'))) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'combat_evasion_value', skillMod) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - core.skillModService.deductSkillMod(actor, 'combat_evasion_value', (actor.getSkillModBase('expertise_evasion_value'))) + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'combat_evasion_value', skillMod) return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_increase_architect.py b/scripts/skillMods/expertise_experimentation_increase_architect.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_increase_architect.py +++ b/scripts/skillMods/expertise_experimentation_increase_architect.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_increase_armorsmith.py b/scripts/skillMods/expertise_experimentation_increase_armorsmith.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_increase_armorsmith.py +++ b/scripts/skillMods/expertise_experimentation_increase_armorsmith.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_increase_artisan.py b/scripts/skillMods/expertise_experimentation_increase_artisan.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_increase_artisan.py +++ b/scripts/skillMods/expertise_experimentation_increase_artisan.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_increase_chef.py b/scripts/skillMods/expertise_experimentation_increase_chef.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_increase_chef.py +++ b/scripts/skillMods/expertise_experimentation_increase_chef.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_increase_cybernetic.py b/scripts/skillMods/expertise_experimentation_increase_cybernetic.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_increase_cybernetic.py +++ b/scripts/skillMods/expertise_experimentation_increase_cybernetic.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_increase_droid.py b/scripts/skillMods/expertise_experimentation_increase_droid.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_increase_droid.py +++ b/scripts/skillMods/expertise_experimentation_increase_droid.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_increase_shipwright.py b/scripts/skillMods/expertise_experimentation_increase_shipwright.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_increase_shipwright.py +++ b/scripts/skillMods/expertise_experimentation_increase_shipwright.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_increase_tailor.py b/scripts/skillMods/expertise_experimentation_increase_tailor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_increase_tailor.py +++ b/scripts/skillMods/expertise_experimentation_increase_tailor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_increase_weaponsmith.py b/scripts/skillMods/expertise_experimentation_increase_weaponsmith.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_increase_weaponsmith.py +++ b/scripts/skillMods/expertise_experimentation_increase_weaponsmith.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_point_architect.py b/scripts/skillMods/expertise_experimentation_point_architect.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_point_architect.py +++ b/scripts/skillMods/expertise_experimentation_point_architect.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_point_armorsmith.py b/scripts/skillMods/expertise_experimentation_point_armorsmith.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_point_armorsmith.py +++ b/scripts/skillMods/expertise_experimentation_point_armorsmith.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_point_artisan.py b/scripts/skillMods/expertise_experimentation_point_artisan.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_point_artisan.py +++ b/scripts/skillMods/expertise_experimentation_point_artisan.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_point_chef.py b/scripts/skillMods/expertise_experimentation_point_chef.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_point_chef.py +++ b/scripts/skillMods/expertise_experimentation_point_chef.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_point_droid.py b/scripts/skillMods/expertise_experimentation_point_droid.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_point_droid.py +++ b/scripts/skillMods/expertise_experimentation_point_droid.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_point_shipwright.py b/scripts/skillMods/expertise_experimentation_point_shipwright.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_point_shipwright.py +++ b/scripts/skillMods/expertise_experimentation_point_shipwright.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_point_tailor.py b/scripts/skillMods/expertise_experimentation_point_tailor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_point_tailor.py +++ b/scripts/skillMods/expertise_experimentation_point_tailor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_experimentation_point_weaponsmith.py b/scripts/skillMods/expertise_experimentation_point_weaponsmith.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_experimentation_point_weaponsmith.py +++ b/scripts/skillMods/expertise_experimentation_point_weaponsmith.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_factory_energy_decrease.py b/scripts/skillMods/expertise_factory_energy_decrease.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_factory_energy_decrease.py +++ b/scripts/skillMods/expertise_factory_energy_decrease.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_factory_maintenance_decrease.py b/scripts/skillMods/expertise_factory_maintenance_decrease.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_factory_maintenance_decrease.py +++ b/scripts/skillMods/expertise_factory_maintenance_decrease.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_factory_production_increase.py b/scripts/skillMods/expertise_factory_production_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_factory_production_increase.py +++ b/scripts/skillMods/expertise_factory_production_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_fast_talk_bonus.py b/scripts/skillMods/expertise_fast_talk_bonus.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_fast_talk_bonus.py +++ b/scripts/skillMods/expertise_fast_talk_bonus.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_fast_talk_rank.py b/scripts/skillMods/expertise_fast_talk_rank.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_fast_talk_rank.py +++ b/scripts/skillMods/expertise_fast_talk_rank.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_focus.py b/scripts/skillMods/expertise_focus.py index c73060b3..17feedf8 100644 --- a/scripts/skillMods/expertise_focus.py +++ b/scripts/skillMods/expertise_focus.py @@ -1,14 +1,12 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, divisor): core.skillModService.addSkillMod(actor, 'stamina_modified', (actor.getSkillModBase('expertise_focus_stamina'))) core.skillModService.addSkillMod(actor, 'display_only_critical', 100 * (actor.getSkillModBase('expertise_focus_critical_buff_line'))) core.skillModService.addSkillMod(actor, 'expertise_damage_melee', 1 * (actor.getSkillModBase('expertise_focus_damage_increase'))) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, divisor): core.skillModService.deductSkillMod(actor, 'stamina_modified', (actor.getSkillModBase('expertise_focus_stamina'))) core.skillModService.deductSkillMod(actor, 'display_only_critical', 100 * (actor.getSkillModBase('expertise_focus_critical_buff_line'))) core.skillModService.deductSkillMod(actor, 'expertise_damage_melee', 1 * (actor.getSkillModBase('expertise_focus_damage_increase'))) diff --git a/scripts/skillMods/expertise_focus_critical_buff_line.py b/scripts/skillMods/expertise_focus_critical_buff_line.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_focus_critical_buff_line.py +++ b/scripts/skillMods/expertise_focus_critical_buff_line.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_focus_damage_increase.py b/scripts/skillMods/expertise_focus_damage_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_focus_damage_increase.py +++ b/scripts/skillMods/expertise_focus_damage_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_focus_stamina.py b/scripts/skillMods/expertise_focus_stamina.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_focus_stamina.py +++ b/scripts/skillMods/expertise_focus_stamina.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_focus_strength.py b/scripts/skillMods/expertise_focus_strength.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_focus_strength.py +++ b/scripts/skillMods/expertise_focus_strength.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_force_cloak_combat_escape.py b/scripts/skillMods/expertise_force_cloak_combat_escape.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_force_cloak_combat_escape.py +++ b/scripts/skillMods/expertise_force_cloak_combat_escape.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_co_dm.py b/scripts/skillMods/expertise_freeshot_co_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_co_dm.py +++ b/scripts/skillMods/expertise_freeshot_co_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_co_grenade.py b/scripts/skillMods/expertise_freeshot_co_grenade.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_co_grenade.py +++ b/scripts/skillMods/expertise_freeshot_co_grenade.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_dm.py b/scripts/skillMods/expertise_freeshot_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_dm.py +++ b/scripts/skillMods/expertise_freeshot_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_fs_dm.py b/scripts/skillMods/expertise_freeshot_fs_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_fs_dm.py +++ b/scripts/skillMods/expertise_freeshot_fs_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_me_debuff.py b/scripts/skillMods/expertise_freeshot_me_debuff.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_me_debuff.py +++ b/scripts/skillMods/expertise_freeshot_me_debuff.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_me_dm.py b/scripts/skillMods/expertise_freeshot_me_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_me_dm.py +++ b/scripts/skillMods/expertise_freeshot_me_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_me_heal.py b/scripts/skillMods/expertise_freeshot_me_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_me_heal.py +++ b/scripts/skillMods/expertise_freeshot_me_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_of_aoe.py b/scripts/skillMods/expertise_freeshot_of_aoe.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_of_aoe.py +++ b/scripts/skillMods/expertise_freeshot_of_aoe.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_of_sure.py b/scripts/skillMods/expertise_freeshot_of_sure.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_of_sure.py +++ b/scripts/skillMods/expertise_freeshot_of_sure.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_sm_dm.py b/scripts/skillMods/expertise_freeshot_sm_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_sm_dm.py +++ b/scripts/skillMods/expertise_freeshot_sm_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_sm_dm_cc.py b/scripts/skillMods/expertise_freeshot_sm_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_sm_dm_cc.py +++ b/scripts/skillMods/expertise_freeshot_sm_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_freeshot_sp_dm.py b/scripts/skillMods/expertise_freeshot_sp_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_freeshot_sp_dm.py +++ b/scripts/skillMods/expertise_freeshot_sp_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_fs_force_clarity_1_proc.py b/scripts/skillMods/expertise_fs_force_clarity_1_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_fs_force_clarity_1_proc.py +++ b/scripts/skillMods/expertise_fs_force_clarity_1_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_glancing_blow_all.py b/scripts/skillMods/expertise_glancing_blow_all.py index 3f89621b..69f34dd8 100644 --- a/scripts/skillMods/expertise_glancing_blow_all.py +++ b/scripts/skillMods/expertise_glancing_blow_all.py @@ -1,12 +1,10 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - core.skillModService.addSkillMod(actor, 'display_only_glancing_blow', 100 * (actor.getSkillModBase('expertise_glancing_blow_all'))) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'display_only_glancing_blow', 100 * skillMod.getBase()) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - core.skillModService.deductSkillMod(actor, 'display_only_glancing_blow', 100 * (actor.getSkillModBase('expertise_glancing_blow_all'))) + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'display_only_glancing_blow', 100 * skillMod.getBase()) return \ No newline at end of file diff --git a/scripts/skillMods/expertise_glancing_blow_melee.py b/scripts/skillMods/expertise_glancing_blow_melee.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_glancing_blow_melee.py +++ b/scripts/skillMods/expertise_glancing_blow_melee.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_glancing_blow_melee_defense.py b/scripts/skillMods/expertise_glancing_blow_melee_defense.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_glancing_blow_melee_defense.py +++ b/scripts/skillMods/expertise_glancing_blow_melee_defense.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_glancing_blow_ranged.py b/scripts/skillMods/expertise_glancing_blow_ranged.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_glancing_blow_ranged.py +++ b/scripts/skillMods/expertise_glancing_blow_ranged.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_harvester_collection_increase.py b/scripts/skillMods/expertise_harvester_collection_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_harvester_collection_increase.py +++ b/scripts/skillMods/expertise_harvester_collection_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_harvester_energy_decrease.py b/scripts/skillMods/expertise_harvester_energy_decrease.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_harvester_energy_decrease.py +++ b/scripts/skillMods/expertise_harvester_energy_decrease.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_harvester_maintenance_decrease.py b/scripts/skillMods/expertise_harvester_maintenance_decrease.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_harvester_maintenance_decrease.py +++ b/scripts/skillMods/expertise_harvester_maintenance_decrease.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_havester_storage_increase.py b/scripts/skillMods/expertise_havester_storage_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_havester_storage_increase.py +++ b/scripts/skillMods/expertise_havester_storage_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_healing_all.py b/scripts/skillMods/expertise_healing_all.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_healing_all.py +++ b/scripts/skillMods/expertise_healing_all.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_healing_line_fs_heal.py b/scripts/skillMods/expertise_healing_line_fs_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_healing_line_fs_heal.py +++ b/scripts/skillMods/expertise_healing_line_fs_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_healing_line_me_heal.py b/scripts/skillMods/expertise_healing_line_me_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_healing_line_me_heal.py +++ b/scripts/skillMods/expertise_healing_line_me_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_healing_line_me_hot.py b/scripts/skillMods/expertise_healing_line_me_hot.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_healing_line_me_hot.py +++ b/scripts/skillMods/expertise_healing_line_me_hot.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_healing_line_me_hot_ae.py b/scripts/skillMods/expertise_healing_line_me_hot_ae.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_healing_line_me_hot_ae.py +++ b/scripts/skillMods/expertise_healing_line_me_hot_ae.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_healing_line_of_heal.py b/scripts/skillMods/expertise_healing_line_of_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_healing_line_of_heal.py +++ b/scripts/skillMods/expertise_healing_line_of_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_healing_line_sm_heal.py b/scripts/skillMods/expertise_healing_line_sm_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_healing_line_sm_heal.py +++ b/scripts/skillMods/expertise_healing_line_sm_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_healing_line_sp_cloaked_heal.py b/scripts/skillMods/expertise_healing_line_sp_cloaked_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_healing_line_sp_cloaked_heal.py +++ b/scripts/skillMods/expertise_healing_line_sp_cloaked_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_healing_line_sp_heal.py b/scripts/skillMods/expertise_healing_line_sp_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_healing_line_sp_heal.py +++ b/scripts/skillMods/expertise_healing_line_sp_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_hit_by_luck.py b/scripts/skillMods/expertise_hit_by_luck.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_hit_by_luck.py +++ b/scripts/skillMods/expertise_hit_by_luck.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_increase_hit_by_luck.py b/scripts/skillMods/expertise_increase_hit_by_luck.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_increase_hit_by_luck.py +++ b/scripts/skillMods/expertise_increase_hit_by_luck.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_increase_smuggler_loot.py b/scripts/skillMods/expertise_increase_smuggler_loot.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_increase_smuggler_loot.py +++ b/scripts/skillMods/expertise_increase_smuggler_loot.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_innate_protection_all.py b/scripts/skillMods/expertise_innate_protection_all.py index cceb61ec..7cf5648d 100644 --- a/scripts/skillMods/expertise_innate_protection_all.py +++ b/scripts/skillMods/expertise_innate_protection_all.py @@ -1,22 +1,20 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod('energy', base) - actor.addSkillMod('kinetic', base) - actor.addSkillMod('acid', base) - actor.addSkillMod('heat', base) - actor.addSkillMod('cold', base) - actor.addSkillMod('electricity', base) - actor.addSkillMod(name, base) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'energy', skillMod) + core.skillModService.addSkillMod(actor, 'kinetic', skillMod) + core.skillModService.addSkillMod(actor, 'acid', skillMod) + core.skillModService.addSkillMod(actor, 'heat', skillMod) + core.skillModService.addSkillMod(actor, 'cold', skillMod) + core.skillModService.addSkillMod(actor, 'electricity', skillMod) return - -def deduct(core, actor, name, base): - actor.deductSkillMod('energy', base) - actor.deductSkillMod('kinetic', base) - actor.deductSkillMod('acid', base) - actor.deductSkillMod('heat', base) - actor.deductSkillMod('cold', base) - actor.deductSkillMod('electricity', base) - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'energy', skillMod) + core.skillModService.deductSkillMod(actor, 'kinetic', skillMod) + core.skillModService.deductSkillMod(actor, 'acid', skillMod) + core.skillModService.deductSkillMod(actor, 'heat', skillMod) + core.skillModService.deductSkillMod(actor, 'cold', skillMod) + core.skillModService.deductSkillMod(actor, 'electricity', skillMod) return \ No newline at end of file diff --git a/scripts/skillMods/expertise_innate_protection_energy.py b/scripts/skillMods/expertise_innate_protection_energy.py index 5715c8bc..575c6b90 100644 --- a/scripts/skillMods/expertise_innate_protection_energy.py +++ b/scripts/skillMods/expertise_innate_protection_energy.py @@ -1,12 +1,10 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod('energy', base) - actor.addSkillMod(name, base) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'energy', skillMod) return - -def deduct(core, actor, name, base): - actor.deductSkillMod('energy', base) - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'energy', skillMod) return \ No newline at end of file diff --git a/scripts/skillMods/expertise_innate_protection_kinetic.py b/scripts/skillMods/expertise_innate_protection_kinetic.py index 6cea2b42..ca7c4cd7 100644 --- a/scripts/skillMods/expertise_innate_protection_kinetic.py +++ b/scripts/skillMods/expertise_innate_protection_kinetic.py @@ -1,12 +1,10 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod('kinetic', base) - actor.addSkillMod(name, base) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'kinetic', skillMod) return -def deduct(core, actor, name, base): - actor.deductSkillMod('kinetic', base) - actor.deductSkillMod(name, base) +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'kinetic', skillMod) return \ No newline at end of file diff --git a/scripts/skillMods/expertise_innate_reduction_all_player.py b/scripts/skillMods/expertise_innate_reduction_all_player.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_innate_reduction_all_player.py +++ b/scripts/skillMods/expertise_innate_reduction_all_player.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_junk_dealer_cut.py b/scripts/skillMods/expertise_junk_dealer_cut.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_junk_dealer_cut.py +++ b/scripts/skillMods/expertise_junk_dealer_cut.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_lucky_break_chance.py b/scripts/skillMods/expertise_lucky_break_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_lucky_break_chance.py +++ b/scripts/skillMods/expertise_lucky_break_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_miss_by_luck.py b/scripts/skillMods/expertise_miss_by_luck.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_miss_by_luck.py +++ b/scripts/skillMods/expertise_miss_by_luck.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_movement_buff_fs_force_run.py b/scripts/skillMods/expertise_movement_buff_fs_force_run.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_movement_buff_fs_force_run.py +++ b/scripts/skillMods/expertise_movement_buff_fs_force_run.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_movement_buff_invis_sp_buff_invis_1.py b/scripts/skillMods/expertise_movement_buff_invis_sp_buff_invis_1.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_movement_buff_invis_sp_buff_invis_1.py +++ b/scripts/skillMods/expertise_movement_buff_invis_sp_buff_invis_1.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_movement_buff_invis_sp_buff_stealth_1.py b/scripts/skillMods/expertise_movement_buff_invis_sp_buff_stealth_1.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_movement_buff_invis_sp_buff_stealth_1.py +++ b/scripts/skillMods/expertise_movement_buff_invis_sp_buff_stealth_1.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_on_target_critical.py b/scripts/skillMods/expertise_on_target_critical.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_on_target_critical.py +++ b/scripts/skillMods/expertise_on_target_critical.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_on_target_protection.py b/scripts/skillMods/expertise_on_target_protection.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_on_target_protection.py +++ b/scripts/skillMods/expertise_on_target_protection.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_overridable_protection_generic.py b/scripts/skillMods/expertise_overridable_protection_generic.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_overridable_protection_generic.py +++ b/scripts/skillMods/expertise_overridable_protection_generic.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_parry.py b/scripts/skillMods/expertise_parry.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_parry.py +++ b/scripts/skillMods/expertise_parry.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_pet_dodge.py b/scripts/skillMods/expertise_pet_dodge.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_pet_dodge.py +++ b/scripts/skillMods/expertise_pet_dodge.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_poison_knuckle_proc.py b/scripts/skillMods/expertise_poison_knuckle_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_poison_knuckle_proc.py +++ b/scripts/skillMods/expertise_poison_knuckle_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_range_bonus_all.py b/scripts/skillMods/expertise_range_bonus_all.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_range_bonus_all.py +++ b/scripts/skillMods/expertise_range_bonus_all.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_range_bonus_carbine.py b/scripts/skillMods/expertise_range_bonus_carbine.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_range_bonus_carbine.py +++ b/scripts/skillMods/expertise_range_bonus_carbine.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_range_bonus_melee.py b/scripts/skillMods/expertise_range_bonus_melee.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_range_bonus_melee.py +++ b/scripts/skillMods/expertise_range_bonus_melee.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_range_bonus_pistol.py b/scripts/skillMods/expertise_range_bonus_pistol.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_range_bonus_pistol.py +++ b/scripts/skillMods/expertise_range_bonus_pistol.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_range_bonus_ranged.py b/scripts/skillMods/expertise_range_bonus_ranged.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_range_bonus_ranged.py +++ b/scripts/skillMods/expertise_range_bonus_ranged.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_resource_quality_increase.py b/scripts/skillMods/expertise_resource_quality_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_resource_quality_increase.py +++ b/scripts/skillMods/expertise_resource_quality_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_resource_sampling_increase.py b/scripts/skillMods/expertise_resource_sampling_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_resource_sampling_increase.py +++ b/scripts/skillMods/expertise_resource_sampling_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_resource_sampling_time_decrease.py b/scripts/skillMods/expertise_resource_sampling_time_decrease.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_resource_sampling_time_decrease.py +++ b/scripts/skillMods/expertise_resource_sampling_time_decrease.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_reverse_engineering_bonus.py b/scripts/skillMods/expertise_reverse_engineering_bonus.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_reverse_engineering_bonus.py +++ b/scripts/skillMods/expertise_reverse_engineering_bonus.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_riddle_armor.py b/scripts/skillMods/expertise_riddle_armor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_riddle_armor.py +++ b/scripts/skillMods/expertise_riddle_armor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_root_chance_fs_dm_cc.py b/scripts/skillMods/expertise_root_chance_fs_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_root_chance_fs_dm_cc.py +++ b/scripts/skillMods/expertise_root_chance_fs_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_saber_block.py b/scripts/skillMods/expertise_saber_block.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_saber_block.py +++ b/scripts/skillMods/expertise_saber_block.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_skill_buff_glancing_blow_vulnerable.py b/scripts/skillMods/expertise_skill_buff_glancing_blow_vulnerable.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_skill_buff_glancing_blow_vulnerable.py +++ b/scripts/skillMods/expertise_skill_buff_glancing_blow_vulnerable.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sly_lie_bonus.py b/scripts/skillMods/expertise_sly_lie_bonus.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sly_lie_bonus.py +++ b/scripts/skillMods/expertise_sly_lie_bonus.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sly_lie_rank.py b/scripts/skillMods/expertise_sly_lie_rank.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sly_lie_rank.py +++ b/scripts/skillMods/expertise_sly_lie_rank.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sm_card_melee_proc.py b/scripts/skillMods/expertise_sm_card_melee_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sm_card_melee_proc.py +++ b/scripts/skillMods/expertise_sm_card_melee_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sm_card_ranged_proc.py b/scripts/skillMods/expertise_sm_card_ranged_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sm_card_ranged_proc.py +++ b/scripts/skillMods/expertise_sm_card_ranged_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sm_feeling_lucky_chance_proc.py b/scripts/skillMods/expertise_sm_feeling_lucky_chance_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sm_feeling_lucky_chance_proc.py +++ b/scripts/skillMods/expertise_sm_feeling_lucky_chance_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sm_melee_proc.py b/scripts/skillMods/expertise_sm_melee_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sm_melee_proc.py +++ b/scripts/skillMods/expertise_sm_melee_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sm_melee_stun_proc.py b/scripts/skillMods/expertise_sm_melee_stun_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sm_melee_stun_proc.py +++ b/scripts/skillMods/expertise_sm_melee_stun_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sm_ranged_shot_proc.py b/scripts/skillMods/expertise_sm_ranged_shot_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sm_ranged_shot_proc.py +++ b/scripts/skillMods/expertise_sm_ranged_shot_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sm_rank_damage_bonus.py b/scripts/skillMods/expertise_sm_rank_damage_bonus.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sm_rank_damage_bonus.py +++ b/scripts/skillMods/expertise_sm_rank_damage_bonus.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sm_rank_range_bonus.py b/scripts/skillMods/expertise_sm_rank_range_bonus.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sm_rank_range_bonus.py +++ b/scripts/skillMods/expertise_sm_rank_range_bonus.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_socket_increase_tailor.py b/scripts/skillMods/expertise_socket_increase_tailor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_socket_increase_tailor.py +++ b/scripts/skillMods/expertise_socket_increase_tailor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sp_cripple_trap_proc_increase.py b/scripts/skillMods/expertise_sp_cripple_trap_proc_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sp_cripple_trap_proc_increase.py +++ b/scripts/skillMods/expertise_sp_cripple_trap_proc_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sp_reveal_shadows_detect_chance_increase.py b/scripts/skillMods/expertise_sp_reveal_shadows_detect_chance_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sp_reveal_shadows_detect_chance_increase.py +++ b/scripts/skillMods/expertise_sp_reveal_shadows_detect_chance_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_sp_reveal_shadows_distance_increase.py b/scripts/skillMods/expertise_sp_reveal_shadows_distance_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_sp_reveal_shadows_distance_increase.py +++ b/scripts/skillMods/expertise_sp_reveal_shadows_distance_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_spot_a_sucker_critical_decrease.py b/scripts/skillMods/expertise_spot_a_sucker_critical_decrease.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_spot_a_sucker_critical_decrease.py +++ b/scripts/skillMods/expertise_spot_a_sucker_critical_decrease.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_spot_a_sucker_glance_chance.py b/scripts/skillMods/expertise_spot_a_sucker_glance_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_spot_a_sucker_glance_chance.py +++ b/scripts/skillMods/expertise_spot_a_sucker_glance_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_stance.py b/scripts/skillMods/expertise_stance.py index 9d6fa7c6..25bfb4cc 100644 --- a/scripts/skillMods/expertise_stance.py +++ b/scripts/skillMods/expertise_stance.py @@ -1,16 +1,12 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, divisor): core.skillModService.addSkillMod(actor, 'constitution_modified', (actor.getSkillModBase('expertise_stance_constitution'))) core.skillModService.addSkillMod(actor, 'display_only_parry', 100 * (actor.getSkillModBase('expertise_stance_parry'))) - core.skillModService.addSkillMod(actor, 'display_only_evasion', 100 *(actor.getSkillModBase('expertise_stance_evasion'))) - - + core.skillModService.addSkillMod(actor, 'display_only_evasion', 100 * (actor.getSkillModBase('expertise_stance_evasion'))) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, divisor): core.skillModService.deductSkillMod(actor, 'constitution_modified', (actor.getSkillModBase('expertise_stance_constitution'))) core.skillModService.deductSkillMod(actor, 'display_only_parry', 100 * (actor.getSkillModBase('expertise_stance_parry'))) core.skillModService.deductSkillMod(actor, 'display_only_evasion', 100 * (actor.getSkillModBase('expertise_stance_evasion'))) diff --git a/scripts/skillMods/expertise_stance_constitution.py b/scripts/skillMods/expertise_stance_constitution.py index ee7769e2..6cd11173 100644 --- a/scripts/skillMods/expertise_stance_constitution.py +++ b/scripts/skillMods/expertise_stance_constitution.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, divisor): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, divisor): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_stance_evasion.py b/scripts/skillMods/expertise_stance_evasion.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_stance_evasion.py +++ b/scripts/skillMods/expertise_stance_evasion.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_stance_glance_buff_line.py b/scripts/skillMods/expertise_stance_glance_buff_line.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_stance_glance_buff_line.py +++ b/scripts/skillMods/expertise_stance_glance_buff_line.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_stance_parry.py b/scripts/skillMods/expertise_stance_parry.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_stance_parry.py +++ b/scripts/skillMods/expertise_stance_parry.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_stance_riposte.py b/scripts/skillMods/expertise_stance_riposte.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_stance_riposte.py +++ b/scripts/skillMods/expertise_stance_riposte.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_stance_saber_block.py b/scripts/skillMods/expertise_stance_saber_block.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_stance_saber_block.py +++ b/scripts/skillMods/expertise_stance_saber_block.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_strikethrough_chance.py b/scripts/skillMods/expertise_strikethrough_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_strikethrough_chance.py +++ b/scripts/skillMods/expertise_strikethrough_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_underworld_boss.py b/scripts/skillMods/expertise_underworld_boss.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_underworld_boss.py +++ b/scripts/skillMods/expertise_underworld_boss.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_undiminished_critical_melee.py b/scripts/skillMods/expertise_undiminished_critical_melee.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_undiminished_critical_melee.py +++ b/scripts/skillMods/expertise_undiminished_critical_melee.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_vendor_cost_decrease.py b/scripts/skillMods/expertise_vendor_cost_decrease.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_vendor_cost_decrease.py +++ b/scripts/skillMods/expertise_vendor_cost_decrease.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_vendor_item_limit.py b/scripts/skillMods/expertise_vendor_item_limit.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_vendor_item_limit.py +++ b/scripts/skillMods/expertise_vendor_item_limit.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_vendor_limit_increase.py b/scripts/skillMods/expertise_vendor_limit_increase.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_vendor_limit_increase.py +++ b/scripts/skillMods/expertise_vendor_limit_increase.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/expertise_youll_regret_that.py b/scripts/skillMods/expertise_youll_regret_that.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/expertise_youll_regret_that.py +++ b/scripts/skillMods/expertise_youll_regret_that.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/face.py b/scripts/skillMods/face.py index 49050a23..6cd11173 100644 --- a/scripts/skillMods/face.py +++ b/scripts/skillMods/face.py @@ -1,10 +1,8 @@ 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 +def add(core, actor, skillMod, divisor): + return + +def deduct(core, actor, skillMod, divisor): + return + \ No newline at end of file diff --git a/scripts/skillMods/factory_speed.py b/scripts/skillMods/factory_speed.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/factory_speed.py +++ b/scripts/skillMods/factory_speed.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_co_grenade.py b/scripts/skillMods/fast_attack_line_co_grenade.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_co_grenade.py +++ b/scripts/skillMods/fast_attack_line_co_grenade.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_dm_cc.py b/scripts/skillMods/fast_attack_line_dm_cc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_dm_cc.py +++ b/scripts/skillMods/fast_attack_line_dm_cc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_fs_powers.py b/scripts/skillMods/fast_attack_line_fs_powers.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_fs_powers.py +++ b/scripts/skillMods/fast_attack_line_fs_powers.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_me_debuff.py b/scripts/skillMods/fast_attack_line_me_debuff.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_me_debuff.py +++ b/scripts/skillMods/fast_attack_line_me_debuff.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_me_dm.py b/scripts/skillMods/fast_attack_line_me_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_me_dm.py +++ b/scripts/skillMods/fast_attack_line_me_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_me_heal.py b/scripts/skillMods/fast_attack_line_me_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_me_heal.py +++ b/scripts/skillMods/fast_attack_line_me_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_me_revive.py b/scripts/skillMods/fast_attack_line_me_revive.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_me_revive.py +++ b/scripts/skillMods/fast_attack_line_me_revive.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_of_aoe.py b/scripts/skillMods/fast_attack_line_of_aoe.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_of_aoe.py +++ b/scripts/skillMods/fast_attack_line_of_aoe.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_of_heal.py b/scripts/skillMods/fast_attack_line_of_heal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_of_heal.py +++ b/scripts/skillMods/fast_attack_line_of_heal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_sm_dm.py b/scripts/skillMods/fast_attack_line_sm_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_sm_dm.py +++ b/scripts/skillMods/fast_attack_line_sm_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_sp_dm.py b/scripts/skillMods/fast_attack_line_sp_dm.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_sp_dm.py +++ b/scripts/skillMods/fast_attack_line_sp_dm.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_sp_perfect.py b/scripts/skillMods/fast_attack_line_sp_perfect.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_sp_perfect.py +++ b/scripts/skillMods/fast_attack_line_sp_perfect.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/fast_attack_line_sp_smoke.py b/scripts/skillMods/fast_attack_line_sp_smoke.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/fast_attack_line_sp_smoke.py +++ b/scripts/skillMods/fast_attack_line_sp_smoke.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/food_assembly.py b/scripts/skillMods/food_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/food_assembly.py +++ b/scripts/skillMods/food_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/food_experimentation.py b/scripts/skillMods/food_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/food_experimentation.py +++ b/scripts/skillMods/food_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/force_sensitive.py b/scripts/skillMods/force_sensitive.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/force_sensitive.py +++ b/scripts/skillMods/force_sensitive.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/general_assembly.py b/scripts/skillMods/general_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/general_assembly.py +++ b/scripts/skillMods/general_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/general_experimentation.py b/scripts/skillMods/general_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/general_experimentation.py +++ b/scripts/skillMods/general_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/glancing_blow_vulnerable.py b/scripts/skillMods/glancing_blow_vulnerable.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/glancing_blow_vulnerable.py +++ b/scripts/skillMods/glancing_blow_vulnerable.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/hair.py b/scripts/skillMods/hair.py index 49050a23..6cd11173 100644 --- a/scripts/skillMods/hair.py +++ b/scripts/skillMods/hair.py @@ -1,10 +1,8 @@ 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 +def add(core, actor, skillMod, divisor): + return + +def deduct(core, actor, skillMod, divisor): + return + \ No newline at end of file diff --git a/scripts/skillMods/healing_action.py b/scripts/skillMods/healing_action.py index f198037b..6cd11173 100644 --- a/scripts/skillMods/healing_action.py +++ b/scripts/skillMods/healing_action.py @@ -1,9 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, divisor): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - return \ No newline at end of file + +def deduct(core, actor, skillMod, divisor): + return + \ No newline at end of file diff --git a/scripts/skillMods/healing_dance_ability.py b/scripts/skillMods/healing_dance_ability.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/healing_dance_ability.py +++ b/scripts/skillMods/healing_dance_ability.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/healing_dance_wound.py b/scripts/skillMods/healing_dance_wound.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/healing_dance_wound.py +++ b/scripts/skillMods/healing_dance_wound.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/healing_health.py b/scripts/skillMods/healing_health.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/healing_health.py +++ b/scripts/skillMods/healing_health.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/healing_music_ability.py b/scripts/skillMods/healing_music_ability.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/healing_music_ability.py +++ b/scripts/skillMods/healing_music_ability.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/healing_music_wound.py b/scripts/skillMods/healing_music_wound.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/healing_music_wound.py +++ b/scripts/skillMods/healing_music_wound.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/health.py b/scripts/skillMods/health.py index b4a86dd4..7915a5a9 100644 --- a/scripts/skillMods/health.py +++ b/scripts/skillMods/health.py @@ -1,12 +1,10 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.setMaxHealth(actor.getMaxHealth() + base) +def add(core, actor, skillMod, divisor): + actor.setMaxHealth(actor.getMaxHealth() + skillMod.getBase()) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.setMaxHealth(actor.getMaxHealth() - base) + +def deduct(core, actor, skillMod, divisor): + actor.setMaxHealth(actor.getMaxHealth() - skillMod.getBase()) return \ No newline at end of file diff --git a/scripts/skillMods/healthPercent.py b/scripts/skillMods/healthPercent.py index de8a3424..db2dbd95 100644 --- a/scripts/skillMods/healthPercent.py +++ b/scripts/skillMods/healthPercent.py @@ -2,13 +2,11 @@ import sys # Temporarily disabled until the skillmod calculation system is refactored -def add(core, actor, name, base): - #actor.addSkillMod(name, base) - #actor.setMaxHealth(actor.getMaxHealth() + int((float(actor.getMaxHealth()) * (float(base) / float(100))))) +def add(core, actor, skillMod, divisor): + #actor.setMaxHealth(actor.getMaxHealth() + int((float(actor.getMaxHealth()) * (float(skillMod.getBase()) / float(100))))) return - -def deduct(core, actor, name, base): - #actor.deductSkillMod(name, base) - #actor.setMaxHealth(actor.getMaxHealth() - int((actor.getMaxHealth() * (float(base) / float(100))))) + +def deduct(core, actor, skillMod, divisor): + #actor.setMaxHealth(actor.getMaxHealth() - int((actor.getMaxHealth() * (float(skillMod.getBase()) / float(100))))) return \ No newline at end of file diff --git a/scripts/skillMods/heat.py b/scripts/skillMods/heat.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/heat.py +++ b/scripts/skillMods/heat.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/hiring.py b/scripts/skillMods/hiring.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/hiring.py +++ b/scripts/skillMods/hiring.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/incubation_time_reduction.py b/scripts/skillMods/incubation_time_reduction.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/incubation_time_reduction.py +++ b/scripts/skillMods/incubation_time_reduction.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/instrument_assembly.py b/scripts/skillMods/instrument_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/instrument_assembly.py +++ b/scripts/skillMods/instrument_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/instrument_customization.py b/scripts/skillMods/instrument_customization.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/instrument_customization.py +++ b/scripts/skillMods/instrument_customization.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/invis.py b/scripts/skillMods/invis.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/invis.py +++ b/scripts/skillMods/invis.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/jedi_saber_assembly.py b/scripts/skillMods/jedi_saber_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/jedi_saber_assembly.py +++ b/scripts/skillMods/jedi_saber_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/jedi_saber_experimentation.py b/scripts/skillMods/jedi_saber_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/jedi_saber_experimentation.py +++ b/scripts/skillMods/jedi_saber_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/kill_meter_co_armor_splash_proc.py b/scripts/skillMods/kill_meter_co_armor_splash_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/kill_meter_co_armor_splash_proc.py +++ b/scripts/skillMods/kill_meter_co_armor_splash_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/kill_meter_co_it_burns_proc.py b/scripts/skillMods/kill_meter_co_it_burns_proc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/kill_meter_co_it_burns_proc.py +++ b/scripts/skillMods/kill_meter_co_it_burns_proc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/kill_meter_co_youll_regret_that_reac.py b/scripts/skillMods/kill_meter_co_youll_regret_that_reac.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/kill_meter_co_youll_regret_that_reac.py +++ b/scripts/skillMods/kill_meter_co_youll_regret_that_reac.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/kill_meter_damage_line_co_grenade.py b/scripts/skillMods/kill_meter_damage_line_co_grenade.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/kill_meter_damage_line_co_grenade.py +++ b/scripts/skillMods/kill_meter_damage_line_co_grenade.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/kill_meter_damage_weapon_all.py b/scripts/skillMods/kill_meter_damage_weapon_all.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/kill_meter_damage_weapon_all.py +++ b/scripts/skillMods/kill_meter_damage_weapon_all.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/kinetic.py b/scripts/skillMods/kinetic.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/kinetic.py +++ b/scripts/skillMods/kinetic.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/level_add_to_damage.py b/scripts/skillMods/level_add_to_damage.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/level_add_to_damage.py +++ b/scripts/skillMods/level_add_to_damage.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/luck.py b/scripts/skillMods/luck.py index d036f779..c6ae1f0d 100644 --- a/scripts/skillMods/luck.py +++ b/scripts/skillMods/luck.py @@ -1,18 +1,16 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.addSkillMod('display_only_dodge', base / 3) - actor.addSkillMod('display_only_evasion', base / 3) - actor.addSkillMod('display_only_critical', base / 3) - actor.addSkillMod('display_only_strikethrough', base / 2) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'display_only_dodge', skillMod.getBase() / 3) + core.skillModService.addSkillMod(actor, 'display_only_evasion', skillMod.getBase() / 3) + core.skillModService.addSkillMod(actor, 'display_only_critical', skillMod.getBase() / 3) + core.skillModService.addSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.deductSkillMod('display_only_dodge', base / 3) - actor.deductSkillMod('display_only_evasion', base / 3) - actor.deductSkillMod('display_only_critical', base / 3) - actor.deductSkillMod('display_only_strikethrough', base / 2) + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'display_only_dodge', skillMod.getBase() / 3) + core.skillModService.deductSkillMod(actor, 'display_only_evasion', skillMod.getBase() / 3) + core.skillModService.deductSkillMod(actor, 'display_only_critical', skillMod.getBase() / 3) + core.skillModService.deductSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2) return \ No newline at end of file diff --git a/scripts/skillMods/luck_modified.py b/scripts/skillMods/luck_modified.py index d036f779..c6ae1f0d 100644 --- a/scripts/skillMods/luck_modified.py +++ b/scripts/skillMods/luck_modified.py @@ -1,18 +1,16 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.addSkillMod('display_only_dodge', base / 3) - actor.addSkillMod('display_only_evasion', base / 3) - actor.addSkillMod('display_only_critical', base / 3) - actor.addSkillMod('display_only_strikethrough', base / 2) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'display_only_dodge', skillMod.getBase() / 3) + core.skillModService.addSkillMod(actor, 'display_only_evasion', skillMod.getBase() / 3) + core.skillModService.addSkillMod(actor, 'display_only_critical', skillMod.getBase() / 3) + core.skillModService.addSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.deductSkillMod('display_only_dodge', base / 3) - actor.deductSkillMod('display_only_evasion', base / 3) - actor.deductSkillMod('display_only_critical', base / 3) - actor.deductSkillMod('display_only_strikethrough', base / 2) + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'display_only_dodge', skillMod.getBase() / 3) + core.skillModService.deductSkillMod(actor, 'display_only_evasion', skillMod.getBase() / 3) + core.skillModService.deductSkillMod(actor, 'display_only_critical', skillMod.getBase() / 3) + core.skillModService.deductSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2) return \ No newline at end of file diff --git a/scripts/skillMods/manage_vendor.py b/scripts/skillMods/manage_vendor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/manage_vendor.py +++ b/scripts/skillMods/manage_vendor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/markings.py b/scripts/skillMods/markings.py index 49050a23..ef489a26 100644 --- a/scripts/skillMods/markings.py +++ b/scripts/skillMods/markings.py @@ -1,10 +1,7 @@ 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 +def add(core, actor, skillMod, divisor): + return + +def deduct(core, actor, skillMod, divisor): + return \ No newline at end of file diff --git a/scripts/skillMods/me_doom_chance.py b/scripts/skillMods/me_doom_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/me_doom_chance.py +++ b/scripts/skillMods/me_doom_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/milk_exceptional_modified.py b/scripts/skillMods/milk_exceptional_modified.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/milk_exceptional_modified.py +++ b/scripts/skillMods/milk_exceptional_modified.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/milk_quantity_modified.py b/scripts/skillMods/milk_quantity_modified.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/milk_quantity_modified.py +++ b/scripts/skillMods/milk_quantity_modified.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/milk_stun_modified.py b/scripts/skillMods/milk_stun_modified.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/milk_stun_modified.py +++ b/scripts/skillMods/milk_stun_modified.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/misc.py b/scripts/skillMods/misc.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/misc.py +++ b/scripts/skillMods/misc.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/missile_launching.py b/scripts/skillMods/missile_launching.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/missile_launching.py +++ b/scripts/skillMods/missile_launching.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/movement.py b/scripts/skillMods/movement.py index fd0ded59..90148d53 100644 --- a/scripts/skillMods/movement.py +++ b/scripts/skillMods/movement.py @@ -1,11 +1,10 @@ import sys -def add(core, actor, name, base): - #actor.addSkillMod(name, base) - actor.setSpeedMultiplierMod(actor.getSpeedMultiplierMod() + (float(base) / float(10))) +def add(core, actor, skillMod, divisor): + actor.setSpeedMultiplierMod(actor.getSpeedMultiplierMod() + (float(skillMod.getBase()) / float(10))) return -def deduct(core, actor, name, base): - #actor.deductSkillMod(name, base) - actor.setSpeedMultiplierMod(actor.getSpeedMultiplierMod() - (float(base) / float(10))) - return \ No newline at end of file +def deduct(core, actor, skillMod, divisor): + actor.setSpeedMultiplierMod(actor.getSpeedMultiplierMod() - (float(skillMod.getBase()) / float(10))) + return + \ No newline at end of file diff --git a/scripts/skillMods/movement_resist_root.py b/scripts/skillMods/movement_resist_root.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/movement_resist_root.py +++ b/scripts/skillMods/movement_resist_root.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/movement_resist_snare.py b/scripts/skillMods/movement_resist_snare.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/movement_resist_snare.py +++ b/scripts/skillMods/movement_resist_snare.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/of_inspired_action_chance.py b/scripts/skillMods/of_inspired_action_chance.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/of_inspired_action_chance.py +++ b/scripts/skillMods/of_inspired_action_chance.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/pilot_special_tactics.py b/scripts/skillMods/pilot_special_tactics.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/pilot_special_tactics.py +++ b/scripts/skillMods/pilot_special_tactics.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/piloting.py b/scripts/skillMods/piloting.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/piloting.py +++ b/scripts/skillMods/piloting.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/politics.py b/scripts/skillMods/politics.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/politics.py +++ b/scripts/skillMods/politics.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/power_systems.py b/scripts/skillMods/power_systems.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/power_systems.py +++ b/scripts/skillMods/power_systems.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/power_systems_experimentation.py b/scripts/skillMods/power_systems_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/power_systems_experimentation.py +++ b/scripts/skillMods/power_systems_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/precision.py b/scripts/skillMods/precision.py index 6d31b77e..b8fa220c 100644 --- a/scripts/skillMods/precision.py +++ b/scripts/skillMods/precision.py @@ -1,18 +1,16 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.addSkillMod('display_only_block', base / 2) - actor.addSkillMod('display_only_parry', base / 2) - actor.addSkillMod('display_only_critical', base) - actor.addSkillMod('display_only_strikethrough', base / 2) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'display_only_block', skillMod.getBase() / 2) + core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) + core.skillModService.addSkillMod(actor, 'display_only_critical', skillMod.getBase()) + core.skillModService.addSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.deductSkillMod('display_only_block', base / 2) - actor.deductSkillMod('display_only_parry', base / 2) - actor.deductSkillMod('display_only_critical', base) - actor.deductSkillMod('display_only_strikethrough', base / 2) + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'display_only_block', skillMod.getBase() / 2) + core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) + core.skillModService.deductSkillMod(actor, 'display_only_critical', skillMod.getBase()) + core.skillModService.deductSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2) return \ No newline at end of file diff --git a/scripts/skillMods/precision_modified.py b/scripts/skillMods/precision_modified.py index 6d31b77e..b8fa220c 100644 --- a/scripts/skillMods/precision_modified.py +++ b/scripts/skillMods/precision_modified.py @@ -1,18 +1,16 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.addSkillMod('display_only_block', base / 2) - actor.addSkillMod('display_only_parry', base / 2) - actor.addSkillMod('display_only_critical', base) - actor.addSkillMod('display_only_strikethrough', base / 2) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'display_only_block', skillMod.getBase() / 2) + core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) + core.skillModService.addSkillMod(actor, 'display_only_critical', skillMod.getBase()) + core.skillModService.addSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.deductSkillMod('display_only_block', base / 2) - actor.deductSkillMod('display_only_parry', base / 2) - actor.deductSkillMod('display_only_critical', base) - actor.deductSkillMod('display_only_strikethrough', base / 2) + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'display_only_block', skillMod.getBase() / 2) + core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) + core.skillModService.deductSkillMod(actor, 'display_only_critical', skillMod.getBase()) + core.skillModService.deductSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2) return \ No newline at end of file diff --git a/scripts/skillMods/private_place_bank.py b/scripts/skillMods/private_place_bank.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/private_place_bank.py +++ b/scripts/skillMods/private_place_bank.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/private_place_cityhall.py b/scripts/skillMods/private_place_cityhall.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/private_place_cityhall.py +++ b/scripts/skillMods/private_place_cityhall.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/private_place_cloning.py b/scripts/skillMods/private_place_cloning.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/private_place_cloning.py +++ b/scripts/skillMods/private_place_cloning.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/private_place_exotic_garden.py b/scripts/skillMods/private_place_exotic_garden.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/private_place_exotic_garden.py +++ b/scripts/skillMods/private_place_exotic_garden.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/private_place_garage.py b/scripts/skillMods/private_place_garage.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/private_place_garage.py +++ b/scripts/skillMods/private_place_garage.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/private_place_hospital.py b/scripts/skillMods/private_place_hospital.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/private_place_hospital.py +++ b/scripts/skillMods/private_place_hospital.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/private_place_large_garden.py b/scripts/skillMods/private_place_large_garden.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/private_place_large_garden.py +++ b/scripts/skillMods/private_place_large_garden.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/private_place_medium_garden.py b/scripts/skillMods/private_place_medium_garden.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/private_place_medium_garden.py +++ b/scripts/skillMods/private_place_medium_garden.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/private_place_shuttleport.py b/scripts/skillMods/private_place_shuttleport.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/private_place_shuttleport.py +++ b/scripts/skillMods/private_place_shuttleport.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/private_place_small_garden.py b/scripts/skillMods/private_place_small_garden.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/private_place_small_garden.py +++ b/scripts/skillMods/private_place_small_garden.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/propulsion_reverse.py b/scripts/skillMods/propulsion_reverse.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/propulsion_reverse.py +++ b/scripts/skillMods/propulsion_reverse.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/resistance_bleeding.py b/scripts/skillMods/resistance_bleeding.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/resistance_bleeding.py +++ b/scripts/skillMods/resistance_bleeding.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/resistance_disease.py b/scripts/skillMods/resistance_disease.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/resistance_disease.py +++ b/scripts/skillMods/resistance_disease.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/resistance_fire.py b/scripts/skillMods/resistance_fire.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/resistance_fire.py +++ b/scripts/skillMods/resistance_fire.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/resistance_incapacitation.py b/scripts/skillMods/resistance_incapacitation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/resistance_incapacitation.py +++ b/scripts/skillMods/resistance_incapacitation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/resistance_poison.py b/scripts/skillMods/resistance_poison.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/resistance_poison.py +++ b/scripts/skillMods/resistance_poison.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/resistance_spice_downer.py b/scripts/skillMods/resistance_spice_downer.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/resistance_spice_downer.py +++ b/scripts/skillMods/resistance_spice_downer.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/shields_assembly.py b/scripts/skillMods/shields_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/shields_assembly.py +++ b/scripts/skillMods/shields_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/shields_experimentation.py b/scripts/skillMods/shields_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/shields_experimentation.py +++ b/scripts/skillMods/shields_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/ship_weapon_damage.py b/scripts/skillMods/ship_weapon_damage.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/ship_weapon_damage.py +++ b/scripts/skillMods/ship_weapon_damage.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/shop_sign.py b/scripts/skillMods/shop_sign.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/shop_sign.py +++ b/scripts/skillMods/shop_sign.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/slope_move.py b/scripts/skillMods/slope_move.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/slope_move.py +++ b/scripts/skillMods/slope_move.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_chronicle_master_hanging_sign.py b/scripts/skillMods/special_sign_chronicle_master_hanging_sign.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_chronicle_master_hanging_sign.py +++ b/scripts/skillMods/special_sign_chronicle_master_hanging_sign.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_chronicle_master_standing_sign.py b/scripts/skillMods/special_sign_chronicle_master_standing_sign.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_chronicle_master_standing_sign.py +++ b/scripts/skillMods/special_sign_chronicle_master_standing_sign.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_efol_hanging.py b/scripts/skillMods/special_sign_efol_hanging.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_efol_hanging.py +++ b/scripts/skillMods/special_sign_efol_hanging.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_efol_standing.py b/scripts/skillMods/special_sign_efol_standing.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_efol_standing.py +++ b/scripts/skillMods/special_sign_efol_standing.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_halloween_hanging_sign.py b/scripts/skillMods/special_sign_halloween_hanging_sign.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_halloween_hanging_sign.py +++ b/scripts/skillMods/special_sign_halloween_hanging_sign.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_halloween_standing_sign.py b/scripts/skillMods/special_sign_halloween_standing_sign.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_halloween_standing_sign.py +++ b/scripts/skillMods/special_sign_halloween_standing_sign.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_imp_empire_day_hanging.py b/scripts/skillMods/special_sign_imp_empire_day_hanging.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_imp_empire_day_hanging.py +++ b/scripts/skillMods/special_sign_imp_empire_day_hanging.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_imp_empire_day_standing.py b/scripts/skillMods/special_sign_imp_empire_day_standing.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_imp_empire_day_standing.py +++ b/scripts/skillMods/special_sign_imp_empire_day_standing.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_reb_empire_day_hanging.py b/scripts/skillMods/special_sign_reb_empire_day_hanging.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_reb_empire_day_hanging.py +++ b/scripts/skillMods/special_sign_reb_empire_day_hanging.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_reb_empire_day_standing.py b/scripts/skillMods/special_sign_reb_empire_day_standing.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_reb_empire_day_standing.py +++ b/scripts/skillMods/special_sign_reb_empire_day_standing.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_tcg_series3.py b/scripts/skillMods/special_sign_tcg_series3.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_tcg_series3.py +++ b/scripts/skillMods/special_sign_tcg_series3.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_tcg_series5.py b/scripts/skillMods/special_sign_tcg_series5.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_tcg_series5.py +++ b/scripts/skillMods/special_sign_tcg_series5.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_wod_sm_01_banner.py b/scripts/skillMods/special_sign_wod_sm_01_banner.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_wod_sm_01_banner.py +++ b/scripts/skillMods/special_sign_wod_sm_01_banner.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_wod_sm_01_hanging.py b/scripts/skillMods/special_sign_wod_sm_01_hanging.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_wod_sm_01_hanging.py +++ b/scripts/skillMods/special_sign_wod_sm_01_hanging.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_wod_sm_01_standing.py b/scripts/skillMods/special_sign_wod_sm_01_standing.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_wod_sm_01_standing.py +++ b/scripts/skillMods/special_sign_wod_sm_01_standing.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_wod_sm_02_banner.py b/scripts/skillMods/special_sign_wod_sm_02_banner.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_wod_sm_02_banner.py +++ b/scripts/skillMods/special_sign_wod_sm_02_banner.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_sign_wod_sm_03_banner.py b/scripts/skillMods/special_sign_wod_sm_03_banner.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_sign_wod_sm_03_banner.py +++ b/scripts/skillMods/special_sign_wod_sm_03_banner.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_vendor_tcg_series1_bomarr_monk.py b/scripts/skillMods/special_vendor_tcg_series1_bomarr_monk.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_vendor_tcg_series1_bomarr_monk.py +++ b/scripts/skillMods/special_vendor_tcg_series1_bomarr_monk.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_vendor_tcg_series1_ewok.py b/scripts/skillMods/special_vendor_tcg_series1_ewok.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_vendor_tcg_series1_ewok.py +++ b/scripts/skillMods/special_vendor_tcg_series1_ewok.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_vendor_tcg_series1_gungan.py b/scripts/skillMods/special_vendor_tcg_series1_gungan.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_vendor_tcg_series1_gungan.py +++ b/scripts/skillMods/special_vendor_tcg_series1_gungan.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_vendor_tcg_series1_jawa.py b/scripts/skillMods/special_vendor_tcg_series1_jawa.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_vendor_tcg_series1_jawa.py +++ b/scripts/skillMods/special_vendor_tcg_series1_jawa.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_vendor_tcg_series1_meatlump.py b/scripts/skillMods/special_vendor_tcg_series1_meatlump.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_vendor_tcg_series1_meatlump.py +++ b/scripts/skillMods/special_vendor_tcg_series1_meatlump.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_vendor_tcg_series1_serving_droid.py b/scripts/skillMods/special_vendor_tcg_series1_serving_droid.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_vendor_tcg_series1_serving_droid.py +++ b/scripts/skillMods/special_vendor_tcg_series1_serving_droid.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_vendor_tcg_series3_battle_droid.py b/scripts/skillMods/special_vendor_tcg_series3_battle_droid.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_vendor_tcg_series3_battle_droid.py +++ b/scripts/skillMods/special_vendor_tcg_series3_battle_droid.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_vendor_tcg_series3_nightsister.py b/scripts/skillMods/special_vendor_tcg_series3_nightsister.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_vendor_tcg_series3_nightsister.py +++ b/scripts/skillMods/special_vendor_tcg_series3_nightsister.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_vendor_tcg_series4_kitonak.py b/scripts/skillMods/special_vendor_tcg_series4_kitonak.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_vendor_tcg_series4_kitonak.py +++ b/scripts/skillMods/special_vendor_tcg_series4_kitonak.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/special_vendor_tcg_series4_toydarian.py b/scripts/skillMods/special_vendor_tcg_series4_toydarian.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/special_vendor_tcg_series4_toydarian.py +++ b/scripts/skillMods/special_vendor_tcg_series4_toydarian.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/species.py b/scripts/skillMods/species.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/species.py +++ b/scripts/skillMods/species.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/species_bothan.py b/scripts/skillMods/species_bothan.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/species_bothan.py +++ b/scripts/skillMods/species_bothan.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/species_human.py b/scripts/skillMods/species_human.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/species_human.py +++ b/scripts/skillMods/species_human.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/species_ithorian.py b/scripts/skillMods/species_ithorian.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/species_ithorian.py +++ b/scripts/skillMods/species_ithorian.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/species_moncal.py b/scripts/skillMods/species_moncal.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/species_moncal.py +++ b/scripts/skillMods/species_moncal.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/species_rodian.py b/scripts/skillMods/species_rodian.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/species_rodian.py +++ b/scripts/skillMods/species_rodian.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/species_sullustan.py b/scripts/skillMods/species_sullustan.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/species_sullustan.py +++ b/scripts/skillMods/species_sullustan.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/species_trandoshan.py b/scripts/skillMods/species_trandoshan.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/species_trandoshan.py +++ b/scripts/skillMods/species_trandoshan.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/species_twilek.py b/scripts/skillMods/species_twilek.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/species_twilek.py +++ b/scripts/skillMods/species_twilek.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/species_wookiee.py b/scripts/skillMods/species_wookiee.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/species_wookiee.py +++ b/scripts/skillMods/species_wookiee.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/species_zabrak.py b/scripts/skillMods/species_zabrak.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/species_zabrak.py +++ b/scripts/skillMods/species_zabrak.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/stamina.py b/scripts/skillMods/stamina.py index b58840b6..b08eb75f 100644 --- a/scripts/skillMods/stamina.py +++ b/scripts/skillMods/stamina.py @@ -1,14 +1,12 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.setMaxHealth(actor.getMaxHealth() + base * 2) - actor.setMaxAction(actor.getMaxAction() + base * 8) +def add(core, actor, skillMod, divisor): + actor.setMaxHealth(actor.getMaxHealth() + skillMod.getBase() * 2) + actor.setMaxAction(actor.getMaxAction() + skillMod.getBase() * 8) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.setMaxHealth(actor.getMaxHealth() - base * 2) - actor.setMaxAction(actor.getMaxAction() - base * 8) + +def deduct(core, actor, skillMod, divisor): + actor.setMaxHealth(actor.getMaxHealth() - skillMod.getBase() * 2) + actor.setMaxAction(actor.getMaxAction() - skillMod.getBase() * 8) return - + \ No newline at end of file diff --git a/scripts/skillMods/stamina_modified.py b/scripts/skillMods/stamina_modified.py index b58840b6..b08eb75f 100644 --- a/scripts/skillMods/stamina_modified.py +++ b/scripts/skillMods/stamina_modified.py @@ -1,14 +1,12 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.setMaxHealth(actor.getMaxHealth() + base * 2) - actor.setMaxAction(actor.getMaxAction() + base * 8) +def add(core, actor, skillMod, divisor): + actor.setMaxHealth(actor.getMaxHealth() + skillMod.getBase() * 2) + actor.setMaxAction(actor.getMaxAction() + skillMod.getBase() * 8) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.setMaxHealth(actor.getMaxHealth() - base * 2) - actor.setMaxAction(actor.getMaxAction() - base * 8) + +def deduct(core, actor, skillMod, divisor): + actor.setMaxHealth(actor.getMaxHealth() - skillMod.getBase() * 2) + actor.setMaxAction(actor.getMaxAction() - skillMod.getBase() * 8) return - + \ No newline at end of file diff --git a/scripts/skillMods/stealth.py b/scripts/skillMods/stealth.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/stealth.py +++ b/scripts/skillMods/stealth.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/stealth_divisor.py b/scripts/skillMods/stealth_divisor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/stealth_divisor.py +++ b/scripts/skillMods/stealth_divisor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/strength.py b/scripts/skillMods/strength.py index 4e702217..469cc568 100644 --- a/scripts/skillMods/strength.py +++ b/scripts/skillMods/strength.py @@ -1,12 +1,10 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.addSkillMod('display_only_block', base / 2) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'display_only_block', skillMod.getBase() / 2) return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.deductSkillMod('display_only_block', base / 2) + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'display_only_block', skillMod.getBase() / 2) return \ No newline at end of file diff --git a/scripts/skillMods/strength_modified.py b/scripts/skillMods/strength_modified.py index 4e702217..45ac9940 100644 --- a/scripts/skillMods/strength_modified.py +++ b/scripts/skillMods/strength_modified.py @@ -1,12 +1,10 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) - actor.addSkillMod('display_only_block', base / 2) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'display_only_block', skillMod.getBase() / 2) return - + def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) - actor.deductSkillMod('display_only_block', base / 2) + core.skillModService.deductSkillMod(actor, 'display_only_block', skillMod.getBase() / 2) return \ No newline at end of file diff --git a/scripts/skillMods/strikethrough_vulnerable.py b/scripts/skillMods/strikethrough_vulnerable.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/strikethrough_vulnerable.py +++ b/scripts/skillMods/strikethrough_vulnerable.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/structure_assembly.py b/scripts/skillMods/structure_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/structure_assembly.py +++ b/scripts/skillMods/structure_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/structure_customization.py b/scripts/skillMods/structure_customization.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/structure_customization.py +++ b/scripts/skillMods/structure_customization.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/structure_experimentation.py b/scripts/skillMods/structure_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/structure_experimentation.py +++ b/scripts/skillMods/structure_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/surveying.py b/scripts/skillMods/surveying.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/surveying.py +++ b/scripts/skillMods/surveying.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/systems_reverse.py b/scripts/skillMods/systems_reverse.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/systems_reverse.py +++ b/scripts/skillMods/systems_reverse.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/tka_armor.py b/scripts/skillMods/tka_armor.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/tka_armor.py +++ b/scripts/skillMods/tka_armor.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/trader.py b/scripts/skillMods/trader.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/trader.py +++ b/scripts/skillMods/trader.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/vendor_item_limit.py b/scripts/skillMods/vendor_item_limit.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/vendor_item_limit.py +++ b/scripts/skillMods/vendor_item_limit.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/weapon_assembly.py b/scripts/skillMods/weapon_assembly.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/weapon_assembly.py +++ b/scripts/skillMods/weapon_assembly.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/weapon_experimentation.py b/scripts/skillMods/weapon_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/weapon_experimentation.py +++ b/scripts/skillMods/weapon_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/weapon_systems.py b/scripts/skillMods/weapon_systems.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/weapon_systems.py +++ b/scripts/skillMods/weapon_systems.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/scripts/skillMods/weapon_systems_experimentation.py b/scripts/skillMods/weapon_systems_experimentation.py index ee7769e2..b5c5e291 100644 --- a/scripts/skillMods/weapon_systems_experimentation.py +++ b/scripts/skillMods/weapon_systems_experimentation.py @@ -1,10 +1,8 @@ import sys -def add(core, actor, name, base): - actor.addSkillMod(name, base) +def add(core, actor, skillMod, value): return - -def deduct(core, actor, name, base): - actor.deductSkillMod(name, base) + +def deduct(core, actor, skillMod, value): return \ No newline at end of file diff --git a/src/resources/objects/SkillMod.java b/src/resources/objects/SkillMod.java index a9550ce4..4b85560d 100644 --- a/src/resources/objects/SkillMod.java +++ b/src/resources/objects/SkillMod.java @@ -21,56 +21,89 @@ ******************************************************************************/ package resources.objects; +import java.util.Map; + import org.apache.mina.core.buffer.IoBuffer; import com.sleepycat.persist.model.Persistent; -@Persistent(version=1) +@Persistent(version=0) public class SkillMod extends Delta { - - private int base; - private float modifier; - private String name; - - public SkillMod() { - } - public SkillMod(String name, int base, int modifier) { - this.name = name; + private int base; + private int modifier; + + public SkillMod(int base, int modifier) { this.base = base; this.modifier = modifier; } + public SkillMod() { + + } + public int getBase() { - return base; + synchronized(objectMutex) { + return base; + } } - + public void setBase(int base) { - this.base = base; + synchronized(objectMutex) { + this.base = base; + } } - - public float getModifier() { - return modifier; + + public void addBase(int base) { + synchronized(objectMutex) { + this.base += base; + } } - - public void setModifier(float modifier) { - this.modifier = modifier; + + public void deductBase(int base) { + synchronized(objectMutex) { + this.base -= base; + } } - - public String getName() { - return name; + + public int getModifier() { + synchronized(objectMutex) { + return modifier; + } } - - public void setName(String name) { - this.name = name; + + public void setModifier(int modifier) { + synchronized(objectMutex) { + this.modifier = modifier; + } + } + + public void addModifier(int modifier) { + synchronized(objectMutex) { + this.modifier += modifier; + } + } + + public void deductModifier(int modifier) { + synchronized(objectMutex) { + this.modifier -= modifier; + } + } + + public float getValue(int divisor) { + synchronized(objectMutex) { + return ((divisor < 1) ? ((float) base) : ((float) base / (float) divisor)); + } } @Override public byte[] getBytes() { - IoBuffer buffer = createBuffer(8); - buffer.putInt(base); - buffer.putInt((int) modifier); - return buffer.array(); + synchronized(objectMutex) { + IoBuffer buffer = createBuffer(8); + buffer.putInt(base); + buffer.putInt(modifier); + return buffer.array(); + } } - + } diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 7680d9bd..7a09e2f8 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -607,41 +607,14 @@ public class CreatureObject extends TangibleObject implements IPersistent { return ((skillMod == null) ? 0 : skillMod.getBase()); } - public void addSkillMod(String name, int base) { - SkillMod mod; - - if (getSkillMod(name) == null) { - mod = new SkillMod(); - mod.setBase(base); - mod.setName(name); - mod.setModifier(0); - } else { - mod = getSkillMod(name); - mod.setBase(mod.getBase() + base); - } - - skillMods.put(name, mod); + public int getSkillModModifier(String name) { + SkillMod skillMod = getSkillMod(name); + return ((skillMod == null) ? 0 : skillMod.getModifier()); } - public void deductSkillMod(String name, int base) { - if (getSkillMod(name) == null) { - return; - } - - SkillMod mod = getSkillMod(name); - mod.setBase(mod.getBase() - base); - - if (mod.getBase() <= 0) { - removeSkillMod(mod); - } else { - skillMods.put(name, mod); - } - } - - public void removeSkillMod(SkillMod mod) { - if (mod != null) { - skillMods.remove(mod.getName()); - } + public float getSkillModValue(String name, int divisor) { + SkillMod skillMod = getSkillMod(name); + return ((skillMod == null) ? 0.0f : skillMod.getValue(divisor)); } public float getSpeedMultiplierBase() { diff --git a/src/services/EquipmentService.java b/src/services/EquipmentService.java index 380dae39..4a2fdc69 100644 --- a/src/services/EquipmentService.java +++ b/src/services/EquipmentService.java @@ -154,7 +154,7 @@ public class EquipmentService implements INetworkDispatch { if(equipping) { - if(item.getStringAttribute("cat_wpn_damage.wpn_category") != null) creature.addSkillMod("display_only_critical", getWeaponCriticalChance(creature, item)); + if(item.getStringAttribute("cat_wpn_damage.wpn_category") != null) core.skillModService.addSkillMod(creature, "display_only_critical", getWeaponCriticalChance(creature, item)); if(item.getStringAttribute("proc_name") != null) core.buffService.addBuffToCreature(creature, item.getStringAttribute("proc_name").replace("@ui_buff:", ""), creature); for(Entry e : attributes.entrySet()) @@ -182,7 +182,7 @@ public class EquipmentService implements INetworkDispatch { } else { - if(item.getStringAttribute("cat_wpn_damage.wpn_category") != null) creature.deductSkillMod("display_only_critical", getWeaponCriticalChance(creature, item)); + if(item.getStringAttribute("cat_wpn_damage.wpn_category") != null) core.skillModService.deductSkillMod(creature, "display_only_critical", getWeaponCriticalChance(creature, item)); if(item.getStringAttribute("proc_name") != null) core.buffService.removeBuffFromCreatureByName(creature, item.getStringAttribute("proc_name").replace("@ui_buff:", "")); for(Entry e : attributes.entrySet()) diff --git a/src/services/SkillModService.java b/src/services/SkillModService.java index cdded3a9..4e173d0d 100644 --- a/src/services/SkillModService.java +++ b/src/services/SkillModService.java @@ -21,48 +21,135 @@ ******************************************************************************/ package services; +import java.util.HashMap; import java.util.Map; import resources.common.FileUtilities; +import resources.objects.SkillMod; import resources.objects.creature.CreatureObject; import main.NGECore; +import engine.clientdata.ClientFileManager; +import engine.clientdata.visitors.DatatableVisitor; import engine.resources.service.INetworkDispatch; import engine.resources.service.INetworkRemoteEvent; public class SkillModService implements INetworkDispatch { private NGECore core; - + private DatatableVisitor visitor; + private Map skillModMap = new HashMap(); + public SkillModService(NGECore core) { this.core = core; + + try { + visitor = ClientFileManager.loadFile("datatables/expertise/skill_mod_listing.iff", DatatableVisitor.class); + + for (int i = 0; i < visitor.getRowCount(); i++) { + if (visitor.getObject(i, 0) != null) { + skillModMap.put((String) visitor.getObject(i, 0), i); + } + } + } catch (InstantiationException | IllegalAccessException e) { + e.printStackTrace(); + } } - public void addSkillMod(CreatureObject creature, String skillMod, int value) { + /* + * @description Adds a skillMod. + * @param creature Creature to add to. + * @param name Name of the skillMod + * @param base Base to add to it. + * @param modifier Modifier to add to it. + */ + public void addSkillMod(CreatureObject creature, String name, int base, int modifier) { + int divisor = (skillModMap.get(name) == null) ? 0 : (Integer) visitor.getObject(skillModMap.get(name), 5); - if(FileUtilities.doesFileExist("scripts/skillMods/" + skillMod + ".py")) - core.scriptService.callScript("scripts/skillMods/", skillMod, "add", core, creature, skillMod, value); - else - creature.addSkillMod(skillMod, value); + if (FileUtilities.doesFileExist("scripts/skillMods/" + name + ".py")) { + core.scriptService.callScript("scripts/skillMods/", name, "add", core, creature, new SkillMod(base, modifier), divisor); + } + + synchronized(creature.getMutex()) { + SkillMod skillMod = creature.getSkillMods().get(name); + + if (base > 0 || modifier > 0) { + if (skillMod == null) { + creature.getSkillMods().put(name, new SkillMod(base, modifier)); + } else { + skillMod.addBase(base); + skillMod.addModifier(modifier); + creature.getSkillMods().put(name, skillMod); + } + } + } } - public void deductSkillMod(CreatureObject creature, String skillMod, int value) { - - if(FileUtilities.doesFileExist("scripts/skillMods/" + skillMod + ".py")) - core.scriptService.callScript("scripts/skillMods/", skillMod, "deduct", core, creature, skillMod, value); - else - creature.deductSkillMod(skillMod, value); - - + public void addSkillMod(CreatureObject creature, String name, int base) { + addSkillMod(creature, name, base, 0); } - + + public void addSkillMod(CreatureObject creature, String name, SkillMod skillMod) { + addSkillMod(creature, name, skillMod.getBase(), skillMod.getModifier()); + } + + public SkillMod getSkillMod(CreatureObject actor, String name) { + return actor.getSkillMods().get(name); + } + + public int getSkillModBase(CreatureObject creature, String name) { + return creature.getSkillModBase(name); + } + + public int getSkillModModifier(CreatureObject creature, String name) { + return creature.getSkillModModifier(name); + } + + public float getSkillModValue(CreatureObject creature, String name) { + int divisor = (skillModMap.get(name) == null) ? 0 : (Integer) visitor.getObject(skillModMap.get(name), 5); + return creature.getSkillModValue(name, divisor); + } + + public void deductSkillMod(CreatureObject creature, String name, int base) { + deductSkillMod(creature, name, base, 0); + } + + public void deductSkillMod(CreatureObject creature, String name, int base, int modifier) { + int divisor = (skillModMap.get(name) == null) ? 0 : (Integer) visitor.getObject(skillModMap.get(name), 5); + + if (FileUtilities.doesFileExist("scripts/skillMods/" + name + ".py")) { + core.scriptService.callScript("scripts/skillMods/", name, "deduct", core, creature, new SkillMod(base, modifier), divisor); + } + + synchronized(creature.getMutex()) { + SkillMod skillMod = creature.getSkillMods().get(name); + + if (skillMod == null || base <= 0 || modifier <= 0) { + return; + } else { + skillMod.deductBase(base); + skillMod.deductModifier(modifier); + + if (skillMod.getBase() > 0 || skillMod.getModifier() > 0) { + creature.getSkillMods().put(name, skillMod); + } else { + removeSkillMod(creature, name); + } + } + } + } + + public void removeSkillMod(CreatureObject creature, String name) { + creature.getSkillMods().remove(name); + } + @Override public void insertOpcodes(Map arg0, Map arg1) { } - + @Override public void shutdown() { } - + } diff --git a/src/services/resources/ResourceService.java b/src/services/resources/ResourceService.java index 8b06a4a0..245690ce 100644 --- a/src/services/resources/ResourceService.java +++ b/src/services/resources/ResourceService.java @@ -10765,7 +10765,7 @@ public class ResourceService implements INetworkDispatch { return 0; } int skillMod=crafter.getSkillModBase("surveying"); - crafter.addSkillMod("surveying",100); + core.skillModService.addSkillMod(crafter, "surveying",100); skillMod=(int)(Math.round(crafter.getSkillMod("surveying").getModifier())); skillMod=35; // TEST! float concentration=sampleResource.deliverConcentrationForSurvey(crafter.getPlanetId(), crafter.getPosition().x, crafter.getPosition().z); From 5203f23524482cf00f1db9d7aaf1693a0a2390f3 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 26 Apr 2014 00:09:22 +0100 Subject: [PATCH 25/27] Minor other skillMod changes --- .../objects/creature/CreatureMessageBuilder.java | 8 +++++--- src/services/command/CommandService.java | 3 +-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/resources/objects/creature/CreatureMessageBuilder.java b/src/resources/objects/creature/CreatureMessageBuilder.java index 8d6a01c6..092266d4 100644 --- a/src/resources/objects/creature/CreatureMessageBuilder.java +++ b/src/resources/objects/creature/CreatureMessageBuilder.java @@ -25,6 +25,8 @@ import java.nio.ByteOrder; +import java.util.Map.Entry; + import org.apache.mina.core.buffer.IoBuffer; import com.sleepycat.persist.model.Persistent; @@ -160,10 +162,10 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { buffer.putInt(creature.getSkillMods().size()); buffer.putInt(creature.getSkillMods().getUpdateCounter()); - for (SkillMod skillMod : creature.getSkillMods().values()) { + for (Entry skillMod : creature.getSkillMods().entrySet()) { buffer.put((byte) 0); - buffer.put(getAsciiString(skillMod.getName())); - buffer.put(skillMod.getBytes()); + buffer.put(getAsciiString(skillMod.getKey())); + buffer.put(skillMod.getValue().getBytes()); } buffer.putFloat(creature.getSpeedMultiplierBase()); diff --git a/src/services/command/CommandService.java b/src/services/command/CommandService.java index 01610e70..36db0db7 100644 --- a/src/services/command/CommandService.java +++ b/src/services/command/CommandService.java @@ -423,8 +423,7 @@ public class CommandService implements INetworkDispatch { } public void processCombatCommand(CreatureObject attacker, SWGObject target, CombatCommand command, int actionCounter, String commandArgs) { - if(FileUtilities.doesFileExist("scripts/commands/combat/" + command.getCommandName() + ".py")) - { + if (FileUtilities.doesFileExist("scripts/commands/combat/" + command.getCommandName() + ".py")) { core.scriptService.callScript("scripts/commands/combat/", command.getCommandName(), "setup", core, attacker, target, command); } From ab797e7862cd08c4c0b8e18b4e4d58d9834eed95 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 26 Apr 2014 00:15:05 +0100 Subject: [PATCH 26/27] Removed static NPC folder --- scripts/staticNPCs/junk_dealer.py | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 scripts/staticNPCs/junk_dealer.py diff --git a/scripts/staticNPCs/junk_dealer.py b/scripts/staticNPCs/junk_dealer.py deleted file mode 100644 index d2965171..00000000 --- a/scripts/staticNPCs/junk_dealer.py +++ /dev/null @@ -1,6 +0,0 @@ - - - - -object = stcSvc.spawnObject('object/mobile/shared_respec_seller_f_1.iff', 'tatooine', long(0), float(3533.14), float(5), float(-4788.86), float(-0.3327), float(0.9288)) -object.setOptionsBitmask(264) \ No newline at end of file From 61748a35457d3e7c53b46c16414ace8f9ce48955 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 26 Apr 2014 00:25:25 +0100 Subject: [PATCH 27/27] Some more skillMod improvements --- src/resources/objects/SkillMod.java | 2 -- src/services/SkillModService.java | 4 ++++ src/services/object/ObjectService.java | 29 +++++++++----------------- 3 files changed, 14 insertions(+), 21 deletions(-) diff --git a/src/resources/objects/SkillMod.java b/src/resources/objects/SkillMod.java index 4b85560d..1a2fef63 100644 --- a/src/resources/objects/SkillMod.java +++ b/src/resources/objects/SkillMod.java @@ -21,8 +21,6 @@ ******************************************************************************/ package resources.objects; -import java.util.Map; - import org.apache.mina.core.buffer.IoBuffer; import com.sleepycat.persist.model.Persistent; diff --git a/src/services/SkillModService.java b/src/services/SkillModService.java index 4e173d0d..b72dc14e 100644 --- a/src/services/SkillModService.java +++ b/src/services/SkillModService.java @@ -109,6 +109,10 @@ public class SkillModService implements INetworkDispatch { return creature.getSkillModValue(name, divisor); } + public void deductSkillMod(CreatureObject creature, String name, SkillMod skillMod) { + deductSkillMod(creature, name, skillMod.getBase(), skillMod.getModifier()); + } + public void deductSkillMod(CreatureObject creature, String name, int base) { deductSkillMod(creature, name, base, 0); } diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index 3de95fd7..dde507fb 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -452,34 +452,25 @@ public class ObjectService implements INetworkDispatch { // Any such settings can be completely reset with setOptionsBitmask // in scripts and modified with setOptions(Options.X, true/false) if (Template.startsWith("object/creature/") || Template.startsWith("object/mobile/")) { - if (Template.startsWith("object/mobile/")) { - ((CreatureObject) object).setOptionsBitmask(Options.ATTACKABLE); - } if (Template.startsWith("object/mobile/beast_master/")) { ((CreatureObject) object).setOptionsBitmask(Options.NONE); - } - if (Template.startsWith("object/mobile/vendor/")) { + } else if (Template.startsWith("object/mobile/vendor/")) { ((CreatureObject) object).setOptionsBitmask(Options.INVULNERABLE | Options.USABLE); - } - if (Template.startsWith("object/mobile/vehicle/")) { + } else if (Template.startsWith("object/mobile/vehicle/")) { ((CreatureObject) object).setOptionsBitmask(Options.ATTACKABLE | Options.MOUNT); - } - if (Template.startsWith("object/mobile/hologram/")) { + } else if (Template.startsWith("object/mobile/hologram/")) { ((CreatureObject) object).setOptionsBitmask(Options.INVULNERABLE); - } - if (Template.startsWith("object/creature/npc/theme_park/")) { + } else if (Template.startsWith("object/mobile/")) { + ((CreatureObject) object).setOptionsBitmask(Options.ATTACKABLE); + } else if (Template.startsWith("object/creature/npc/theme_park/")) { ((CreatureObject) object).setOptionsBitmask(Options.INVULNERABLE); - } - if (Template.startsWith("object/creature/npc/general/")) { + } else if (Template.startsWith("object/creature/npc/general/")) { ((CreatureObject) object).setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE); - } - if (Template.startsWith("object/creature/droid/crafted/")) { + } else if (Template.startsWith("object/creature/droid/crafted/")) { ((CreatureObject) object).setOptionsBitmask(Options.NONE); - } - if (Template.startsWith("object/creature/droid/")) { + } else if (Template.startsWith("object/creature/droid/")) { ((CreatureObject) object).setOptionsBitmask(Options.ATTACKABLE | Options.INVULNERABLE); - } - if (Template.startsWith("object/creature/player/")) { + } else if (Template.startsWith("object/creature/player/")) { ((CreatureObject) object).setOptionsBitmask(Options.ATTACKABLE); } } else if (object instanceof TangibleObject) {