From 0c2f4b29a06938097bddc08397030f1192663d3d Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sat, 26 Apr 2014 01:18:18 +0200 Subject: [PATCH 01/19] Grant zoning added test with 2 player chars to increase population to 2 citizens after zoning and declare residence. --- scripts/commands/grantzoningrights.py | 40 ++++++++++ src/services/housing/HousingService.java | 77 +++++++++++++++---- src/services/playercities/PlayerCity.java | 22 +++++- .../playercities/PlayerCityService.java | 32 ++++++-- 4 files changed, 148 insertions(+), 23 deletions(-) create mode 100644 scripts/commands/grantzoningrights.py diff --git a/scripts/commands/grantzoningrights.py b/scripts/commands/grantzoningrights.py new file mode 100644 index 00000000..21cbbb8d --- /dev/null +++ b/scripts/commands/grantzoningrights.py @@ -0,0 +1,40 @@ +import sys +from java.lang import System +from resources.common import OutOfBand +from resources.common import ProsePackage +import main.NGECore + +def setup(): + return + +def run(core, actor, target, commandString): + + if target == None: + return + + #if !actor.hasSkill('Politician'): + #You must be a Politician to enable city zoning. + #actor.sendSystemMessage('@city/city:zoning_skill', 0) + #return + + thisCity = main.NGECore.getInstance().playerCityService.getCityObjectIsIn(actor) + + if thisCity == None: + #not_in_city_limits + actor.sendSystemMessage('@city/city:not_in_city_limits', 0) + return + + if thisCity.getMayorID()!=actor.getObjectID() and not thisCity.isMilitiaMember(actor.getObjectID()): + #You must be the mayor of the city or a member of the city militia to grant zoning rights. + actor.sendSystemMessage('@city/city:grant_rights_fail', 0) + actor.sendSystemMessage('thisCity.getMayorID() %s' % thisCity.getMayorID(), 0) + actor.sendSystemMessage('actor.getObjectID() %s' % actor.getObjectID(), 0) + return + + #You have granted %TO zoning rights for 24 hours. + actor.sendSystemMessage(OutOfBand.ProsePackage("@city/city:rights_granted_self", "TO", target.getCustomName()), 0) + target.setAttachment('Has24HZoningFor',thisCity.getCityID()) + target.setAttachment('Has24HZoningUntil',System.currentTimeMillis()+60*60*24) + target.sendSystemMessage(OutOfBand.ProsePackage("@city/city:rights_granted", "TO", thisCity.getCityName()), 0) + + return \ No newline at end of file diff --git a/src/services/housing/HousingService.java b/src/services/housing/HousingService.java index ff85019e..47fdaceb 100644 --- a/src/services/housing/HousingService.java +++ b/src/services/housing/HousingService.java @@ -22,6 +22,7 @@ package services.housing; import java.io.IOException; +import java.math.BigInteger; import java.nio.file.FileVisitResult; import java.nio.file.FileVisitor; import java.nio.file.Files; @@ -85,6 +86,10 @@ public class HousingService implements INetworkDispatch { HouseTemplate houseTemplate = housingTemplates.get(deed.getTemplate()); Player_House_Deed playerHourseDeed = (Player_House_Deed)core.objectService.getObject(deed.getObjectID()); int structureLotCost = houseTemplate.getLotCost(); + + if (deed.getTemplate().contains("cityhall")) + structureLotCost = 0; + String structureTemplate = houseTemplate.getBuildingTemplate(); if(!houseTemplate.canBePlacedOn(actor.getPlanet().getName())) @@ -112,10 +117,55 @@ public class HousingService implements INetworkDispatch { float positionY = core.terrainService.getHeight(actor.getPlanetId(), positionX, positionZ) + 2f; - // Create the building + boolean canBuild = true; + + // Check for city founders joining a new city + PlayerCity cityActorIsIn = core.playerCityService.getCityObjectIsIn(actor); + + if (cityActorIsIn != null){ + // Actor is inside the bounds of a city, so zoning must be checked + //actor.setAttachment("Has24HZoningFor",cityActorIsIn.getCityID()); // for testing + //actor.setAttachment("Has24HZoningUntil",System.currentTimeMillis()+1000000); // for testing + if (actor.getAttachment("Has24HZoningFor")==null || actor.getAttachment("Has24HZoningFor")==null) + return; + int cityActorHasZoning = (int)actor.getAttachment("Has24HZoningFor"); + BigInteger zoningUntilBI = (BigInteger) actor.getAttachment("Has24HZoningUntil"); + long zoningUntil = zoningUntilBI.longValue(); + if (cityActorHasZoning==cityActorIsIn.getCityID() && System.currentTimeMillis() returnList = new Vector(); + returnList.add("txtInput:LocalText"); + window.addHandler(0, "", Trigger.TRIGGER_OK, returnList, new SUICallback() { + @Override + public void process(SWGObject owner, int eventType, Vector returnList) { + if (returnList.size()==0) + return; + PlayerCity playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity((CreatureObject) owner); + playerCity.setCityName(returnList.get(0)); + //owner.sendSystemMessage("@city/city:name_changed", 0); + core.suiService.closeSUIWindow(owner, 0); + newCitySUI2((CreatureObject) owner, playerCity); + } + }); + core.suiService.openSUIWindow(window); + } + + public void newCitySUI2(CreatureObject citizen, final PlayerCity newCity) { final SUIWindow window = core.suiService.createSUIWindow("Script.messageBox", citizen, citizen, 0); window.setProperty("bg.caption.lblTitle:Text", "@city/city:rank0"); window.setProperty("Prompt.lblPrompt:Text", "@city/city:new_city_body"); @@ -135,6 +156,7 @@ public class PlayerCityService implements INetworkDispatch { }); core.suiService.openSUIWindow(window); } + @Override public void insertOpcodes(Map arg0, From 7dca8b362fc5ef8d6f2c1f4407c76df814a6b677 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 26 Apr 2014 00:36:13 +0100 Subject: [PATCH 02/19] Moved resource functions to resourceService --- src/main/NGECore.java | 4 +- src/services/object/ObjectService.java | 99 ++----------------- src/services/resources/ResourceService.java | 102 +++++++++++++++++++- 3 files changed, 106 insertions(+), 99 deletions(-) diff --git a/src/main/NGECore.java b/src/main/NGECore.java index e51fd562..c99d4912 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -441,8 +441,8 @@ public class NGECore { objectService.loadBuildings(); if (optionsConfigLoaded && options.getInt("LOAD.RESOURCE.SYSTEM") > 0) { - objectService.loadResourceRoots(); - objectService.loadResources(); + resourceService.loadResourceRoots(); + resourceService.loadResources(); } terrainService.loadSnapShotObjects(); diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index dde507fb..d89bce74 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -143,6 +143,7 @@ public class ObjectService implements INetworkDispatch { public ObjectService(final NGECore core) { this.core = core; databaseConnection = core.getDatabase1(); + Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { @@ -158,8 +159,8 @@ public class ObjectService implements INetworkDispatch { } } }); - long highestId; + long highestId; try { PreparedStatement ps = databaseConnection.preparedStatement("SELECT id FROM highestid WHERE id=(SELECT max(id) FROM highestid)"); @@ -171,7 +172,6 @@ public class ObjectService implements INetworkDispatch { } catch (SQLException e) { e.printStackTrace(); } - } public void loadBuildings() { @@ -196,99 +196,10 @@ public class ObjectService implements INetworkDispatch { }); } + cursor.close(); } - // loads the resource roots at server start - public void loadResourceRoots() { - EntityCursor cursor = core.getResourceRootsODB().getCursor(Integer.class, ResourceRoot.class); - Iterator it = cursor.iterator(); - int loadedResourceRootsCounter = 0; - System.out.println("Loading resource roots..."); - while(it.hasNext()) { - final ResourceRoot resourceRoot = it.next(); - System.err.println("resourceRoot loaded ID: " + resourceRoot.getResourceRootID() + " " + resourceRoot.getResourceFileName()); - core.resourceService.add_resourceRoot(resourceRoot); - loadedResourceRootsCounter++; - } - - if (loadedResourceRootsCounter==0){ - //big bang will take care of it - } - //System.err.println("loadedResourceRootsCounter " + loadedResourceRootsCounter); - cursor.close(); - System.out.println("Finished loading resource roots."); - } - - // loads the currently spawned resources at server start - public void loadResources() { - EntityCursor cursor = core.getResourcesODB().getCursor(Long.class, GalacticResource.class); - Iterator it = cursor.iterator(); - int loadedResourceCounter = 0; - System.out.println("Loading resources..."); - while(it.hasNext()) { - final GalacticResource resource = it.next(); - System.err.println("resource " + resource.getName() + " rootID " + resource.getResourceRootID()); - objectList.put(resource.getId(), resource); - - // re-reference ResourceRoot - int resourceRootID = resource.getResourceRootID(); - ResourceRoot resourceRoot = core.resourceService.retrieveResourceRootReference(resourceRootID); - resource.setResourceRoot(resourceRoot); - - // recreate the collections - core.resourceService.addSpawnedResource(resource); - byte pool = resource.getPoolNumber(); - switch (pool){ - case 1: - core.resourceService.add_spawnedResourcesPool1(resource); - break; - case 2: - core.resourceService.add_spawnedResourcesPool2(resource); - break; - case 3: - core.resourceService.add_spawnedResourcesPool3(resource); - break; - case 4: - core.resourceService.add_spawnedResourcesPool4(resource); - break; - default: - System.err.println("Loaded resource " + resource.getName() + " has no valid pool value!"); - resource.setPoolNumber((byte)4); // Make it a pool 4 - } - loadedResourceCounter++; - } - - if (loadedResourceCounter==0){ - core.resourceService.kickOffBigBang(); // spawn resources initially once - } - - cursor.close(); - System.out.println("Finished loading resources."); - } - - public SWGObject createResource() { - SWGObject object = null; - Planet planet = core.terrainService.getPlanetByID(1); - Point3D position = new Point3D(0,0,0); - Quaternion orientation = new Quaternion(1,1,1,1); - String Template = "object/resource_container/base/shared_base_resource_container.iff"; - boolean isSnapshot = false; - - long objectID = generateObjectID(); - - object = new GalacticResource(objectID, planet, position, orientation, Template); - - object.setPlanetId(planet.getID()); - - object.setAttachment("customServerTemplate", Template); - - object.setisInSnapshot(isSnapshot); - - objectList.put(objectID, object); - return object; - } - public void loadServerTemplates() { System.out.println("Loading server templates..."); loadServerTemplateTasks.forEach(Runnable::run); @@ -538,7 +449,9 @@ public class ObjectService implements INetworkDispatch { return objectList.get(objectID); } - public Map getObjectList() { return objectList; } + public Map getObjectList() { + return objectList; + } public void destroyObject(final SWGObject object, int seconds) { scheduler.schedule(new Runnable() { diff --git a/src/services/resources/ResourceService.java b/src/services/resources/ResourceService.java index 245690ce..0cb2cab1 100644 --- a/src/services/resources/ResourceService.java +++ b/src/services/resources/ResourceService.java @@ -34,6 +34,9 @@ import com.sleepycat.persist.EntityCursor; import main.NGECore; import engine.resources.common.CRC; import engine.resources.objects.SWGObject; +import engine.resources.scene.Planet; +import engine.resources.scene.Point3D; +import engine.resources.scene.Quaternion; import engine.resources.service.INetworkDispatch; import engine.resources.service.INetworkRemoteEvent; import resources.objects.creature.CreatureObject; @@ -128,6 +131,97 @@ public class ResourceService implements INetworkDispatch { //"Cold Res","Cond","Decay Res","Heat Res","Malle","Shock Res","Unit Tough","Entangle Res","Pot E","OQ","Flavor" + // loads the resource roots at server start + public void loadResourceRoots() { + EntityCursor cursor = core.getResourceRootsODB().getCursor(Integer.class, ResourceRoot.class); + Iterator it = cursor.iterator(); + int loadedResourceRootsCounter = 0; + System.out.println("Loading resource roots..."); + while(it.hasNext()) { + final ResourceRoot resourceRoot = it.next(); + System.err.println("resourceRoot loaded ID: " + resourceRoot.getResourceRootID() + " " + resourceRoot.getResourceFileName()); + core.resourceService.add_resourceRoot(resourceRoot); + loadedResourceRootsCounter++; + } + + if (loadedResourceRootsCounter==0){ + //big bang will take care of it + } + //System.err.println("loadedResourceRootsCounter " + loadedResourceRootsCounter); + cursor.close(); + System.out.println("Finished loading resource roots."); + } + + // loads the currently spawned resources at server start + public void loadResources() { + EntityCursor cursor = core.getResourcesODB().getCursor(Long.class, GalacticResource.class); + Iterator it = cursor.iterator(); + int loadedResourceCounter = 0; + System.out.println("Loading resources..."); + while(it.hasNext()) { + final GalacticResource resource = it.next(); + System.err.println("resource " + resource.getName() + " rootID " + resource.getResourceRootID()); + core.objectService.getObjectList().put(resource.getId(), resource); + + // re-reference ResourceRoot + int resourceRootID = resource.getResourceRootID(); + ResourceRoot resourceRoot = core.resourceService.retrieveResourceRootReference(resourceRootID); + resource.setResourceRoot(resourceRoot); + + // recreate the collections + core.resourceService.addSpawnedResource(resource); + byte pool = resource.getPoolNumber(); + switch (pool){ + case 1: + core.resourceService.add_spawnedResourcesPool1(resource); + break; + case 2: + core.resourceService.add_spawnedResourcesPool2(resource); + break; + case 3: + core.resourceService.add_spawnedResourcesPool3(resource); + break; + case 4: + core.resourceService.add_spawnedResourcesPool4(resource); + break; + default: + System.err.println("Loaded resource " + resource.getName() + " has no valid pool value!"); + resource.setPoolNumber((byte)4); // Make it a pool 4 + } + + loadedResourceCounter++; + } + + if (loadedResourceCounter==0){ + core.resourceService.kickOffBigBang(); // spawn resources initially once + } + + cursor.close(); + System.out.println("Finished loading resources."); + } + + public SWGObject createResource() { + SWGObject object = null; + Planet planet = core.terrainService.getPlanetByID(1); + Point3D position = new Point3D(0,0,0); + Quaternion orientation = new Quaternion(1,1,1,1); + String Template = "object/resource_container/base/shared_base_resource_container.iff"; + boolean isSnapshot = false; + + long objectID = core.objectService.generateObjectID(); + + object = new GalacticResource(objectID, planet, position, orientation, Template); + + object.setPlanetId(planet.getID()); + + object.setAttachment("customServerTemplate", Template); + + object.setisInSnapshot(isSnapshot); + + core.objectService.getObjectList().put(objectID, object); + + return object; + } public void createCollections(){ @@ -11083,7 +11177,7 @@ public class ResourceService implements INetworkDispatch { public GalacticResource spawnResourcePool1(ResourceRoot root){ - GalacticResource resource = (GalacticResource) core.objectService.createResource(); + GalacticResource resource = (GalacticResource) createResource(); try { resource.setResourceRoot(root); resource.setPoolNumber((byte)1); @@ -11112,7 +11206,7 @@ public class ResourceService implements INetworkDispatch { public GalacticResource spawnResourcePool2(ResourceRoot root){ - GalacticResource resource = (GalacticResource) core.objectService.createResource(); + GalacticResource resource = (GalacticResource) createResource(); try { resource.setResourceRoot(root); resource.setPoolNumber((byte)2); @@ -11141,7 +11235,7 @@ public class ResourceService implements INetworkDispatch { public GalacticResource spawnResourcePool3(ResourceRoot root){ - GalacticResource resource = (GalacticResource) core.objectService.createResource(); + GalacticResource resource = (GalacticResource) createResource(); try { resource.setResourceRoot(root); resource.setPoolNumber((byte)3); @@ -11170,7 +11264,7 @@ public class ResourceService implements INetworkDispatch { public GalacticResource spawnResourcePool4(ResourceRoot root,int planetID){ - GalacticResource resource = (GalacticResource) core.objectService.createResource(); + GalacticResource resource = (GalacticResource) createResource(); try { resource.setResourceRoot(root); resource.setPoolNumber((byte)4); From 9b3397923afd7272dda6f4f95977b41998df07f2 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 26 Apr 2014 01:07:40 +0100 Subject: [PATCH 03/19] Fixed Agility.py --- scripts/skillMods/agility.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/skillMods/agility.py b/scripts/skillMods/agility.py index 9f9e8568..3ea2c7a9 100644 --- a/scripts/skillMods/agility.py +++ b/scripts/skillMods/agility.py @@ -1,14 +1,14 @@ import sys 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) + core.skillModService.addSkillMod('display_only_dodge', skillMod.getBase()) + core.skillModService.addSkillMod('display_only_parry', skillMod.getBase() / 2) + core.skillModService.addSkillMod('display_only_evasion', skillMod.getBase()) return 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) + core.skillModService.deductSkillMod('display_only_dodge', skillMod.getBase()) + core.skillModService.deductSkillMod('display_only_parry', skillMod.getBase() / 2) + core.skillModService.deductSkillMod('display_only_evasion', skillMod.getBase()) return \ No newline at end of file From 41589dd0cbebc652f41527760c38ddc0fe54b193 Mon Sep 17 00:00:00 2001 From: tacef Date: Sat, 26 Apr 2014 09:27:31 +0200 Subject: [PATCH 04/19] Naboo House Deed's added Also fixed typos corellia house deed's --- .../player_house_corellia_large_style_01.py | 2 +- .../player_house_corellia_large_style_02.py | 5 ++--- .../player_house_corellia_medium_style_01.py | 1 + .../houses/player_house_naboo_large_style_01.py | 15 +++++++++++++++ .../houses/player_house_naboo_medium_style_01.py | 14 ++++++++++++++ .../houses/player_house_naboo_small_style_01.py | 14 ++++++++++++++ .../houses/player_house_naboo_small_style_02.py | 14 ++++++++++++++ .../player_house_naboo_small_window_style_01.py | 14 ++++++++++++++ .../player/player_house_naboo_large_style_01.py | 7 +++++++ .../player/player_house_naboo_medium_style_01.py | 7 +++++++ .../player/player_house_naboo_small_style_01.py | 7 +++++++ .../player/player_house_naboo_small_style_02.py | 7 +++++++ .../player_house_naboo_small_window_style_01.py | 7 +++++++ .../player_house_deed/naboo_house_large_deed.py | 11 ++++++++++- .../player_house_deed/naboo_house_medium_deed.py | 8 ++++++++ .../player_house_deed/naboo_house_small_deed.py | 8 ++++++++ .../naboo_house_small_style_02_deed.py | 8 ++++++++ .../naboo_house_small_window_deed.py | 8 ++++++++ 18 files changed, 152 insertions(+), 5 deletions(-) create mode 100644 scripts/houses/player_house_naboo_large_style_01.py create mode 100644 scripts/houses/player_house_naboo_medium_style_01.py create mode 100644 scripts/houses/player_house_naboo_small_style_01.py create mode 100644 scripts/houses/player_house_naboo_small_style_02.py create mode 100644 scripts/houses/player_house_naboo_small_window_style_01.py diff --git a/scripts/houses/player_house_corellia_large_style_01.py b/scripts/houses/player_house_corellia_large_style_01.py index c47098c5..44d9fd81 100644 --- a/scripts/houses/player_house_corellia_large_style_01.py +++ b/scripts/houses/player_house_corellia_large_style_01.py @@ -3,7 +3,7 @@ from services.housing import HouseTemplate from engine.resources.scene import Point3D def setup(core): - houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_large_deed.iff", "object/building/player/shared_player_house_corellia_large_style_01.iff", 2) + houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_large_deed.iff", "object/building/player/shared_player_house_corellia_large_style_01.iff", 5) houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(6), float(3), float(13.4))) houseTemplate.addPlaceablePlanet("corellia") diff --git a/scripts/houses/player_house_corellia_large_style_02.py b/scripts/houses/player_house_corellia_large_style_02.py index 6e005a55..7d35d0de 100644 --- a/scripts/houses/player_house_corellia_large_style_02.py +++ b/scripts/houses/player_house_corellia_large_style_02.py @@ -3,12 +3,11 @@ from services.housing import HouseTemplate from engine.resources.scene import Point3D def setup(core): - houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_large_style_02_deed.iff", "object/building/player/shared_player_house_generic_large_style_02.iff", 2) + houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_large_style_02_deed.iff", "object/building/player/shared_player_house_generic_large_style_02.iff", 5) houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-13.4), float(3), float(9.1))) houseTemplate.addPlaceablePlanet("corellia") houseTemplate.addPlaceablePlanet("talus") - houseTemplate.setDefaultItemLimit(500) - + houseTemplate.setDefaultItemLimit(500) core.housingService.addHousingTemplate(houseTemplate) return \ No newline at end of file diff --git a/scripts/houses/player_house_corellia_medium_style_01.py b/scripts/houses/player_house_corellia_medium_style_01.py index d8a293c7..27988156 100644 --- a/scripts/houses/player_house_corellia_medium_style_01.py +++ b/scripts/houses/player_house_corellia_medium_style_01.py @@ -6,6 +6,7 @@ def setup(core): houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_medium_deed.iff", "object/building/player/shared_player_house_corellia_medium_style_01.iff", 2) houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(5.3),float(2.26),float(7.7))) + houseTemplate.addPlaceablePlanet("corellia") houseTemplate.addPlaceablePlanet("talus") houseTemplate.setDefaultItemLimit(200) core.housingService.addHousingTemplate(houseTemplate) diff --git a/scripts/houses/player_house_naboo_large_style_01.py b/scripts/houses/player_house_naboo_large_style_01.py new file mode 100644 index 00000000..afaf05dd --- /dev/null +++ b/scripts/houses/player_house_naboo_large_style_01.py @@ -0,0 +1,15 @@ +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_naboo_house_large_deed.iff", "object/building/player/shared_player_house_naboo_large_style_01.iff", 5) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-7), float(3), float(-15.5))) + houseTemplate.addPlaceablePlanet("naboo") + houseTemplate.addPlaceablePlanet("rori") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.setDefaultItemLimit(500) + + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_naboo_medium_style_01.py b/scripts/houses/player_house_naboo_medium_style_01.py new file mode 100644 index 00000000..fd16fd70 --- /dev/null +++ b/scripts/houses/player_house_naboo_medium_style_01.py @@ -0,0 +1,14 @@ +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_naboo_house_medium_deed.iff", "object/building/player/shared_player_house_naboo_medium_style_01.iff", 2) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-2.2),float(3),float(-11.5))) + houseTemplate.addPlaceablePlanet("naboo") + houseTemplate.addPlaceablePlanet("rori") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.setDefaultItemLimit(200) + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_naboo_small_style_01.py b/scripts/houses/player_house_naboo_small_style_01.py new file mode 100644 index 00000000..eb092bce --- /dev/null +++ b/scripts/houses/player_house_naboo_small_style_01.py @@ -0,0 +1,14 @@ +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_naboo_house_small_deed.iff", "object/building/player/shared_player_house_naboo_small_style_01.iff", 2) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.7),float(3),float(8.2))) + houseTemplate.addPlaceablePlanet("naboo") + houseTemplate.addPlaceablePlanet("rori") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.setDefaultItemLimit(200) + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_naboo_small_style_02.py b/scripts/houses/player_house_naboo_small_style_02.py new file mode 100644 index 00000000..f5f35f0f --- /dev/null +++ b/scripts/houses/player_house_naboo_small_style_02.py @@ -0,0 +1,14 @@ +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_naboo_house_small_style_02_deed.iff", "object/building/player/shared_player_house_naboo_small_style_02.iff", 1) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(8.4),float(3),float(7.2))) + houseTemplate.addPlaceablePlanet("naboo") + houseTemplate.addPlaceablePlanet("rori") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.setDefaultItemLimit(100) + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_naboo_small_window_style_01.py b/scripts/houses/player_house_naboo_small_window_style_01.py new file mode 100644 index 00000000..7ffa7dec --- /dev/null +++ b/scripts/houses/player_house_naboo_small_window_style_01.py @@ -0,0 +1,14 @@ +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_naboo_house_small_window_deed.iff", "object/building/player/shared_player_house_naboo_small_window_style_01.iff", 2) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.7),float(3),float(8.2))) + houseTemplate.addPlaceablePlanet("naboo") + houseTemplate.addPlaceablePlanet("rori") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.setDefaultItemLimit(200) + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/object/building/player/player_house_naboo_large_style_01.py b/scripts/object/building/player/player_house_naboo_large_style_01.py index ccad8904..7a05615e 100644 --- a/scripts/object/building/player/player_house_naboo_large_style_01.py +++ b/scripts/object/building/player/player_house_naboo_large_style_01.py @@ -1,4 +1,11 @@ import sys def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -7, 3, -15.5, 0, 1, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 14.8, 4.5, -1.8, 0.707108, -0.707108, 2) + #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_naboo_medium_style_01.py b/scripts/object/building/player/player_house_naboo_medium_style_01.py index ccad8904..fd60d18b 100644 --- a/scripts/object/building/player/player_house_naboo_medium_style_01.py +++ b/scripts/object/building/player/player_house_naboo_medium_style_01.py @@ -1,4 +1,11 @@ import sys def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -2.2, 3, -11.5, 1, 1, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 9.8, 0.7, -10.4, 0, 1, 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_naboo_small_style_01.py b/scripts/object/building/player/player_house_naboo_small_style_01.py index ccad8904..cacc9a2a 100644 --- a/scripts/object/building/player/player_house_naboo_small_style_01.py +++ b/scripts/object/building/player/player_house_naboo_small_style_01.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.7, 3, -8.2, 0, 1, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 0, 0.7, 6.2, 1, 0, 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_naboo_small_style_02.py b/scripts/object/building/player/player_house_naboo_small_style_02.py index ccad8904..90382dc1 100644 --- a/scripts/object/building/player/player_house_naboo_small_style_02.py +++ b/scripts/object/building/player/player_house_naboo_small_style_02.py @@ -1,4 +1,11 @@ import sys def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 8.4, 3, 7.2, 0.2, 0, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 0.4, 0.5, 6.2, 1, 0, 2) + #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_naboo_small_window_style_01.py b/scripts/object/building/player/player_house_naboo_small_window_style_01.py index ccad8904..cacc9a2a 100644 --- a/scripts/object/building/player/player_house_naboo_small_window_style_01.py +++ b/scripts/object/building/player/player_house_naboo_small_window_style_01.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.7, 3, -8.2, 0, 1, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 0, 0.7, 6.2, 1, 0, 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/naboo_house_large_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_large_deed.py index ccad8904..0f0a6353 100644 --- a/scripts/object/tangible/deed/player_house_deed/naboo_house_large_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_large_deed.py @@ -1,4 +1,13 @@ 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_naboo_large_style_01.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_naboo_house_large_deed.iff') + object.setLotRequirement(2) + object.setBMR(8) + return + + + + diff --git a/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_deed.py index ccad8904..22d9b33e 100644 --- a/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_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_naboo_medium_style_01.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_naboo_house_medium_deed.iff') + object.setLotRequirement(2) + object.setBMR(18) + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_deed.py index ccad8904..edff2158 100644 --- a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_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_naboo_small_style_01.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_naboo_house_small_deed.iff') + object.setLotRequirement(2) + object.setBMR(18) + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_style_02_deed.py index ccad8904..adeca170 100644 --- a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_style_02_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_style_02_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_naboo_small_style_02.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_naboo_house_small_style_02_deed.iff') + object.setLotRequirement(2) + object.setBMR(18) + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_window_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_window_deed.py index ccad8904..8ebc7feb 100644 --- a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_window_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_window_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_player_house_naboo_small_window_style_01.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_naboo_house_small_window_deed.iff') + object.setLotRequirement(2) + object.setBMR(18) + return + +def use(core, actor, object): return \ No newline at end of file From 50ddd6f42fc6e145d858188714c64a9fdeb9f741 Mon Sep 17 00:00:00 2001 From: tacef Date: Sat, 26 Apr 2014 15:19:44 +0200 Subject: [PATCH 05/19] Continued Work on Playerhouse deed Altered Objectservice again to support storyteller house deeds --- scripts/houses/player_house_sandcrawler.py | 19 +++++++++++++++++++ .../player_house_tatooine_large_style_01.py | 15 +++++++++++++++ .../player_house_tatooine_medium_style_01.py | 14 ++++++++++++++ .../player_house_tatooine_small_style_01.py | 14 ++++++++++++++ .../player_house_tatooine_small_style_02.py | 14 ++++++++++++++ ...er_house_tatooine_small_window_style_01.py | 14 ++++++++++++++ .../player/player_house_sandcrawler.py | 8 ++++++++ .../player_house_tatooine_large_style_01.py | 7 +++++++ .../player_house_tatooine_medium_style_01.py | 7 +++++++ .../player_house_tatooine_small_style_01.py | 7 +++++++ .../player_house_tatooine_small_style_02.py | 7 +++++++ ...er_house_tatooine_small_window_style_01.py | 7 +++++++ .../tatooine_house_large_deed.py | 8 ++++++++ .../tatooine_house_medium_deed.py | 8 ++++++++ .../tatooine_house_small_deed.py | 8 ++++++++ .../tatooine_house_small_style_02_deed.py | 8 ++++++++ .../tatooine_house_window_small_deed.py | 8 ++++++++ ...structure_deed_player_house_sandcrawler.py | 8 ++++++++ src/services/object/ObjectService.java | 2 +- 19 files changed, 182 insertions(+), 1 deletion(-) create mode 100644 scripts/houses/player_house_sandcrawler.py create mode 100644 scripts/houses/player_house_tatooine_large_style_01.py create mode 100644 scripts/houses/player_house_tatooine_medium_style_01.py create mode 100644 scripts/houses/player_house_tatooine_small_style_01.py create mode 100644 scripts/houses/player_house_tatooine_small_style_02.py create mode 100644 scripts/houses/player_house_tatooine_small_window_style_01.py diff --git a/scripts/houses/player_house_sandcrawler.py b/scripts/houses/player_house_sandcrawler.py new file mode 100644 index 00000000..c14d2b8c --- /dev/null +++ b/scripts/houses/player_house_sandcrawler.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/saga_system/rewards/shared_structure_deed_player_house_sandcrawler.iff", "object/building/player/shared_player_house_sandcrawler.iff", 3) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-8.75), float(3.86), float(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_tatooine_large_style_01.py b/scripts/houses/player_house_tatooine_large_style_01.py new file mode 100644 index 00000000..3085eb20 --- /dev/null +++ b/scripts/houses/player_house_tatooine_large_style_01.py @@ -0,0 +1,15 @@ +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_tatooine_house_large_deed.iff", "object/building/player/shared_player_house_tatooine_large_style_01.iff", 5) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-3), float(3), float(15.8))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.setDefaultItemLimit(500) + + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_tatooine_medium_style_01.py b/scripts/houses/player_house_tatooine_medium_style_01.py new file mode 100644 index 00000000..d173048d --- /dev/null +++ b/scripts/houses/player_house_tatooine_medium_style_01.py @@ -0,0 +1,14 @@ +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_tatooine_house_medium_deed.iff", "object/building/player/shared_player_house_tatooine_medium_style_01.iff", 2) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(4.3),float(2.26),float(12.5))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.setDefaultItemLimit(200) + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_tatooine_small_style_01.py b/scripts/houses/player_house_tatooine_small_style_01.py new file mode 100644 index 00000000..eff8a21d --- /dev/null +++ b/scripts/houses/player_house_tatooine_small_style_01.py @@ -0,0 +1,14 @@ +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_tatooine_house_small_deed.iff", "object/building/player/shared_player_house_tatooine_small_style_01.iff", 2) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.7),float(3),float(7.9))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.setDefaultItemLimit(200) + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_tatooine_small_style_02.py b/scripts/houses/player_house_tatooine_small_style_02.py new file mode 100644 index 00000000..e5484c22 --- /dev/null +++ b/scripts/houses/player_house_tatooine_small_style_02.py @@ -0,0 +1,14 @@ +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_tatooine_house_small_style_02_deed.iff", "object/building/player/shared_player_house_tatooine_small_style_02.iff", 2) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.7),float(3),float(8.2))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.setDefaultItemLimit(200) + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_house_tatooine_small_window_style_01.py b/scripts/houses/player_house_tatooine_small_window_style_01.py new file mode 100644 index 00000000..eff8a21d --- /dev/null +++ b/scripts/houses/player_house_tatooine_small_window_style_01.py @@ -0,0 +1,14 @@ +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_tatooine_house_small_deed.iff", "object/building/player/shared_player_house_tatooine_small_style_01.iff", 2) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.7),float(3),float(7.9))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.setDefaultItemLimit(200) + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/object/building/player/player_house_sandcrawler.py b/scripts/object/building/player/player_house_sandcrawler.py index ccad8904..3d2f2529 100644 --- a/scripts/object/building/player/player_house_sandcrawler.py +++ b/scripts/object/building/player/player_house_sandcrawler.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', -8.75, 3.86, 1, 0.5, 0.5, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 6, 3.5, 0.7, 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_tatooine_large_style_01.py b/scripts/object/building/player/player_house_tatooine_large_style_01.py index ccad8904..89f9d082 100644 --- a/scripts/object/building/player/player_house_tatooine_large_style_01.py +++ b/scripts/object/building/player/player_house_tatooine_large_style_01.py @@ -1,4 +1,11 @@ import sys def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -3, 3, 15.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.5, 12, 1, 0, 2) + #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_tatooine_medium_style_01.py b/scripts/object/building/player/player_house_tatooine_medium_style_01.py index ccad8904..3b5cb8e9 100644 --- a/scripts/object/building/player/player_house_tatooine_medium_style_01.py +++ b/scripts/object/building/player/player_house_tatooine_medium_style_01.py @@ -1,4 +1,11 @@ import sys def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 4.3, 2.26, 12.5, -1, 0, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 4, 0.5, 6.5, 1, 0, 2) + #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_tatooine_small_style_01.py b/scripts/object/building/player/player_house_tatooine_small_style_01.py index ccad8904..2c07f46e 100644 --- a/scripts/object/building/player/player_house_tatooine_small_style_01.py +++ b/scripts/object/building/player/player_house_tatooine_small_style_01.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.7, 3, 7.9, 1, 0, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -6, 0.7, 6.2, 1, 0, 2) + #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_tatooine_small_style_02.py b/scripts/object/building/player/player_house_tatooine_small_style_02.py index ccad8904..f4846b69 100644 --- a/scripts/object/building/player/player_house_tatooine_small_style_02.py +++ b/scripts/object/building/player/player_house_tatooine_small_style_02.py @@ -1,4 +1,11 @@ import sys def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 4, 3, 7.6, 1, 0, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -6, 0.7, 6.2, 1, 0, 2) + #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_tatooine_small_window_style_01.py b/scripts/object/building/player/player_house_tatooine_small_window_style_01.py index ccad8904..2c07f46e 100644 --- a/scripts/object/building/player/player_house_tatooine_small_window_style_01.py +++ b/scripts/object/building/player/player_house_tatooine_small_window_style_01.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.7, 3, 7.9, 1, 0, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -6, 0.7, 6.2, 1, 0, 2) + #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/tatooine_house_large_deed.py b/scripts/object/tangible/deed/player_house_deed/tatooine_house_large_deed.py index ccad8904..7110ddc2 100644 --- a/scripts/object/tangible/deed/player_house_deed/tatooine_house_large_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/tatooine_house_large_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_corellia_large_style_01.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_corellia_house_large_deed.iff') + object.setLotRequirement(5) + object.setBMR(26) + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/object/tangible/deed/player_house_deed/tatooine_house_medium_deed.py b/scripts/object/tangible/deed/player_house_deed/tatooine_house_medium_deed.py index ccad8904..b9918233 100644 --- a/scripts/object/tangible/deed/player_house_deed/tatooine_house_medium_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/tatooine_house_medium_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_tatooine_medium_style_01.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_tatooine_house_medium_deed.iff') + object.setLotRequirement(2) + object.setBMR(18) + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_deed.py b/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_deed.py index ccad8904..dd23d101 100644 --- a/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_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_tatooine_small_style_01.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_tatooine_house_small_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/tatooine_house_small_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_style_02_deed.py index ccad8904..31de820d 100644 --- a/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_style_02_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_style_02_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_tatooine_house_small_style_02_deed.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_tatooine_house_small_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/tatooine_house_window_small_deed.py b/scripts/object/tangible/deed/player_house_deed/tatooine_house_window_small_deed.py index ccad8904..8f52a919 100644 --- a/scripts/object/tangible/deed/player_house_deed/tatooine_house_window_small_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/tatooine_house_window_small_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_tatooine_small_style_01.iff') + object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_tatooine_house_window_small_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/saga_system/rewards/structure_deed_player_house_sandcrawler.py b/scripts/object/tangible/saga_system/rewards/structure_deed_player_house_sandcrawler.py index ccad8904..5a653b5c 100644 --- a/scripts/object/tangible/saga_system/rewards/structure_deed_player_house_sandcrawler.py +++ b/scripts/object/tangible/saga_system/rewards/structure_deed_player_house_sandcrawler.py @@ -1,4 +1,12 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'deeds/structureDeed') + object.setConstructorTemplate('object/building/player/shared_construction_structure.iff') + object.setStructureTemplate('object/tangible/saga_system/rewards/shared_structure_deed_player_house_sandcrawler.iff') + object.setLotRequirement(5) + object.setBMR(26) + 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 d89bce74..f0f864af 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -245,7 +245,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") || Template.startsWith("object/tangible/tcg")) { + } 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") || Template.startsWith("object/tangible/saga_system")) { object = new Player_House_Deed(objectID, planet, Template, position, orientation); From f0e345bf377a708228d5512ae6b0481969ad3a70 Mon Sep 17 00:00:00 2001 From: tacef Date: Sat, 26 Apr 2014 15:40:12 +0200 Subject: [PATCH 06/19] Updated Objectservice to just load playerdeed out of TCG and Saga_system --- src/services/object/ObjectService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index f0f864af..8158ae15 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -245,7 +245,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") || Template.startsWith("object/tangible/tcg") || Template.startsWith("object/tangible/saga_system")) { + } 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/series3/shared_structure_deed_sith_meditation_room_deed.iff") || Template.startsWith("object/tangible/tcg/series5/shared_structure_deed_player_house_atat.iff") || Template.startsWith("object/tangible/tcg/series5/shared_structure_deed_player_house_hangar.iff") || Template.startsWith("object/tangible/tcg/series3/shared_structure_deed_jedi_meditation_room_deed.iff") || Template.startsWith("object/tangible/saga_system/rewards/shared_structure_deed_player_house_sandcrawler.iff")) { object = new Player_House_Deed(objectID, planet, Template, position, orientation); From 60d282015631261738db66117f8bd6407f4627cc Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 26 Apr 2014 16:15:26 +0100 Subject: [PATCH 07/19] Fixed agility.py issue --- scripts/skillMods/agility.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/skillMods/agility.py b/scripts/skillMods/agility.py index 3ea2c7a9..7978281a 100644 --- a/scripts/skillMods/agility.py +++ b/scripts/skillMods/agility.py @@ -1,14 +1,14 @@ import sys -def add(core, actor, skillMod, value): - core.skillModService.addSkillMod('display_only_dodge', skillMod.getBase()) - core.skillModService.addSkillMod('display_only_parry', skillMod.getBase() / 2) - core.skillModService.addSkillMod('display_only_evasion', skillMod.getBase()) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'display_only_dodge', skillMod.getBase()) + core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) + core.skillModService.addSkillMod(actor, 'display_only_evasion', skillMod.getBase()) return -def deduct(core, actor, skillMod, value): - core.skillModService.deductSkillMod('display_only_dodge', skillMod.getBase()) - core.skillModService.deductSkillMod('display_only_parry', skillMod.getBase() / 2) - core.skillModService.deductSkillMod('display_only_evasion', skillMod.getBase()) +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'display_only_dodge', skillMod.getBase()) + core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) + core.skillModService.deductSkillMod(actor, 'display_only_evasion', skillMod.getBase()) return - \ No newline at end of file + From 989ee0a772d33d71216c9f2d5426271620cf1a95 Mon Sep 17 00:00:00 2001 From: zingzing175 Date: Sat, 26 Apr 2014 15:52:46 -0700 Subject: [PATCH 08/19] Revert "Fixed agility.py issue" This reverts commit 8afe1e4af1b8970741d51fab711a625f81e478ae. --- scripts/skillMods/agility.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/skillMods/agility.py b/scripts/skillMods/agility.py index 7978281a..3ea2c7a9 100644 --- a/scripts/skillMods/agility.py +++ b/scripts/skillMods/agility.py @@ -1,14 +1,14 @@ import sys -def add(core, actor, skillMod, divisor): - core.skillModService.addSkillMod(actor, 'display_only_dodge', skillMod.getBase()) - core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) - core.skillModService.addSkillMod(actor, 'display_only_evasion', skillMod.getBase()) +def add(core, actor, skillMod, value): + core.skillModService.addSkillMod('display_only_dodge', skillMod.getBase()) + core.skillModService.addSkillMod('display_only_parry', skillMod.getBase() / 2) + core.skillModService.addSkillMod('display_only_evasion', skillMod.getBase()) return -def deduct(core, actor, skillMod, divisor): - core.skillModService.deductSkillMod(actor, 'display_only_dodge', skillMod.getBase()) - core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) - core.skillModService.deductSkillMod(actor, 'display_only_evasion', skillMod.getBase()) +def deduct(core, actor, skillMod, value): + core.skillModService.deductSkillMod('display_only_dodge', skillMod.getBase()) + core.skillModService.deductSkillMod('display_only_parry', skillMod.getBase() / 2) + core.skillModService.deductSkillMod('display_only_evasion', skillMod.getBase()) return - + \ No newline at end of file From 410257723e18b3ad1591a9a0c1d87b16805af0de Mon Sep 17 00:00:00 2001 From: zingzing175 Date: Sat, 26 Apr 2014 16:21:30 -0700 Subject: [PATCH 09/19] Revert "Revert "Fixed agility.py issue"" This reverts commit 3e02e080cf485e254f820f75d7591c32c1b3a145. --- scripts/skillMods/agility.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/skillMods/agility.py b/scripts/skillMods/agility.py index 3ea2c7a9..7978281a 100644 --- a/scripts/skillMods/agility.py +++ b/scripts/skillMods/agility.py @@ -1,14 +1,14 @@ import sys -def add(core, actor, skillMod, value): - core.skillModService.addSkillMod('display_only_dodge', skillMod.getBase()) - core.skillModService.addSkillMod('display_only_parry', skillMod.getBase() / 2) - core.skillModService.addSkillMod('display_only_evasion', skillMod.getBase()) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'display_only_dodge', skillMod.getBase()) + core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) + core.skillModService.addSkillMod(actor, 'display_only_evasion', skillMod.getBase()) return -def deduct(core, actor, skillMod, value): - core.skillModService.deductSkillMod('display_only_dodge', skillMod.getBase()) - core.skillModService.deductSkillMod('display_only_parry', skillMod.getBase() / 2) - core.skillModService.deductSkillMod('display_only_evasion', skillMod.getBase()) +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'display_only_dodge', skillMod.getBase()) + core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) + core.skillModService.deductSkillMod(actor, 'display_only_evasion', skillMod.getBase()) return - \ No newline at end of file + From 07e1f7c9f6625003d200a509e543d3654b0edfaa Mon Sep 17 00:00:00 2001 From: zingzing175 Date: Sat, 26 Apr 2014 16:47:03 -0700 Subject: [PATCH 10/19] Added action add to Officer Inspiration, fixed a couple base skill mods, fixed officer buffs. --- scripts/skillMods/agility_modified.py | 16 ++++++++-------- scripts/skillMods/constitution.py | 8 ++++---- scripts/skillMods/constitution_modified.py | 8 ++++---- .../skillMods/expertise_critical_niche_all.py | 4 ++-- scripts/skillMods/healing_action.py | 1 + 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/scripts/skillMods/agility_modified.py b/scripts/skillMods/agility_modified.py index 9f9e8568..f5752055 100644 --- a/scripts/skillMods/agility_modified.py +++ b/scripts/skillMods/agility_modified.py @@ -1,14 +1,14 @@ import sys -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) +def add((core, actor, skillMod, divisor): + core.skillModService.addSkillMod('display_only_dodge', skillMod.getBase()) + core.skillModService.addSkillMod('display_only_parry', skillMod.getBase() / 2) + core.skillModService.addSkillMod('display_only_evasion', skillMod.getBase()) return -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) +def deduct((core, actor, skillMod, divisor): + core.skillModService.deductSkillMod('display_only_dodge', skillMod.getBase()) + core.skillModService.deductSkillMod('display_only_parry', skillMod.getBase() / 2) + core.skillModService.deductSkillMod('display_only_evasion', skillMod.getBase()) return \ No newline at end of file diff --git a/scripts/skillMods/constitution.py b/scripts/skillMods/constitution.py index 73c88999..299bf30d 100644 --- a/scripts/skillMods/constitution.py +++ b/scripts/skillMods/constitution.py @@ -1,12 +1,12 @@ import sys def add(core, actor, skillMod, value): - actor.setMaxHealth(actor.getMaxHealth() + base * 8) - actor.setMaxAction(actor.getMaxAction() + base * 2) + actor.setMaxHealth(actor.getMaxHealth() + skillMod.getBase() * 8) + actor.setMaxAction(actor.getMaxAction() + skillMod.getBase() * 2) return def deduct(core, actor, skillMod, value): - actor.setMaxHealth(actor.getMaxHealth() - base * 8) - actor.setMaxAction(actor.getMaxAction() - base * 2) + actor.setMaxHealth(actor.getMaxHealth() - skillMod.getBase() * 8) + actor.setMaxAction(actor.getMaxAction() - skillMod.getBase() * 2) return \ No newline at end of file diff --git a/scripts/skillMods/constitution_modified.py b/scripts/skillMods/constitution_modified.py index 73c88999..299bf30d 100644 --- a/scripts/skillMods/constitution_modified.py +++ b/scripts/skillMods/constitution_modified.py @@ -1,12 +1,12 @@ import sys def add(core, actor, skillMod, value): - actor.setMaxHealth(actor.getMaxHealth() + base * 8) - actor.setMaxAction(actor.getMaxAction() + base * 2) + actor.setMaxHealth(actor.getMaxHealth() + skillMod.getBase() * 8) + actor.setMaxAction(actor.getMaxAction() + skillMod.getBase() * 2) return def deduct(core, actor, skillMod, value): - actor.setMaxHealth(actor.getMaxHealth() - base * 8) - actor.setMaxAction(actor.getMaxAction() - base * 2) + actor.setMaxHealth(actor.getMaxHealth() - skillMod.getBase() * 8) + actor.setMaxAction(actor.getMaxAction() - skillMod.getBase() * 2) 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 b6492df5..f2d7d723 100644 --- a/scripts/skillMods/expertise_critical_niche_all.py +++ b/scripts/skillMods/expertise_critical_niche_all.py @@ -1,10 +1,10 @@ import sys def add(core, actor, skillMod, value): - core.skillModService.addSkillMod(actor, 'display_only_critical', 100 * base) + core.skillModService.addSkillMod(actor, 'display_only_critical', 100 * skillMod.getBase()) return def deduct(core, actor, skillMod, value): - core.skillModService.deductSkillMod(actor, 'display_only_critical', 100 * base) + core.skillModService.deductSkillMod(actor, 'display_only_critical', 100 * skillMod.getBase()) return \ No newline at end of file diff --git a/scripts/skillMods/healing_action.py b/scripts/skillMods/healing_action.py index 6cd11173..026370f5 100644 --- a/scripts/skillMods/healing_action.py +++ b/scripts/skillMods/healing_action.py @@ -1,6 +1,7 @@ import sys def add(core, actor, skillMod, divisor): + actor.setAction(actor.getAction() + skillMod.getBase()) return def deduct(core, actor, skillMod, divisor): From 2010163228182c404fc996b6d68e06e1f2e754e8 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 27 Apr 2014 01:06:57 +0100 Subject: [PATCH 11/19] Fixed minor agility_modified.py error --- scripts/skillMods/agility_modified.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/skillMods/agility_modified.py b/scripts/skillMods/agility_modified.py index f5752055..7978281a 100644 --- a/scripts/skillMods/agility_modified.py +++ b/scripts/skillMods/agility_modified.py @@ -1,14 +1,14 @@ import sys -def add((core, actor, skillMod, divisor): - core.skillModService.addSkillMod('display_only_dodge', skillMod.getBase()) - core.skillModService.addSkillMod('display_only_parry', skillMod.getBase() / 2) - core.skillModService.addSkillMod('display_only_evasion', skillMod.getBase()) +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'display_only_dodge', skillMod.getBase()) + core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) + core.skillModService.addSkillMod(actor, 'display_only_evasion', skillMod.getBase()) return -def deduct((core, actor, skillMod, divisor): - core.skillModService.deductSkillMod('display_only_dodge', skillMod.getBase()) - core.skillModService.deductSkillMod('display_only_parry', skillMod.getBase() / 2) - core.skillModService.deductSkillMod('display_only_evasion', skillMod.getBase()) +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'display_only_dodge', skillMod.getBase()) + core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2) + core.skillModService.deductSkillMod(actor, 'display_only_evasion', skillMod.getBase()) return - \ No newline at end of file + From 4cef2c09cc499d8580b9c0cd7c2bdc460c1fcba1 Mon Sep 17 00:00:00 2001 From: Mesagoppinmypants Date: Sat, 26 Apr 2014 20:23:25 -0400 Subject: [PATCH 12/19] Scripted Stormtrooper Squad Leader NPC Tested and works. --- .../canon/stormtrooper_squad_leader.py | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 scripts/mobiles/canon/stormtrooper_squad_leader.py diff --git a/scripts/mobiles/canon/stormtrooper_squad_leader.py b/scripts/mobiles/canon/stormtrooper_squad_leader.py new file mode 100644 index 00000000..8fbea697 --- /dev/null +++ b/scripts/mobiles/canon/stormtrooper_squad_leader.py @@ -0,0 +1,31 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from java.util import Vector + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('stormtrooper_squad_leader') + mobileTemplate.setLevel(28) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(24) + mobileTemplate.setAttackSpeed(0.4) + mobileTemplate.setWeaponType(1) + + templates = Vector() + templates.add('object/mobile/shared_dressed_stormtrooper_squad_leader_white_white.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShot') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('stormtrooper_squad_leader', mobileTemplate) + From 3948fe11f3023f9483481b1867f46935f308b1df Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Mon, 28 Apr 2014 04:31:45 +0200 Subject: [PATCH 13/19] Sandbox city building --- src/services/DevService.java | 8 ++ .../playercities/PlayerCityService.java | 83 +++++++++++++++++++ 2 files changed, 91 insertions(+) diff --git a/src/services/DevService.java b/src/services/DevService.java index 8a3ce949..e3d8a5d4 100644 --- a/src/services/DevService.java +++ b/src/services/DevService.java @@ -93,6 +93,7 @@ public class DevService implements INetworkDispatch { if(creature.getClient().isGM()) suiOptions.put((long) 120, "House Deeds"); if(creature.getClient().isGM()) suiOptions.put((long) 125, "Crafting Tools"); if(creature.getClient().isGM()) suiOptions.put((long) 130, "Vehicle Deeds"); + if(creature.getClient().isGM()) suiOptions.put((long) 121, "Sandbox City"); break; case 3: // [Items] Weapons @@ -1232,6 +1233,11 @@ public class DevService implements INetworkDispatch { inventory.add(deed); return; + + case 121: + NGECore.getInstance().playerCityService.buildSandboxTestCity(player); + + return; case 125: TangibleObject genericCraftingTool = (TangibleObject) core.objectService.createObject("object/tangible/crafting/station/shared_generic_tool.iff", planet); @@ -1244,6 +1250,8 @@ public class DevService implements INetworkDispatch { inventory.add(swoopDeed); inventory.add(av21deed); return; + + } } }); diff --git a/src/services/playercities/PlayerCityService.java b/src/services/playercities/PlayerCityService.java index 86cb57ed..e5864069 100644 --- a/src/services/playercities/PlayerCityService.java +++ b/src/services/playercities/PlayerCityService.java @@ -27,11 +27,15 @@ import java.util.Vector; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; + +import resources.objects.building.BuildingObject; import resources.objects.creature.CreatureObject; +import resources.objects.tangible.TangibleObject; import services.sui.SUIWindow; import services.sui.SUIWindow.SUICallback; import services.sui.SUIWindow.Trigger; import engine.resources.objects.SWGObject; +import engine.resources.scene.Point3D; import engine.resources.service.INetworkDispatch; import engine.resources.service.INetworkRemoteEvent; import main.NGECore; @@ -157,6 +161,85 @@ public class PlayerCityService implements INetworkDispatch { core.suiService.openSUIWindow(window); } + public void buildSandboxTestCity(CreatureObject founder) { + + + float positionX = 2170.0F; + float positionY = 1.0F; + float positionZ = -4659.0F; + + String structureTemplate = "object/building/player/city/shared_cityhall_tatooine.iff"; + + BuildingObject cityHall = (BuildingObject) core.objectService.createObject(structureTemplate, 0, founder.getPlanet(), new Point3D(positionX, positionY, positionZ), founder.getOrientation()); + core.simulationService.add(cityHall, cityHall.getPosition().x, cityHall.getPosition().z, true); + + SWGObject sign = core.objectService.createChildObject((SWGObject)cityHall, "object/tangible/sign/player/shared_house_address.iff", -7.39F, 2.36F, 2, -1, 0, -1); + cityHall.setAttachment("structureSign", sign); + + PlayerCity sandboxCity = null; + synchronized(playerCities){ + sandboxCity = new PlayerCity(founder,cityID++); + sandboxCity.setCityName("Sandbox City"); + playerCities.add(sandboxCity); + } + + cityHall.setAttachment("structureCity", sandboxCity.getCityID()); + founder.setAttachment("residentCity", sandboxCity.getCityID()); + // Name the sign +// TangibleObject sign = (TangibleObject) cityHall.getAttachment("structureSign"); +// String playerFirstName = founder.getCustomName().split(" ")[0]; +// +// if (sign !=null) +// sign.setCustomName2(playerFirstName + "'s House"); + + + + // Structure management + Vector admins = new Vector<>(); + admins.add(founder.getObjectID()); + + cityHall.setAttachment("structureOwner", founder.getObjectID()); + cityHall.setAttachment("structureAdmins", admins); + cityHall.setDeedTemplate("object/tangible/deed/city_deed/shared_cityhall_tatooine_deed.iff"); + cityHall.setBMR(325); + cityHall.setConditionDamage(100); + + + positionY = core.terrainService.getHeight(founder.getPlanetId(), positionX, positionZ)+ 2f; + founder.setPosition(new Point3D(positionX+100,positionY,positionZ)); + core.simulationService.teleport(founder, new Point3D(positionX,positionY,positionZ+150), founder.getOrientation(), 0); + + TangibleObject swoopDeed = (TangibleObject) core.objectService.createObject("object/tangible/deed/vehicle_deed/shared_speederbike_swoop_deed.iff", founder.getPlanet()); + SWGObject inventory = founder.getSlottedObject("inventory"); + inventory.add(swoopDeed); + + + //structureTemplate = "object/building/player/city/shared_shuttleport_tatooine.iff"; + structureTemplate = "object/building/tatooine/shared_shuttleport_tatooine.iff"; + positionX = 2170.0F; + positionY = 1.0F; + positionZ = -4559.0F; + + //StructureObject shuttlePort = (StructureObject) core.objectService.createObject(structureTemplate, 0, founder.getPlanet(), new Point3D(positionX, positionY, positionZ), founder.getOrientation()); + BuildingObject shuttlePort = (BuildingObject) core.objectService.createObject(structureTemplate, 0, founder.getPlanet(), new Point3D(positionX, positionY, positionZ), founder.getOrientation()); + //shuttlePort.setAttachment("cellsSorted", new Boolean(true)); + //"bigSpawnRange" + + core.simulationService.add(shuttlePort, shuttlePort.getPosition().x, shuttlePort.getPosition().z, true); +// sign = core.objectService.createChildObject((SWGObject)shuttlePort, "object/tangible/sign/player/shared_house_address.iff", -7.39F, 2.36F, 2, -1, 0, -1); +// shuttlePort.setAttachment("structureSign", sign); + + // Structure management + admins = new Vector<>(); + admins.add(founder.getObjectID()); + + shuttlePort.setAttachment("structureOwner", founder.getObjectID()); + shuttlePort.setAttachment("structureAdmins", admins); + shuttlePort.setDeedTemplate("object/tangible/deed/city_deed/shared_cityhall_tatooine_deed.iff"); + shuttlePort.setBMR(12); + shuttlePort.setConditionDamage(100); + } + @Override public void insertOpcodes(Map arg0, From bec401c57b71569cb281f392e6f5d557e2c63fed Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Mon, 28 Apr 2014 22:52:04 +0200 Subject: [PATCH 14/19] continued sandbox city, public structure problem --- .../houses/player_garden_tatooine_sml_01.py | 15 ++ scripts/houses/player_shuttleport_tatooine.py | 12 ++ .../player/city/garden_tatooine_sml_01.py | 10 + .../city_deed/garden_tatooine_sml_01_deed.py | 8 + .../city_deed/shuttleport_tatooine_deed.py | 8 + .../terminal/city_maintenance_terminal.py | 32 ++- src/services/DevService.java | 1 + src/services/housing/HousingService.java | 19 +- src/services/playercities/PlayerCity.java | 190 +++++++++++++++--- .../playercities/PlayerCityService.java | 23 ++- 10 files changed, 275 insertions(+), 43 deletions(-) create mode 100644 scripts/houses/player_garden_tatooine_sml_01.py create mode 100644 scripts/houses/player_shuttleport_tatooine.py diff --git a/scripts/houses/player_garden_tatooine_sml_01.py b/scripts/houses/player_garden_tatooine_sml_01.py new file mode 100644 index 00000000..516ed6a3 --- /dev/null +++ b/scripts/houses/player_garden_tatooine_sml_01.py @@ -0,0 +1,15 @@ +import sys +from services.housing import HouseTemplate +from engine.resources.scene import Point3D + +def setup(core): + houseTemplate = HouseTemplate("object/tangible/deed/city_deed/shared_garden_tatooine_sml_01_deed.iff", "object/building/player/city/shared_garden_tatooine_sml_01.iff", 0) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(1, 2, 3)) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.addPlaceablePlanet("dantooine") + houseTemplate.addPlaceablePlanet("lok") + houseTemplate.setDefaultItemLimit(0) + + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/houses/player_shuttleport_tatooine.py b/scripts/houses/player_shuttleport_tatooine.py new file mode 100644 index 00000000..9ff64abc --- /dev/null +++ b/scripts/houses/player_shuttleport_tatooine.py @@ -0,0 +1,12 @@ +import sys +from services.housing import HouseTemplate +from engine.resources.scene import Point3D + +def setup(core): + houseTemplate = HouseTemplate("object/tangible/deed/city_deed/shared_shuttleport_tatooine_deed.iff", "object/building/tatooine/shared_shuttleport_tatooine.iff", 1) + + houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(3.5),float(-0.3),float(3.5))) + houseTemplate.addPlaceablePlanet("tatooine") + houseTemplate.setDefaultItemLimit(0) + core.housingService.addHousingTemplate(houseTemplate) + return \ No newline at end of file diff --git a/scripts/object/building/player/city/garden_tatooine_sml_01.py b/scripts/object/building/player/city/garden_tatooine_sml_01.py index ccad8904..287ca8f0 100644 --- a/scripts/object/building/player/city/garden_tatooine_sml_01.py +++ b/scripts/object/building/player/city/garden_tatooine_sml_01.py @@ -1,4 +1,14 @@ import sys +from engine.resources.scene import Point3D +from engine.resources.scene import Quaternion def setup(core, object): + sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -13.7, 3, 9.1, -1, 0, -1) + print(sign) + object.setAttachment("structureSign", sign) + + structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -17.2, 1.5 , 8, 1, 0 ,4) + #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/city_deed/garden_tatooine_sml_01_deed.py b/scripts/object/tangible/deed/city_deed/garden_tatooine_sml_01_deed.py index ccad8904..d3678f09 100644 --- a/scripts/object/tangible/deed/city_deed/garden_tatooine_sml_01_deed.py +++ b/scripts/object/tangible/deed/city_deed/garden_tatooine_sml_01_deed.py @@ -1,4 +1,12 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'deeds/structureDeed') + object.setConstructorTemplate('object/building/player/shared_construction_structure.iff') + object.setStructureTemplate('object/tangible/deed/city_deed/shared_garden_tatooine_sml_01_deed.iff') + #object.setLotRequirement(5) + object.setBMR(5) + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py b/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py index ccad8904..d676ac12 100644 --- a/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py +++ b/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py @@ -1,4 +1,12 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'deeds/structureDeed') + object.setConstructorTemplate('object/building/player/shared_construction_structure.iff') + object.setStructureTemplate('object/tangible/deed/city_deed/shared_shuttleport_tatooine_deed.iff') + #object.setLotRequirement(5) + object.setBMR(100) + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/radial/terminal/city_maintenance_terminal.py b/scripts/radial/terminal/city_maintenance_terminal.py index ef951426..e5bab716 100644 --- a/scripts/radial/terminal/city_maintenance_terminal.py +++ b/scripts/radial/terminal/city_maintenance_terminal.py @@ -24,6 +24,10 @@ def createRadial(core, owner, target, radials): radials.add(RadialOptions(3, 121, 0, '@city/city:non_citizen_city_status')) radials.add(RadialOptions(3, 122, 0, '@city/city:rank_info_t')) radials.add(RadialOptions(3, 123, 0, '@city/city:citizen_list_t')) + radials.add(RadialOptions(3, 230, 0, '@city/city:revoke_citizenship')) + + radials.add(RadialOptions(3, 231, 0, 'Add 10 citizens')) + radials.add(RadialOptions(3, 232, 0, 'Deduct 10 citizens')) return @@ -80,14 +84,26 @@ def handleSelection(core, owner, target, option): if owner is not None: handleCitizenList(core, owner, target, option) return - -def handleSetCityName(core, owner, target, option): - window = core.suiService.createInputBox(2,'@city/city:city_name_new_t','@city/city:city_name_new_d', owner, target, 0) - returnList = Vector() - returnList.add('txtInput:LocalText') - window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setnameCallBack) - window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setnameCallBack) - core.suiService.openSUIWindow(window); + + if option == 231: + if owner is not None: + handle10Add(core, owner, target, option) + return + + if option == 232: + if owner is not None: + handle10Deduct(core, owner, target, option) + return + +def handle10Add(core, owner, target, option): + playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner) + playerCity.Add10MoreCitizens() + return + + +def handle10Deduct(core, owner, target, option): + playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner) + playerCity.Deduct10Citizens() return def setnameCallBack(owner, window, eventType, returnList): diff --git a/src/services/DevService.java b/src/services/DevService.java index e3d8a5d4..b5d204a8 100644 --- a/src/services/DevService.java +++ b/src/services/DevService.java @@ -1231,6 +1231,7 @@ public class DevService implements INetworkDispatch { deed.setBMR(15); deed.setAttributes(); inventory.add(deed); + return; diff --git a/src/services/housing/HousingService.java b/src/services/housing/HousingService.java index 47fdaceb..b4ac1589 100644 --- a/src/services/housing/HousingService.java +++ b/src/services/housing/HousingService.java @@ -74,8 +74,10 @@ public class HousingService implements INetworkDispatch { } if(housingTemplates.containsKey(deed.getTemplate())) - { + { HouseTemplate houseTemplate = housingTemplates.get(deed.getTemplate()); + System.out.println("DEED FOUND " + houseTemplate.getBuildingTemplate()); + System.out.println("DEED TEMP " + deed.getTemplate()); EnterStructurePlacementModeMessage packet = new EnterStructurePlacementModeMessage(deed, houseTemplate.getBuildingTemplate()); actor.getClient().getSession().write(packet.serialize()); } @@ -90,6 +92,7 @@ public class HousingService implements INetworkDispatch { if (deed.getTemplate().contains("cityhall")) structureLotCost = 0; + String structureTemplate = houseTemplate.getBuildingTemplate(); if(!houseTemplate.canBePlacedOn(actor.getPlanet().getName())) @@ -126,6 +129,20 @@ public class HousingService implements INetworkDispatch { // Actor is inside the bounds of a city, so zoning must be checked //actor.setAttachment("Has24HZoningFor",cityActorIsIn.getCityID()); // for testing //actor.setAttachment("Has24HZoningUntil",System.currentTimeMillis()+1000000); // for testing + + + if (deed.getTemplate().contains("shuttleport")){ + + if (actor.getObjectID()!=cityActorIsIn.getMayorID()) + actor.sendSystemMessage("You must be the mayor of this city to place the structure.", (byte) 0); + + if (cityActorIsIn.getRank()<0){ + actor.sendSystemMessage("@city/city:rank_req", (byte) 0); + return; + } + + } + if (actor.getAttachment("Has24HZoningFor")==null || actor.getAttachment("Has24HZoningFor")==null) return; int cityActorHasZoning = (int)actor.getAttachment("Has24HZoningFor"); diff --git a/src/services/playercities/PlayerCity.java b/src/services/playercities/PlayerCity.java index c8d7d2c2..2fbb7179 100644 --- a/src/services/playercities/PlayerCity.java +++ b/src/services/playercities/PlayerCity.java @@ -42,7 +42,7 @@ import engine.resources.scene.Point3D; public class PlayerCity { - public static final int DESERTED = 0; + public static final int NEWCITY = 0; public static final int OUTPOST = 1; public static final int VILLAGE = 2; public static final int TOWNSHIP = 3; @@ -106,8 +106,11 @@ public class PlayerCity { private boolean registered = false; private boolean zoningEnabled = false; - private final long cityUpdateSpan = 7*86400*1000; - private final long legislationPeriod = 21*86400*1000; + //private final long cityUpdateSpan = 7*86400*1000; + private final long cityUpdateSpan = 100*1000; + + //private final long legislationPeriod = 21*86400*1000; + private final long legislationPeriod = 100*1000; private Vector placedStructures = new Vector(); private Vector citizens = new Vector(); @@ -157,36 +160,67 @@ public class PlayerCity { public void processCityUpdate() { // has something changed? System.out.println("processCityUpdate"); - int censusResult = citizens.size(); - // ToDo: Consider 1 rank per update changes - if (censusResult<5){ - setRank(DESERTED); // City is technically not a city anymore - setCityRadius(0); - } + int censusResult = citizens.size(); + int currentRank = getRank(); - if (censusResult>=5 && censusResult<10){ - setRank(OUTPOST); - setCityRadius(150); - } + switch (currentRank) { + case NEWCITY : if (censusResult>=5){ + setRank(++currentRank); // Expand to Outpost + sendCityExpandMailAll(); + } + + if (censusResult<5){ + // kill city + } + break; + + case OUTPOST : if (censusResult>=10){ + setRank(++currentRank); // Expand to Village + sendCityExpandMailAll(); + } + if (censusResult<5){ + setRank(--currentRank); // Contract to Deserted + sendCityContractMailAll(); + } + break; + + case VILLAGE : if (censusResult>=15){ + setRank(++currentRank); // Expand to Township + sendCityExpandMailAll(); + } + if (censusResult<10){ + setRank(--currentRank); // Contract to Outpost + sendCityContractMailAll(); + } + break; + + case TOWNSHIP : if (censusResult>=30){ + setRank(++currentRank); // Expand to City + sendCityExpandMailAll(); + } + if (censusResult<15){ + setRank(--currentRank); // Contract to Village + sendCityContractMailAll(); + } + break; + + case CITY : if (censusResult>=40){ + setRank(++currentRank); // Expand to Metropolis + sendCityExpandMailAll(); + } + if (censusResult<15){ + setRank(--currentRank); // Contract to Township + sendCityContractMailAll(); + } + break; + + case METROPOLIS : if (censusResult<40){ + setRank(--currentRank); // Contract to City + sendCityContractMailAll(); + } + break; + - if (censusResult>=10 && censusResult<15){ - setRank(VILLAGE); - setCityRadius(200); - } - - if (censusResult>=15 && censusResult<30){ - setRank(TOWNSHIP); - setCityRadius(300); - } - - if (censusResult>=30 && censusResult<40){ - setRank(CITY); - setCityRadius(400); - } - - if (censusResult>=40){ - setRank(METROPOLIS); - setCityRadius(450); } // collect taxes @@ -213,6 +247,10 @@ public class PlayerCity { setNextCityUpdate(System.currentTimeMillis()+cityUpdateSpan); } + public void cityFixUp(){ + + } + public void demolishHighRankStructures() { // Check if there are any structures in the city // that require a higher rank than the current one @@ -713,5 +751,95 @@ public class PlayerCity { } } + + public void sendCityExpandMailAll() { + Vector citizenList = getCitizens(); + for (long citizen : citizenList){ + CreatureObject citizenObject = (CreatureObject) NGECore.getInstance().objectService.getObject(citizen); + Mail actorMail = new Mail(); + actorMail.setMailId(NGECore.getInstance().chatService.generateMailId()); + actorMail.setRecieverId(citizen); + actorMail.setStatus(Mail.NEW); + actorMail.setTimeStamp((int) (new Date().getTime() / 1000)); + actorMail.setMessage("@city/city:city_expand_body"); + actorMail.setSubject("@city/city:city_expand_subject"); + actorMail.setSenderName("City " + this.cityName); + + List attachments = new ArrayList(); + WaypointObject constructionWaypoint = (WaypointObject)NGECore.getInstance().objectService.createObject("object/waypoint/shared_world_waypoint_blue.iff", citizenObject.getPlanet(), citizenObject.getPosition().x, 0 ,citizenObject.getPosition().z); + WaypointAttachment attachment = new WaypointAttachment(); + attachment.active = false; + attachment.cellID = constructionWaypoint.getCellId(); + attachment.color = (byte)1; + attachment.name = "City"; + attachment.planetCRC = engine.resources.common.CRC.StringtoCRC(citizenObject.getPlanet().getName()); + attachment.positionX = citizenObject.getPosition().x; + attachment.positionY = 0; + attachment.positionZ = citizenObject.getPosition().z; + attachments.add(attachment); + actorMail.setAttachments(attachments); + + NGECore.getInstance().chatService.storePersistentMessage(actorMail); + + } + } + + public void sendCityContractMailAll() { + + Vector citizenList = getCitizens(); + for (long citizen : citizenList){ + CreatureObject citizenObject = (CreatureObject) NGECore.getInstance().objectService.getObject(citizen); + Mail actorMail = new Mail(); + actorMail.setMailId(NGECore.getInstance().chatService.generateMailId()); + actorMail.setRecieverId(citizen); + actorMail.setStatus(Mail.NEW); + actorMail.setTimeStamp((int) (new Date().getTime() / 1000)); + actorMail.setMessage("@city/city:city_contract_body"); + actorMail.setSubject("@city/city:city_contract_subject"); + actorMail.setSenderName("City " + this.cityName); + + List attachments = new ArrayList(); + WaypointObject constructionWaypoint = (WaypointObject)NGECore.getInstance().objectService.createObject("object/waypoint/shared_world_waypoint_blue.iff", citizenObject.getPlanet(), citizenObject.getPosition().x, 0 ,citizenObject.getPosition().z); + WaypointAttachment attachment = new WaypointAttachment(); + attachment.active = false; + attachment.cellID = constructionWaypoint.getCellId(); + attachment.color = (byte)1; + attachment.name = "City"; + attachment.planetCRC = engine.resources.common.CRC.StringtoCRC(citizenObject.getPlanet().getName()); + attachment.positionX = citizenObject.getPosition().x; + attachment.positionY = 0; + attachment.positionZ = citizenObject.getPosition().z; + attachments.add(attachment); + actorMail.setAttachments(attachments); + + NGECore.getInstance().chatService.storePersistentMessage(actorMail); + } + } + + + + + // Test method to be deleted later + public void Add10MoreCitizens() { + synchronized(citizens){ + for (int i=0;i<10;i++){ + this.citizens.add(this.getMayorID()); + } + + } + } + + + // Test method to be deleted later + public void Deduct10Citizens() { + int citizenCount = this.getCitizens().size(); + synchronized(citizens){ + this.citizens.clear(); + + for (int i=0;i playerCities = new Vector(); private int cityID = 0; // This must be persisted or handled via objectservice somehow + // static helper variable to be deleted later + public static boolean sandboxCityBuilt = false; + public PlayerCityService(NGECore core) { this.core = core; @@ -161,8 +165,12 @@ public class PlayerCityService implements INetworkDispatch { core.suiService.openSUIWindow(window); } + + // Test method to be deleted later public void buildSandboxTestCity(CreatureObject founder) { + if (sandboxCityBuilt) + return; float positionX = 2170.0F; float positionY = 1.0F; @@ -205,13 +213,19 @@ public class PlayerCityService implements INetworkDispatch { cityHall.setConditionDamage(100); - positionY = core.terrainService.getHeight(founder.getPlanetId(), positionX, positionZ)+ 2f; - founder.setPosition(new Point3D(positionX+100,positionY,positionZ)); - core.simulationService.teleport(founder, new Point3D(positionX,positionY,positionZ+150), founder.getOrientation(), 0); + positionY = core.terrainService.getHeight(founder.getPlanetId(), positionX, positionZ); + founder.setPosition(new Point3D(positionX,positionY,positionZ+50)); + core.simulationService.teleport(founder, new Point3D(positionX,positionY,positionZ+50), founder.getOrientation(), 0); TangibleObject swoopDeed = (TangibleObject) core.objectService.createObject("object/tangible/deed/vehicle_deed/shared_speederbike_swoop_deed.iff", founder.getPlanet()); SWGObject inventory = founder.getSlottedObject("inventory"); inventory.add(swoopDeed); + + TangibleObject shuttleportDeed = (TangibleObject) core.objectService.createObject("object/tangible/deed/city_deed/shared_shuttleport_tatooine_deed.iff", founder.getPlanet()); + inventory.add(shuttleportDeed); + + TangibleObject garden1 = (TangibleObject) core.objectService.createObject("object/tangible/deed/city_deed/shared_garden_tatooine_sml_01_deed.iff", founder.getPlanet()); + inventory.add(garden1); //structureTemplate = "object/building/player/city/shared_shuttleport_tatooine.iff"; @@ -219,6 +233,7 @@ public class PlayerCityService implements INetworkDispatch { positionX = 2170.0F; positionY = 1.0F; positionZ = -4559.0F; + positionY = core.terrainService.getHeight(founder.getPlanetId(), positionX, positionZ); //StructureObject shuttlePort = (StructureObject) core.objectService.createObject(structureTemplate, 0, founder.getPlanet(), new Point3D(positionX, positionY, positionZ), founder.getOrientation()); BuildingObject shuttlePort = (BuildingObject) core.objectService.createObject(structureTemplate, 0, founder.getPlanet(), new Point3D(positionX, positionY, positionZ), founder.getOrientation()); @@ -238,6 +253,8 @@ public class PlayerCityService implements INetworkDispatch { shuttlePort.setDeedTemplate("object/tangible/deed/city_deed/shared_cityhall_tatooine_deed.iff"); shuttlePort.setBMR(12); shuttlePort.setConditionDamage(100); + + sandboxCityBuilt = true; } From ee5be99699be7f9d1349c264b593ff9f9cb53b2f Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Wed, 30 Apr 2014 18:44:30 +0200 Subject: [PATCH 15/19] Disabled automatic shuttleport placement in sandbox city --- src/services/playercities/PlayerCityService.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/services/playercities/PlayerCityService.java b/src/services/playercities/PlayerCityService.java index e3de95be..329ceede 100644 --- a/src/services/playercities/PlayerCityService.java +++ b/src/services/playercities/PlayerCityService.java @@ -236,11 +236,11 @@ public class PlayerCityService implements INetworkDispatch { positionY = core.terrainService.getHeight(founder.getPlanetId(), positionX, positionZ); //StructureObject shuttlePort = (StructureObject) core.objectService.createObject(structureTemplate, 0, founder.getPlanet(), new Point3D(positionX, positionY, positionZ), founder.getOrientation()); - BuildingObject shuttlePort = (BuildingObject) core.objectService.createObject(structureTemplate, 0, founder.getPlanet(), new Point3D(positionX, positionY, positionZ), founder.getOrientation()); + //BuildingObject shuttlePort = (BuildingObject) core.objectService.createObject(structureTemplate, 0, founder.getPlanet(), new Point3D(positionX, positionY, positionZ), founder.getOrientation()); //shuttlePort.setAttachment("cellsSorted", new Boolean(true)); //"bigSpawnRange" - core.simulationService.add(shuttlePort, shuttlePort.getPosition().x, shuttlePort.getPosition().z, true); + //core.simulationService.add(shuttlePort, shuttlePort.getPosition().x, shuttlePort.getPosition().z, true); // sign = core.objectService.createChildObject((SWGObject)shuttlePort, "object/tangible/sign/player/shared_house_address.iff", -7.39F, 2.36F, 2, -1, 0, -1); // shuttlePort.setAttachment("structureSign", sign); @@ -248,11 +248,11 @@ public class PlayerCityService implements INetworkDispatch { admins = new Vector<>(); admins.add(founder.getObjectID()); - shuttlePort.setAttachment("structureOwner", founder.getObjectID()); - shuttlePort.setAttachment("structureAdmins", admins); - shuttlePort.setDeedTemplate("object/tangible/deed/city_deed/shared_cityhall_tatooine_deed.iff"); - shuttlePort.setBMR(12); - shuttlePort.setConditionDamage(100); +// shuttlePort.setAttachment("structureOwner", founder.getObjectID()); +// shuttlePort.setAttachment("structureAdmins", admins); +// shuttlePort.setDeedTemplate("object/tangible/deed/city_deed/shared_cityhall_tatooine_deed.iff"); +// shuttlePort.setBMR(12); +// shuttlePort.setConditionDamage(100); sandboxCityBuilt = true; } From 2a23dd8076adff03bf64e97ad305e87c043c2f14 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Wed, 30 Apr 2014 19:45:12 +0200 Subject: [PATCH 16/19] merge conflict resolve --- odb/bounties/placeholder.txt | 0 scripts/conversation/reb_recruiter.py | 585 ++++++++++++++++++ scripts/mobiles/canon/scout_trooper.py | 31 + scripts/mobiles/canon/swamp_trooper.py | 31 + .../lairs/tatooine_rill_lair_neutral_small.py | 5 + .../tatooine_worrt_lair_neutral_small.py | 5 + .../tatooine/adolescent_krayt_dragon.py | 30 + scripts/mobiles/tatooine/armodragon.py | 30 + scripts/mobiles/tatooine/bantha_low.py | 30 + scripts/mobiles/tatooine/bantha_matriarch.py | 30 + scripts/mobiles/tatooine/blight_boar.py | 30 + scripts/mobiles/tatooine/bocatt.py | 30 + .../mobiles/tatooine/bonecracker_bantha.py | 30 + scripts/mobiles/tatooine/bull_bantha.py | 30 + scripts/mobiles/tatooine/bull_ronto.py | 30 + scripts/mobiles/tatooine/cannibal_dewback.py | 30 + .../mobiles/tatooine/canyon_krayt_dragon.py | 30 + scripts/mobiles/tatooine/carion_kreetle.py | 30 + scripts/mobiles/tatooine/cave_beetle.py | 30 + scripts/mobiles/tatooine/city_rockmite.py | 30 + .../mobiles/tatooine/city_sewer_swamprat.py | 30 + scripts/mobiles/tatooine/cupa.py | 30 + scripts/mobiles/tatooine/death_kreetle.py | 30 + scripts/mobiles/tatooine/desert_eopie.py | 30 + scripts/mobiles/tatooine/desert_kreetle.py | 30 + scripts/mobiles/tatooine/desert_razorback.py | 30 + scripts/mobiles/tatooine/desert_squill.py | 30 + scripts/mobiles/tatooine/dimu_bantha.py | 30 + scripts/mobiles/tatooine/diseased_bocatt.py | 30 + scripts/mobiles/tatooine/domestic_eopie.py | 30 + scripts/mobiles/tatooine/dragonet.py | 30 + scripts/mobiles/tatooine/drooling_nuna.py | 30 + scripts/mobiles/tatooine/dune_bantha.py | 30 + scripts/mobiles/tatooine/dune_beetle.py | 30 + scripts/mobiles/tatooine/dune_lizard.py | 30 + scripts/mobiles/tatooine/dwarf_bantha.py | 30 + scripts/mobiles/tatooine/dwarf_eopie.py | 30 + scripts/mobiles/tatooine/dwarf_nuna.py | 30 + scripts/mobiles/tatooine/elder_zucca_boar.py | 30 + .../tatooine/elite_dewback_cannibal.py | 30 + scripts/mobiles/tatooine/elite_dragonet.py | 30 + scripts/mobiles/tatooine/elite_dune_lizard.py | 30 + .../tatooine/elite_giant_sand_beetle.py | 30 + .../mobiles/tatooine/elite_mutant_womprat.py | 30 + scripts/mobiles/tatooine/elite_ronto.py | 30 + scripts/mobiles/tatooine/elite_scyk.py | 30 + scripts/mobiles/tatooine/elite_sevorrt.py | 30 + .../tatooine/enraged_mountain_dewback.py | 30 + scripts/mobiles/tatooine/enraged_squill.py | 30 + scripts/mobiles/tatooine/eoni.py | 30 + scripts/mobiles/tatooine/eopie.py | 30 + scripts/mobiles/tatooine/eopie_herdmaster.py | 30 + .../tatooine/female_mountain_squill.py | 30 + scripts/mobiles/tatooine/feral_bantha.py | 30 + scripts/mobiles/tatooine/furios_ronto.py | 30 + .../tatooine/giant_canyon_krayt_dragon.py | 30 + scripts/mobiles/tatooine/giant_sand_beetle.py | 30 + scripts/mobiles/tatooine/giant_worrt.py | 30 + scripts/mobiles/tatooine/gorg.py | 30 + scripts/mobiles/tatooine/gorg_glutton.py | 30 + .../mobiles/tatooine/grand_krayt_dragon.py | 30 + scripts/mobiles/tatooine/great_squill.py | 30 + .../tatooine/greater_desert_womprat.py | 30 + scripts/mobiles/tatooine/grizzled_dewback.py | 30 + scripts/mobiles/tatooine/harmony_worrt.py | 30 + scripts/mobiles/tatooine/jundland_eopie.py | 30 + .../tatooine/juvenile_canyon_krayt_dragon.py | 30 + scripts/mobiles/tatooine/kreetle_swarmling.py | 30 + scripts/mobiles/tatooine/large_cave_beetle.py | 30 + .../mobiles/tatooine/large_rock_beetle1.py | 30 + .../mobiles/tatooine/large_rock_beetle2.py | 30 + .../mobiles/tatooine/large_rock_beetle3.py | 30 + scripts/mobiles/tatooine/large_sand_beetle.py | 30 + scripts/mobiles/tatooine/lesser_bocatt.py | 30 + .../mobiles/tatooine/lesser_desert_womprat.py | 30 + scripts/mobiles/tatooine/lesser_dewback.py | 30 + scripts/mobiles/tatooine/malignant_squill.py | 30 + scripts/mobiles/tatooine/minor_worrt.py | 30 + scripts/mobiles/tatooine/mound_mite.py | 30 + scripts/mobiles/tatooine/mountain_dewback.py | 30 + scripts/mobiles/tatooine/mountain_squill.py | 30 + .../tatooine/mountain_squill_guardian.py | 30 + .../tatooine/mountain_squill_hunter.py | 30 + scripts/mobiles/tatooine/mountain_worrt.py | 30 + scripts/mobiles/tatooine/mutant_womprat.py | 30 + scripts/mobiles/tatooine/overkreetle.py | 30 + .../tatooine/parry_stormtrooper_dewback.py | 30 + scripts/mobiles/tatooine/plaque_rat.py | 30 + scripts/mobiles/tatooine/razorback_felspur.py | 30 + scripts/mobiles/tatooine/razorclaw.py | 30 + scripts/mobiles/tatooine/rill.py | 30 + scripts/mobiles/tatooine/rock_beetle.py | 30 + scripts/mobiles/tatooine/rock_beetle1.py | 30 + scripts/mobiles/tatooine/rock_beetle_cave.py | 30 + scripts/mobiles/tatooine/rockmite.py | 30 + scripts/mobiles/tatooine/ronto.py | 30 + scripts/mobiles/tatooine/runted_rill.py | 30 + scripts/mobiles/tatooine/sand_beetle.py | 30 + scripts/mobiles/tatooine/sandreaver.py | 30 + scripts/mobiles/tatooine/savage_zucca_boar.py | 30 + scripts/mobiles/tatooine/scyk.py | 30 + scripts/mobiles/tatooine/sevorrt.py | 30 + scripts/mobiles/tatooine/sewer_worrt.py | 30 + scripts/mobiles/tatooine/sickly_womprat.py | 30 + scripts/mobiles/tatooine/slum_rat.py | 30 + scripts/mobiles/tatooine/snarlfang.py | 30 + scripts/mobiles/tatooine/squill.py | 30 + .../mobiles/tatooine/stormtrooper_dewback.py | 30 + .../mobiles/tatooine/sunstained_dunelizard.py | 30 + .../tatooine/swarming_lesser_dewback.py | 30 + scripts/mobiles/tatooine/tame_rill.py | 30 + scripts/mobiles/tatooine/tame_womprat.py | 30 + scripts/mobiles/tatooine/tame_worrt.py | 30 + scripts/mobiles/tatooine/tatooine_mynock.py | 30 + scripts/mobiles/tatooine/tempest_rill.py | 30 + scripts/mobiles/tatooine/tormented_bocatt.py | 30 + scripts/mobiles/tatooine/tusken_bantha.py | 30 + scripts/mobiles/tatooine/twisted_dewback.py | 30 + scripts/mobiles/tatooine/twisted_rill.py | 30 + scripts/mobiles/tatooine/twisted_womprat.py | 30 + .../mobiles/tatooine/variegated_womprat.py | 30 + scripts/mobiles/tatooine/vicious_rill.py | 30 + scripts/mobiles/tatooine/volatile_scyk.py | 30 + scripts/mobiles/tatooine/wasteland_cupa.py | 30 + .../mobiles/tatooine/wild_bladeback_boar.py | 30 + scripts/mobiles/tatooine/wild_dune_boar.py | 30 + scripts/mobiles/tatooine/wonderous_cupa.py | 30 + scripts/mobiles/tatooine/worrt.py | 30 + scripts/mobiles/tatooine/worrt_gutbuster.py | 30 + .../mobiles/tatooine/young_mountain_squill.py | 30 + scripts/mobiles/tatooine/zucca_boar.py | 30 + src/resources/buffs/Buff.java | 486 +++++++++++++++ src/resources/buffs/BuffItem.java | 74 +++ src/resources/buffs/DamageOverTime.java | 116 ++++ src/resources/common/BountyListItem.java | 106 ++++ src/resources/loot/LootDrop.java | 51 ++ src/resources/loot/LootGroup.java | 64 ++ src/resources/loot/LootPool.java | 33 + src/resources/loot/LootRollSession.java | 163 +++++ .../objectives/BountyMissionObjective.java | 80 +++ src/resources/skills/SkillMod.java | 109 ++++ 141 files changed, 5689 insertions(+) create mode 100644 odb/bounties/placeholder.txt create mode 100644 scripts/conversation/reb_recruiter.py create mode 100644 scripts/mobiles/canon/scout_trooper.py create mode 100644 scripts/mobiles/canon/swamp_trooper.py create mode 100644 scripts/mobiles/lairs/tatooine_rill_lair_neutral_small.py create mode 100644 scripts/mobiles/lairs/tatooine_worrt_lair_neutral_small.py create mode 100644 scripts/mobiles/tatooine/adolescent_krayt_dragon.py create mode 100644 scripts/mobiles/tatooine/armodragon.py create mode 100644 scripts/mobiles/tatooine/bantha_low.py create mode 100644 scripts/mobiles/tatooine/bantha_matriarch.py create mode 100644 scripts/mobiles/tatooine/blight_boar.py create mode 100644 scripts/mobiles/tatooine/bocatt.py create mode 100644 scripts/mobiles/tatooine/bonecracker_bantha.py create mode 100644 scripts/mobiles/tatooine/bull_bantha.py create mode 100644 scripts/mobiles/tatooine/bull_ronto.py create mode 100644 scripts/mobiles/tatooine/cannibal_dewback.py create mode 100644 scripts/mobiles/tatooine/canyon_krayt_dragon.py create mode 100644 scripts/mobiles/tatooine/carion_kreetle.py create mode 100644 scripts/mobiles/tatooine/cave_beetle.py create mode 100644 scripts/mobiles/tatooine/city_rockmite.py create mode 100644 scripts/mobiles/tatooine/city_sewer_swamprat.py create mode 100644 scripts/mobiles/tatooine/cupa.py create mode 100644 scripts/mobiles/tatooine/death_kreetle.py create mode 100644 scripts/mobiles/tatooine/desert_eopie.py create mode 100644 scripts/mobiles/tatooine/desert_kreetle.py create mode 100644 scripts/mobiles/tatooine/desert_razorback.py create mode 100644 scripts/mobiles/tatooine/desert_squill.py create mode 100644 scripts/mobiles/tatooine/dimu_bantha.py create mode 100644 scripts/mobiles/tatooine/diseased_bocatt.py create mode 100644 scripts/mobiles/tatooine/domestic_eopie.py create mode 100644 scripts/mobiles/tatooine/dragonet.py create mode 100644 scripts/mobiles/tatooine/drooling_nuna.py create mode 100644 scripts/mobiles/tatooine/dune_bantha.py create mode 100644 scripts/mobiles/tatooine/dune_beetle.py create mode 100644 scripts/mobiles/tatooine/dune_lizard.py create mode 100644 scripts/mobiles/tatooine/dwarf_bantha.py create mode 100644 scripts/mobiles/tatooine/dwarf_eopie.py create mode 100644 scripts/mobiles/tatooine/dwarf_nuna.py create mode 100644 scripts/mobiles/tatooine/elder_zucca_boar.py create mode 100644 scripts/mobiles/tatooine/elite_dewback_cannibal.py create mode 100644 scripts/mobiles/tatooine/elite_dragonet.py create mode 100644 scripts/mobiles/tatooine/elite_dune_lizard.py create mode 100644 scripts/mobiles/tatooine/elite_giant_sand_beetle.py create mode 100644 scripts/mobiles/tatooine/elite_mutant_womprat.py create mode 100644 scripts/mobiles/tatooine/elite_ronto.py create mode 100644 scripts/mobiles/tatooine/elite_scyk.py create mode 100644 scripts/mobiles/tatooine/elite_sevorrt.py create mode 100644 scripts/mobiles/tatooine/enraged_mountain_dewback.py create mode 100644 scripts/mobiles/tatooine/enraged_squill.py create mode 100644 scripts/mobiles/tatooine/eoni.py create mode 100644 scripts/mobiles/tatooine/eopie.py create mode 100644 scripts/mobiles/tatooine/eopie_herdmaster.py create mode 100644 scripts/mobiles/tatooine/female_mountain_squill.py create mode 100644 scripts/mobiles/tatooine/feral_bantha.py create mode 100644 scripts/mobiles/tatooine/furios_ronto.py create mode 100644 scripts/mobiles/tatooine/giant_canyon_krayt_dragon.py create mode 100644 scripts/mobiles/tatooine/giant_sand_beetle.py create mode 100644 scripts/mobiles/tatooine/giant_worrt.py create mode 100644 scripts/mobiles/tatooine/gorg.py create mode 100644 scripts/mobiles/tatooine/gorg_glutton.py create mode 100644 scripts/mobiles/tatooine/grand_krayt_dragon.py create mode 100644 scripts/mobiles/tatooine/great_squill.py create mode 100644 scripts/mobiles/tatooine/greater_desert_womprat.py create mode 100644 scripts/mobiles/tatooine/grizzled_dewback.py create mode 100644 scripts/mobiles/tatooine/harmony_worrt.py create mode 100644 scripts/mobiles/tatooine/jundland_eopie.py create mode 100644 scripts/mobiles/tatooine/juvenile_canyon_krayt_dragon.py create mode 100644 scripts/mobiles/tatooine/kreetle_swarmling.py create mode 100644 scripts/mobiles/tatooine/large_cave_beetle.py create mode 100644 scripts/mobiles/tatooine/large_rock_beetle1.py create mode 100644 scripts/mobiles/tatooine/large_rock_beetle2.py create mode 100644 scripts/mobiles/tatooine/large_rock_beetle3.py create mode 100644 scripts/mobiles/tatooine/large_sand_beetle.py create mode 100644 scripts/mobiles/tatooine/lesser_bocatt.py create mode 100644 scripts/mobiles/tatooine/lesser_desert_womprat.py create mode 100644 scripts/mobiles/tatooine/lesser_dewback.py create mode 100644 scripts/mobiles/tatooine/malignant_squill.py create mode 100644 scripts/mobiles/tatooine/minor_worrt.py create mode 100644 scripts/mobiles/tatooine/mound_mite.py create mode 100644 scripts/mobiles/tatooine/mountain_dewback.py create mode 100644 scripts/mobiles/tatooine/mountain_squill.py create mode 100644 scripts/mobiles/tatooine/mountain_squill_guardian.py create mode 100644 scripts/mobiles/tatooine/mountain_squill_hunter.py create mode 100644 scripts/mobiles/tatooine/mountain_worrt.py create mode 100644 scripts/mobiles/tatooine/mutant_womprat.py create mode 100644 scripts/mobiles/tatooine/overkreetle.py create mode 100644 scripts/mobiles/tatooine/parry_stormtrooper_dewback.py create mode 100644 scripts/mobiles/tatooine/plaque_rat.py create mode 100644 scripts/mobiles/tatooine/razorback_felspur.py create mode 100644 scripts/mobiles/tatooine/razorclaw.py create mode 100644 scripts/mobiles/tatooine/rill.py create mode 100644 scripts/mobiles/tatooine/rock_beetle.py create mode 100644 scripts/mobiles/tatooine/rock_beetle1.py create mode 100644 scripts/mobiles/tatooine/rock_beetle_cave.py create mode 100644 scripts/mobiles/tatooine/rockmite.py create mode 100644 scripts/mobiles/tatooine/ronto.py create mode 100644 scripts/mobiles/tatooine/runted_rill.py create mode 100644 scripts/mobiles/tatooine/sand_beetle.py create mode 100644 scripts/mobiles/tatooine/sandreaver.py create mode 100644 scripts/mobiles/tatooine/savage_zucca_boar.py create mode 100644 scripts/mobiles/tatooine/scyk.py create mode 100644 scripts/mobiles/tatooine/sevorrt.py create mode 100644 scripts/mobiles/tatooine/sewer_worrt.py create mode 100644 scripts/mobiles/tatooine/sickly_womprat.py create mode 100644 scripts/mobiles/tatooine/slum_rat.py create mode 100644 scripts/mobiles/tatooine/snarlfang.py create mode 100644 scripts/mobiles/tatooine/squill.py create mode 100644 scripts/mobiles/tatooine/stormtrooper_dewback.py create mode 100644 scripts/mobiles/tatooine/sunstained_dunelizard.py create mode 100644 scripts/mobiles/tatooine/swarming_lesser_dewback.py create mode 100644 scripts/mobiles/tatooine/tame_rill.py create mode 100644 scripts/mobiles/tatooine/tame_womprat.py create mode 100644 scripts/mobiles/tatooine/tame_worrt.py create mode 100644 scripts/mobiles/tatooine/tatooine_mynock.py create mode 100644 scripts/mobiles/tatooine/tempest_rill.py create mode 100644 scripts/mobiles/tatooine/tormented_bocatt.py create mode 100644 scripts/mobiles/tatooine/tusken_bantha.py create mode 100644 scripts/mobiles/tatooine/twisted_dewback.py create mode 100644 scripts/mobiles/tatooine/twisted_rill.py create mode 100644 scripts/mobiles/tatooine/twisted_womprat.py create mode 100644 scripts/mobiles/tatooine/variegated_womprat.py create mode 100644 scripts/mobiles/tatooine/vicious_rill.py create mode 100644 scripts/mobiles/tatooine/volatile_scyk.py create mode 100644 scripts/mobiles/tatooine/wasteland_cupa.py create mode 100644 scripts/mobiles/tatooine/wild_bladeback_boar.py create mode 100644 scripts/mobiles/tatooine/wild_dune_boar.py create mode 100644 scripts/mobiles/tatooine/wonderous_cupa.py create mode 100644 scripts/mobiles/tatooine/worrt.py create mode 100644 scripts/mobiles/tatooine/worrt_gutbuster.py create mode 100644 scripts/mobiles/tatooine/young_mountain_squill.py create mode 100644 scripts/mobiles/tatooine/zucca_boar.py create mode 100644 src/resources/buffs/Buff.java create mode 100644 src/resources/buffs/BuffItem.java create mode 100644 src/resources/buffs/DamageOverTime.java create mode 100644 src/resources/common/BountyListItem.java create mode 100644 src/resources/loot/LootDrop.java create mode 100644 src/resources/loot/LootGroup.java create mode 100644 src/resources/loot/LootPool.java create mode 100644 src/resources/loot/LootRollSession.java create mode 100644 src/resources/objectives/BountyMissionObjective.java create mode 100644 src/resources/skills/SkillMod.java diff --git a/odb/bounties/placeholder.txt b/odb/bounties/placeholder.txt new file mode 100644 index 00000000..e69de29b diff --git a/scripts/conversation/reb_recruiter.py b/scripts/conversation/reb_recruiter.py new file mode 100644 index 00000000..9c8b803d --- /dev/null +++ b/scripts/conversation/reb_recruiter.py @@ -0,0 +1,585 @@ +from resources.common import ConversationOption +from resources.common import OutOfBand +from resources.common import ProsePackage +from resources.common import RadialOptions +from resources.datatables import PvpStatus +from resources.datatables import FactionStatus + +from services.sui import SUIWindow +from services.sui.SUIWindow import Trigger + +from java.util import Vector +import sys + + +impRecruiterRef = 0 + + +def startConversation(core, actor, npc): + global coreRef + global impRecruiterRef + coreRef = core + impRecruiterRef = npc + convSvc = core.conversationService + faction = actor.getFaction() + factionStatus = actor.getFactionStatus() + + if actor.getPvpStatus(PvpStatus.GoingOvert) or actor.getPvpStatus(PvpStatus.GoingCovert): + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_364') + return + elif actor.getFaction() != 'rebel' and actor.getFaction() != 'imperial': + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_334') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_348') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_83') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + + + options = Vector() + options.add(option1) + options.add(option2) + + convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen) + return + elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.OnLeave: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_216') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_49') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_330') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + prose4 = ProsePackage('conversation/faction_recruiter_rebel', 's_248') + outOfBand4 = OutOfBand() + outOfBand4.addProsePackage(prose4) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + option3 = ConversationOption(outOfBand4, 1) + + + options = Vector() + options.add(option1) + options.add(option2) + options.add(option3) + + convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen) + return + elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.Combatant: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_216') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_49') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose4 = ProsePackage('conversation/faction_recruiter_rebel', 's_330') + outOfBand4 = OutOfBand() + outOfBand4.addProsePackage(prose4) + prose5 = ProsePackage('conversation/faction_recruiter_rebel', 's_248') + outOfBand5 = OutOfBand() + outOfBand5.addProsePackage(prose5) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand4, 1) + option4 = ConversationOption(outOfBand5, 1) + + options = Vector() + options.add(option1) + options.add(option2) + options.add(option4) + convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen) + + return + elif actor.getFactionStatus() == FactionStatus.SpecialForces: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_216') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_49') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose4 = ProsePackage('conversation/faction_recruiter_rebel', 's_330') + outOfBand4 = OutOfBand() + outOfBand4.addProsePackage(prose4) + prose5 = ProsePackage('conversation/faction_recruiter_rebel', 's_248') + outOfBand5 = OutOfBand() + outOfBand5.addProsePackage(prose5) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand4, 1) + option4 = ConversationOption(outOfBand5, 1) + + options = Vector() + options.add(option1) + options.add(option2) + options.add(option4) + convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen) + + return + elif actor.getFaction() == 'imperial': + npc.setCurrentAnimation('all_b_emt_backhand') + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_230') + return + return + +def handleFirstScreen(core, actor, npc, selection): + + convSvc = core.conversationService + if actor.getFaction() != 'rebel' and actor.getFaction() != 'imperial': + if selection == 0: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_352') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_354') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_360') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + + + options = Vector() + options.add(option1) + options.add(option2) + + convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen) + return + + + if selection == 1: + return + + if selection == 2: + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_362') + return + return + elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.OnLeave: + if selection == 0: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_50') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_95') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_93') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + prose4 = ProsePackage('conversation/faction_recruiter_rebel', 's_74') + outOfBand4 = OutOfBand() + outOfBand4.addProsePackage(prose4) + prose5 = ProsePackage('conversation/faction_recruiter_rebel', 's_360') + outOfBand5 = OutOfBand() + outOfBand5.addProsePackage(prose5) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + option3 = ConversationOption(outOfBand4, 1) + option4 = ConversationOption(outOfBand5, 1) + + + options = Vector() + options.add(option1) + options.add(option2) + options.add(option3) + options.add(option4) + + convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen) + return + + if selection == 1: + percent = core.guildService.getGuildObject().getCurrentServerGCWTotalPercentMap().get(actor.getPlanet().getName()).getPercent().intValue() + convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/faction_recruiter_imperial:s_332", percent, "TO", str(100 - percent))) + return + + if selection == 2: + return + return + elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.Combatant: + if selection == 0: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_50') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_86') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_93') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + prose4 = ProsePackage('conversation/faction_recruiter_rebel', 's_74') + outOfBand4 = OutOfBand() + outOfBand4.addProsePackage(prose4) + prose5 = ProsePackage('conversation/faction_recruiter_rebel', 's_360') + outOfBand5 = OutOfBand() + outOfBand5.addProsePackage(prose5) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + option3 = ConversationOption(outOfBand4, 1) + option4 = ConversationOption(outOfBand5, 1) + + + options = Vector() + options.add(option1) + options.add(option2) + options.add(option3) + options.add(option4) + + convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen) + return + + if selection == 1: + percent = core.guildService.getGuildObject().getCurrentServerGCWTotalPercentMap().get(actor.getPlanet().getName()).getPercent().intValue() + convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/faction_recruiter_rebel:s_332", percent, "TO", str(100 - percent))) + return + + if selection == 2: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_76') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_78') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_360') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + + + options = Vector() + options.add(option1) + options.add(option2) + + convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen) + return + return + elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.SpecialForces: + if selection == 0: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_50') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_90') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_95') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + prose4 = ProsePackage('conversation/faction_recruiter_rebel', 's_78') + outOfBand4 = OutOfBand() + outOfBand4.addProsePackage(prose4) + prose5 = ProsePackage('conversation/faction_recruiter_rebel', 's_360') + outOfBand5 = OutOfBand() + outOfBand5.addProsePackage(prose5) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + option3 = ConversationOption(outOfBand4, 1) + option4 = ConversationOption(outOfBand5, 1) + + + options = Vector() + options.add(option1) + options.add(option2) + options.add(option3) + options.add(option4) + + convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen) + return + + if selection == 1: + percent = core.guildService.getGuildObject().getCurrentServerGCWTotalPercentMap().get(actor.getPlanet().getName()).getPercent().intValue() + convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/faction_recruiter_rebel:s_332", percent, "TO", str(100 - percent))) + return + + if selection == 2: + + return + return + + +def handleSecondScreen(core, actor, npc, selection): + convSvc = core.conversationService + + + if actor.getFaction() != 'rebel' and actor.getFaction() != 'imperial': + if selection == 0: + actor.setFaction('imperial') + actor.setFactionStatus(FactionStatus.OnLeave) + + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_99') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_358') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + option1 = ConversationOption(outOfBand2, 0) + + + options = Vector() + options.add(option1) + + + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_356') + return + if selection ==1: + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_362') + return + return + elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.OnLeave: + if selection == 0: + actor.setFactionStatus(FactionStatus.Combatant) + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_224') + return + + if selection == 1: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_64') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_66') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_226') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + + + + options = Vector() + options.add(option1) + options.add(option2) + + + convSvc.sendConversationOptions(actor, npc, options, handleFourthScreen) + return + if selection == 2: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_76') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_78') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_360') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + + + + options = Vector() + options.add(option1) + options.add(option2) + + + convSvc.sendConversationOptions(actor, npc, options, handleThirdScreen) + return + if selection == 3: + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_97') + return + return + elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.Combatant: + if selection == 0: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_88') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_90') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_94') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + + + + options = Vector() + options.add(option1) + options.add(option2) + + + convSvc.sendConversationOptions(actor, npc, options, handleFithScreen) + return + + if selection == 1: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_64') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_66') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_226') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + + + + options = Vector() + options.add(option1) + options.add(option2) + + + convSvc.sendConversationOptions(actor, npc, options, handleFourthScreen) + return + if selection == 2: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_76') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_78') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_360') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + + + + options = Vector() + options.add(option1) + options.add(option2) + + + convSvc.sendConversationOptions(actor, npc, options, handleThirdScreen) + return + if selection == 3: + return + return + elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.SpecialForces: + if selection == 0: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_88') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_90') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_94') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + + + + options = Vector() + options.add(option1) + options.add(option2) + + + convSvc.sendConversationOptions(actor, npc, options, handleFithScreen) + return + + if selection == 1: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_54') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_56') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_360') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + + + + options = Vector() + options.add(option1) + options.add(option2) + + + convSvc.sendConversationOptions(actor, npc, options, handleSixthScreen) + return + if selection == 2: + prose = ProsePackage('conversation/faction_recruiter_rebel', 's_76') + outOfBand = OutOfBand() + outOfBand.addProsePackage(prose) + convSvc.sendConversationMessage(actor, npc, outOfBand) + prose2 = ProsePackage('conversation/faction_recruiter_rebel', 's_74') + outOfBand2 = OutOfBand() + outOfBand2.addProsePackage(prose2) + prose3 = ProsePackage('conversation/faction_recruiter_rebel', 's_360') + outOfBand3 = OutOfBand() + outOfBand3.addProsePackage(prose3) + option1 = ConversationOption(outOfBand2, 0) + option2 = ConversationOption(outOfBand3, 1) + + + + options = Vector() + options.add(option1) + options.add(option2) + + + convSvc.sendConversationOptions(actor, npc, options, handleThirdScreen) + return + if selection == 3: + return + return + +def handleThirdScreen(core, actor, npc, selection): + if selection == 0: + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_58') + actor.setFaction('neutral') + return + + if selection == 1: + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_80') + return + return + +def handleFourthScreen(core, actor, npc, selection): + if selection == 0: + actor.setFactionStatus(FactionStatus.SpecialForces) + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_224') + return + if selection == 1: + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_72') + return + return + +def handleFithScreen(core, actor, npc, selection): + if selection == 0: + actor.setFactionStatus(FactionStatus.OnLeave); + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_58') + return + +def handleSixthScreen(core, actor, npc, selection): + if selection == 0: + actor.setFactionStatus(FactionStatus.Combatant) + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_92') + return + if selection == 1: + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_57') + return + return + +def endConversation(core, actor, npc): + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_304') + return \ No newline at end of file diff --git a/scripts/mobiles/canon/scout_trooper.py b/scripts/mobiles/canon/scout_trooper.py new file mode 100644 index 00000000..2b446944 --- /dev/null +++ b/scripts/mobiles/canon/scout_trooper.py @@ -0,0 +1,31 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from java.util import Vector + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('scout_trooper') + mobileTemplate.setLevel(90) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(24) + mobileTemplate.setAttackSpeed(0.4) + mobileTemplate.setWeaponType(1) + + templates = Vector() + templates.add('object/mobile/shared_dressed_scout_trooper_m.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShot') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('scout_trooper', mobileTemplate) + diff --git a/scripts/mobiles/canon/swamp_trooper.py b/scripts/mobiles/canon/swamp_trooper.py new file mode 100644 index 00000000..4ade7e9a --- /dev/null +++ b/scripts/mobiles/canon/swamp_trooper.py @@ -0,0 +1,31 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from java.util import Vector + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('swamp_trooper') + mobileTemplate.setLevel(33) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(24) + mobileTemplate.setAttackSpeed(0.4) + mobileTemplate.setWeaponType(0) + + templates = Vector() + templates.add('object/mobile/shared_dressed_swamp_trooper_m.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShot') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('swamp_trooper', mobileTemplate) + diff --git a/scripts/mobiles/lairs/tatooine_rill_lair_neutral_small.py b/scripts/mobiles/lairs/tatooine_rill_lair_neutral_small.py new file mode 100644 index 00000000..5eed8400 --- /dev/null +++ b/scripts/mobiles/lairs/tatooine_rill_lair_neutral_small.py @@ -0,0 +1,5 @@ +import sys + +def addTemplate(core): + core.spawnService.addLairTemplate('tatooine_rill_lair_neutral_small', 'rill', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/tatooine_worrt_lair_neutral_small.py b/scripts/mobiles/lairs/tatooine_worrt_lair_neutral_small.py new file mode 100644 index 00000000..87905581 --- /dev/null +++ b/scripts/mobiles/lairs/tatooine_worrt_lair_neutral_small.py @@ -0,0 +1,5 @@ +import sys + +def addTemplate(core): + core.spawnService.addLairTemplate('tatooine_worrt_lair_neutral_small', 'worrt', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/adolescent_krayt_dragon.py b/scripts/mobiles/tatooine/adolescent_krayt_dragon.py new file mode 100644 index 00000000..c1c3fb85 --- /dev/null +++ b/scripts/mobiles/tatooine/adolescent_krayt_dragon.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('krayt_dragon_adolescent') + mobileTemplate.setLevel(84) + mobileTemplate.setDifficulty(2) + mobileTemplate.setAttackRange(12) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_krayt_dragon.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('adolescent_krayt_dragon', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/armodragon.py b/scripts/mobiles/tatooine/armodragon.py new file mode 100644 index 00000000..494e4228 --- /dev/null +++ b/scripts/mobiles/tatooine/armodragon.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('dragonet_armodragon') + mobileTemplate.setLevel(25) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dragonet.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('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('armodragon', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/bantha_low.py b/scripts/mobiles/tatooine/bantha_low.py new file mode 100644 index 00000000..0238608e --- /dev/null +++ b/scripts/mobiles/tatooine/bantha_low.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('bantha') + mobileTemplate.setLevel(8) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bantha_hue.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('bantha_low', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/bantha_matriarch.py b/scripts/mobiles/tatooine/bantha_matriarch.py new file mode 100644 index 00000000..a0b5b7c5 --- /dev/null +++ b/scripts/mobiles/tatooine/bantha_matriarch.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('bantha matriarch') + mobileTemplate.setLevel(15) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_matriarch_bantha.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('bantha_matriarch', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/blight_boar.py b/scripts/mobiles/tatooine/blight_boar.py new file mode 100644 index 00000000..b25a7441 --- /dev/null +++ b/scripts/mobiles/tatooine/blight_boar.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('zucca_boar_blight') + mobileTemplate.setLevel(9) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_zucca_boar.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('blight_boar', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/bocatt.py b/scripts/mobiles/tatooine/bocatt.py new file mode 100644 index 00000000..3cbf9cc1 --- /dev/null +++ b/scripts/mobiles/tatooine/bocatt.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('bocatt') + mobileTemplate.setLevel(17) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bocatt.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('bocatt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/bonecracker_bantha.py b/scripts/mobiles/tatooine/bonecracker_bantha.py new file mode 100644 index 00000000..42341f23 --- /dev/null +++ b/scripts/mobiles/tatooine/bonecracker_bantha.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('bantha_bonecracker') + mobileTemplate.setLevel(21) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bantha_hue.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('bonecracker_bantha', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/bull_bantha.py b/scripts/mobiles/tatooine/bull_bantha.py new file mode 100644 index 00000000..c4626e21 --- /dev/null +++ b/scripts/mobiles/tatooine/bull_bantha.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('bull_bantha') + mobileTemplate.setLevel(15) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bantha_hue.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('bull_bantha', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/bull_ronto.py b/scripts/mobiles/tatooine/bull_ronto.py new file mode 100644 index 00000000..d75ca648 --- /dev/null +++ b/scripts/mobiles/tatooine/bull_ronto.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('ronto_male') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_ronto.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('bullronto', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/cannibal_dewback.py b/scripts/mobiles/tatooine/cannibal_dewback.py new file mode 100644 index 00000000..941c0ebf --- /dev/null +++ b/scripts/mobiles/tatooine/cannibal_dewback.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('dewback_cannibal') + mobileTemplate.setLevel(13) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dewback.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('cannibal_dewback', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/canyon_krayt_dragon.py b/scripts/mobiles/tatooine/canyon_krayt_dragon.py new file mode 100644 index 00000000..7eb53cc6 --- /dev/null +++ b/scripts/mobiles/tatooine/canyon_krayt_dragon.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('canyon_krayt_dragon') + mobileTemplate.setLevel(85) + mobileTemplate.setDifficulty(2) + mobileTemplate.setAttackRange(12) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_canyon_krayt_dragon.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('canyon_krayt_dragon', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/carion_kreetle.py b/scripts/mobiles/tatooine/carion_kreetle.py new file mode 100644 index 00000000..f1a1bf01 --- /dev/null +++ b/scripts/mobiles/tatooine/carion_kreetle.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('fragile_kreetle') + mobileTemplate.setLevel(2) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_kreetle.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('carrion_kreetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/cave_beetle.py b/scripts/mobiles/tatooine/cave_beetle.py new file mode 100644 index 00000000..2a98b7bc --- /dev/null +++ b/scripts/mobiles/tatooine/cave_beetle.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('cave_beetle') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rock_beetle.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('cave_beetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/city_rockmite.py b/scripts/mobiles/tatooine/city_rockmite.py new file mode 100644 index 00000000..b31914f3 --- /dev/null +++ b/scripts/mobiles/tatooine/city_rockmite.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('city_rockmite') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rock_mite.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('city_rockmite', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/city_sewer_swamprat.py b/scripts/mobiles/tatooine/city_sewer_swamprat.py new file mode 100644 index 00000000..ecb72a17 --- /dev/null +++ b/scripts/mobiles/tatooine/city_sewer_swamprat.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('city_sewer_swamprat') + mobileTemplate.setLevel(3) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_womp_rat.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('city_sewer_swamprat', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/cupa.py b/scripts/mobiles/tatooine/cupa.py new file mode 100644 index 00000000..b44cff3a --- /dev/null +++ b/scripts/mobiles/tatooine/cupa.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('cu_pa') + mobileTemplate.setLevel(3) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_cu_pa.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('cu_pa', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/death_kreetle.py b/scripts/mobiles/tatooine/death_kreetle.py new file mode 100644 index 00000000..5e39d8ae --- /dev/null +++ b/scripts/mobiles/tatooine/death_kreetle.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('kreetle_death') + mobileTemplate.setLevel(7) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_kreetle.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('death_kreetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/desert_eopie.py b/scripts/mobiles/tatooine/desert_eopie.py new file mode 100644 index 00000000..be18b6bb --- /dev/null +++ b/scripts/mobiles/tatooine/desert_eopie.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('desert_eopie') + mobileTemplate.setLevel(16) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_eopie.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('desert_eopie', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/desert_kreetle.py b/scripts/mobiles/tatooine/desert_kreetle.py new file mode 100644 index 00000000..bddbbf1a --- /dev/null +++ b/scripts/mobiles/tatooine/desert_kreetle.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('orphan_kreetle') + mobileTemplate.setLevel(3) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_kreetle.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('desert_kreetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/desert_razorback.py b/scripts/mobiles/tatooine/desert_razorback.py new file mode 100644 index 00000000..6e07cd81 --- /dev/null +++ b/scripts/mobiles/tatooine/desert_razorback.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('desert_razorback') + mobileTemplate.setLevel(23) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_zucca_boar.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('desert_razorback', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/desert_squill.py b/scripts/mobiles/tatooine/desert_squill.py new file mode 100644 index 00000000..2ab4b5ca --- /dev/null +++ b/scripts/mobiles/tatooine/desert_squill.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('desert_squill') + mobileTemplate.setLevel(14) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_squill.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('desert_squill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/dimu_bantha.py b/scripts/mobiles/tatooine/dimu_bantha.py new file mode 100644 index 00000000..5280c721 --- /dev/null +++ b/scripts/mobiles/tatooine/dimu_bantha.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('dim_u_bantha') + mobileTemplate.setLevel(3) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bantha_hue.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('dim-u_bantha', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/diseased_bocatt.py b/scripts/mobiles/tatooine/diseased_bocatt.py new file mode 100644 index 00000000..96bb977e --- /dev/null +++ b/scripts/mobiles/tatooine/diseased_bocatt.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('bocatt_diseased') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bocatt.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('diseased_bocatt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/domestic_eopie.py b/scripts/mobiles/tatooine/domestic_eopie.py new file mode 100644 index 00000000..33e8077b --- /dev/null +++ b/scripts/mobiles/tatooine/domestic_eopie.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('domestic_eopie') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_eopie.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('domestic_eopie', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/dragonet.py b/scripts/mobiles/tatooine/dragonet.py new file mode 100644 index 00000000..5d8cb006 --- /dev/null +++ b/scripts/mobiles/tatooine/dragonet.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('dragonet') + mobileTemplate.setLevel(24) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dune_lizard.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('dragonet', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/drooling_nuna.py b/scripts/mobiles/tatooine/drooling_nuna.py new file mode 100644 index 00000000..b729515c --- /dev/null +++ b/scripts/mobiles/tatooine/drooling_nuna.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('dwarf_nuna_drooling') + mobileTemplate.setLevel(2) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_nuna.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('drooling_nuna', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/dune_bantha.py b/scripts/mobiles/tatooine/dune_bantha.py new file mode 100644 index 00000000..cb29c496 --- /dev/null +++ b/scripts/mobiles/tatooine/dune_bantha.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('dune_bantha') + mobileTemplate.setLevel(20) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bantha_hue.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('dune_bantha', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/dune_beetle.py b/scripts/mobiles/tatooine/dune_beetle.py new file mode 100644 index 00000000..9cc34df7 --- /dev/null +++ b/scripts/mobiles/tatooine/dune_beetle.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('dune_beetle') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_giant_sand_beetle.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('dune_beetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/dune_lizard.py b/scripts/mobiles/tatooine/dune_lizard.py new file mode 100644 index 00000000..ec826be0 --- /dev/null +++ b/scripts/mobiles/tatooine/dune_lizard.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('dune_lizard') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dune_lizard.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('dune_lizard', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/dwarf_bantha.py b/scripts/mobiles/tatooine/dwarf_bantha.py new file mode 100644 index 00000000..6c8449ca --- /dev/null +++ b/scripts/mobiles/tatooine/dwarf_bantha.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('dwarf_bantha') + mobileTemplate.setLevel(10) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dwarf_bantha.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('dwarf_bantha', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/dwarf_eopie.py b/scripts/mobiles/tatooine/dwarf_eopie.py new file mode 100644 index 00000000..cb9a80cc --- /dev/null +++ b/scripts/mobiles/tatooine/dwarf_eopie.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('dwarf_eopie') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dwarf_eopie.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('dwarf_eopie', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/dwarf_nuna.py b/scripts/mobiles/tatooine/dwarf_nuna.py new file mode 100644 index 00000000..423fb7d9 --- /dev/null +++ b/scripts/mobiles/tatooine/dwarf_nuna.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('dwarf_nuna') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dwarf_nuna.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('dwarf_nuna', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/elder_zucca_boar.py b/scripts/mobiles/tatooine/elder_zucca_boar.py new file mode 100644 index 00000000..11e040e2 --- /dev/null +++ b/scripts/mobiles/tatooine/elder_zucca_boar.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('zucca_boar_elder') + mobileTemplate.setLevel(8) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_zucca_boar.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('elder_zucca_boar', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/elite_dewback_cannibal.py b/scripts/mobiles/tatooine/elite_dewback_cannibal.py new file mode 100644 index 00000000..910ba869 --- /dev/null +++ b/scripts/mobiles/tatooine/elite_dewback_cannibal.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('elite_dewback_canibal') + mobileTemplate.setLevel(13) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dewback.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('elite_dewback_cannibal', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/elite_dragonet.py b/scripts/mobiles/tatooine/elite_dragonet.py new file mode 100644 index 00000000..481b2d64 --- /dev/null +++ b/scripts/mobiles/tatooine/elite_dragonet.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('elite_dragonet') + mobileTemplate.setLevel(24) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dragonet.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_large_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('elite_dragonet', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/elite_dune_lizard.py b/scripts/mobiles/tatooine/elite_dune_lizard.py new file mode 100644 index 00000000..a0adf4e8 --- /dev/null +++ b/scripts/mobiles/tatooine/elite_dune_lizard.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('elite_dune_lizard') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dune_lizard.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_large_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('elite_dune_lizard', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/elite_giant_sand_beetle.py b/scripts/mobiles/tatooine/elite_giant_sand_beetle.py new file mode 100644 index 00000000..c21a083c --- /dev/null +++ b/scripts/mobiles/tatooine/elite_giant_sand_beetle.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('elite_giant_sand_beetle') + mobileTemplate.setLevel(25) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_giant_sand_beetle.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('elite_giant_sand_beetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/elite_mutant_womprat.py b/scripts/mobiles/tatooine/elite_mutant_womprat.py new file mode 100644 index 00000000..de786778 --- /dev/null +++ b/scripts/mobiles/tatooine/elite_mutant_womprat.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('elite_mutant_womprat') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_womp_rat.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('womprat', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/elite_ronto.py b/scripts/mobiles/tatooine/elite_ronto.py new file mode 100644 index 00000000..a5d22cef --- /dev/null +++ b/scripts/mobiles/tatooine/elite_ronto.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('elite_ronto_ronto') + mobileTemplate.setLevel(17) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_ronto.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('elite_ronto', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/elite_scyk.py b/scripts/mobiles/tatooine/elite_scyk.py new file mode 100644 index 00000000..54ad052c --- /dev/null +++ b/scripts/mobiles/tatooine/elite_scyk.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('elite_scyk') + mobileTemplate.setLevel(11) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_scyk.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('elite_scyk', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/elite_sevorrt.py b/scripts/mobiles/tatooine/elite_sevorrt.py new file mode 100644 index 00000000..190a9e26 --- /dev/null +++ b/scripts/mobiles/tatooine/elite_sevorrt.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('elite_sevorrt') + mobileTemplate.setLevel(8) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_sevorrt.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('elite_sevorrt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/enraged_mountain_dewback.py b/scripts/mobiles/tatooine/enraged_mountain_dewback.py new file mode 100644 index 00000000..dfebff92 --- /dev/null +++ b/scripts/mobiles/tatooine/enraged_mountain_dewback.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('elite_mountain_dewback') + mobileTemplate.setLevel(22) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dewback.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('enraged_mountain_dewback', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/enraged_squill.py b/scripts/mobiles/tatooine/enraged_squill.py new file mode 100644 index 00000000..3fd86349 --- /dev/null +++ b/scripts/mobiles/tatooine/enraged_squill.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('elite_squill') + mobileTemplate.setLevel(12) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_squill.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('enraged_squill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/eoni.py b/scripts/mobiles/tatooine/eoni.py new file mode 100644 index 00000000..0dd12e09 --- /dev/null +++ b/scripts/mobiles/tatooine/eoni.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('elite_jundland_eopie') + mobileTemplate.setLevel(21) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_eopie.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('eoni', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/eopie.py b/scripts/mobiles/tatooine/eopie.py new file mode 100644 index 00000000..8e1f5ae7 --- /dev/null +++ b/scripts/mobiles/tatooine/eopie.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('eopie') + mobileTemplate.setLevel(4) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_eopie.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('eopie', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/eopie_herdmaster.py b/scripts/mobiles/tatooine/eopie_herdmaster.py new file mode 100644 index 00000000..f8abe532 --- /dev/null +++ b/scripts/mobiles/tatooine/eopie_herdmaster.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('eopie_herdmaster') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_eopie.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('eopie_herdmaster', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/female_mountain_squill.py b/scripts/mobiles/tatooine/female_mountain_squill.py new file mode 100644 index 00000000..e2da21e4 --- /dev/null +++ b/scripts/mobiles/tatooine/female_mountain_squill.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('female_mountain_squill') + mobileTemplate.setLevel(17) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_squill.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('female_mountain_squill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/feral_bantha.py b/scripts/mobiles/tatooine/feral_bantha.py new file mode 100644 index 00000000..fcbbbebc --- /dev/null +++ b/scripts/mobiles/tatooine/feral_bantha.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('feral_bantha') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(15) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bantha_hue.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('feral_bantha', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/furios_ronto.py b/scripts/mobiles/tatooine/furios_ronto.py new file mode 100644 index 00000000..c8c4fe74 --- /dev/null +++ b/scripts/mobiles/tatooine/furios_ronto.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('ronto_furious') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_ronto.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('furious_ronto', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/giant_canyon_krayt_dragon.py b/scripts/mobiles/tatooine/giant_canyon_krayt_dragon.py new file mode 100644 index 00000000..2d86f3cd --- /dev/null +++ b/scripts/mobiles/tatooine/giant_canyon_krayt_dragon.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('giant_canyon_krayt_dragon') + mobileTemplate.setLevel(87) + mobileTemplate.setDifficulty(2) + mobileTemplate.setAttackRange(12) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_krayt_dragon.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('giant_canyon_krayt_dragon', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/giant_sand_beetle.py b/scripts/mobiles/tatooine/giant_sand_beetle.py new file mode 100644 index 00000000..2f9138d5 --- /dev/null +++ b/scripts/mobiles/tatooine/giant_sand_beetle.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('giant_sand_beetle') + mobileTemplate.setLevel(25) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_giant_sand_beetle.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('giant_sand_beetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/giant_worrt.py b/scripts/mobiles/tatooine/giant_worrt.py new file mode 100644 index 00000000..27edbbed --- /dev/null +++ b/scripts/mobiles/tatooine/giant_worrt.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('giant_worrt') + mobileTemplate.setLevel(13) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_giant_worrt.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('giant_worrt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/gorg.py b/scripts/mobiles/tatooine/gorg.py new file mode 100644 index 00000000..731c5d4a --- /dev/null +++ b/scripts/mobiles/tatooine/gorg.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('gorg') + mobileTemplate.setLevel(2) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_gorg.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('gorg', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/gorg_glutton.py b/scripts/mobiles/tatooine/gorg_glutton.py new file mode 100644 index 00000000..7eaddd81 --- /dev/null +++ b/scripts/mobiles/tatooine/gorg_glutton.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('gorg_glutton') + mobileTemplate.setLevel(2) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_gorg.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('gorg_glutton', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/grand_krayt_dragon.py b/scripts/mobiles/tatooine/grand_krayt_dragon.py new file mode 100644 index 00000000..d149306b --- /dev/null +++ b/scripts/mobiles/tatooine/grand_krayt_dragon.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('krayt_dragon_grand') + mobileTemplate.setLevel(88) + mobileTemplate.setDifficulty(2) + mobileTemplate.setAttackRange(12) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_krayt_dragon.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('grand_krayt_dragon', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/great_squill.py b/scripts/mobiles/tatooine/great_squill.py new file mode 100644 index 00000000..ec27d549 --- /dev/null +++ b/scripts/mobiles/tatooine/great_squill.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('squill_great') + mobileTemplate.setLevel(13) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_squill.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('great_squill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/greater_desert_womprat.py b/scripts/mobiles/tatooine/greater_desert_womprat.py new file mode 100644 index 00000000..cbf1c39a --- /dev/null +++ b/scripts/mobiles/tatooine/greater_desert_womprat.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('greater_desert_womprat') + mobileTemplate.setLevel(12) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_greater_desert_womp_rat.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('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('greater_desert_womprat', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/grizzled_dewback.py b/scripts/mobiles/tatooine/grizzled_dewback.py new file mode 100644 index 00000000..416f9a58 --- /dev/null +++ b/scripts/mobiles/tatooine/grizzled_dewback.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('grizzled_dewback') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dewback.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('grizzled_dewback', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/harmony_worrt.py b/scripts/mobiles/tatooine/harmony_worrt.py new file mode 100644 index 00000000..07f24218 --- /dev/null +++ b/scripts/mobiles/tatooine/harmony_worrt.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('harmony_worrt') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_worrt.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('harmony_worrt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/jundland_eopie.py b/scripts/mobiles/tatooine/jundland_eopie.py new file mode 100644 index 00000000..ee6cf43c --- /dev/null +++ b/scripts/mobiles/tatooine/jundland_eopie.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('jundland_eopie') + mobileTemplate.setLevel(21) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_eopie.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('jundland_eopie', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/juvenile_canyon_krayt_dragon.py b/scripts/mobiles/tatooine/juvenile_canyon_krayt_dragon.py new file mode 100644 index 00000000..d06ec11d --- /dev/null +++ b/scripts/mobiles/tatooine/juvenile_canyon_krayt_dragon.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('juvenile_canyon_krayt') + mobileTemplate.setLevel(82) + mobileTemplate.setDifficulty(2) + mobileTemplate.setAttackRange(12) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_juvenile_canyon_krayt.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('juvenile_canyon_krayt_dragon', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/kreetle_swarmling.py b/scripts/mobiles/tatooine/kreetle_swarmling.py new file mode 100644 index 00000000..9f998e07 --- /dev/null +++ b/scripts/mobiles/tatooine/kreetle_swarmling.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('kreetle_swarming') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_kreetle.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('kreetle_swarmling', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/large_cave_beetle.py b/scripts/mobiles/tatooine/large_cave_beetle.py new file mode 100644 index 00000000..ccfc9a8d --- /dev/null +++ b/scripts/mobiles/tatooine/large_cave_beetle.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('large_cave_beetle') + mobileTemplate.setLevel(21) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rock_beetle.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('large_cave_beetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/large_rock_beetle1.py b/scripts/mobiles/tatooine/large_rock_beetle1.py new file mode 100644 index 00000000..39078fb6 --- /dev/null +++ b/scripts/mobiles/tatooine/large_rock_beetle1.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('large_rock_beetle') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rock_beetle.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('large_rock_beetle_1', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/large_rock_beetle2.py b/scripts/mobiles/tatooine/large_rock_beetle2.py new file mode 100644 index 00000000..dfadc654 --- /dev/null +++ b/scripts/mobiles/tatooine/large_rock_beetle2.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('large_rock_beetle') + mobileTemplate.setLevel(19) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rock_beetle.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('large_rock_beetle_2', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/large_rock_beetle3.py b/scripts/mobiles/tatooine/large_rock_beetle3.py new file mode 100644 index 00000000..1cca8d4e --- /dev/null +++ b/scripts/mobiles/tatooine/large_rock_beetle3.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('large_rock_beetle') + mobileTemplate.setLevel(19) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rock_beetle.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('large_rock_beetle_3', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/large_sand_beetle.py b/scripts/mobiles/tatooine/large_sand_beetle.py new file mode 100644 index 00000000..2bfc2cb9 --- /dev/null +++ b/scripts/mobiles/tatooine/large_sand_beetle.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('large_sand_beetle') + mobileTemplate.setLevel(24) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_giant_sand_beetle.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('large_sand_beetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/lesser_bocatt.py b/scripts/mobiles/tatooine/lesser_bocatt.py new file mode 100644 index 00000000..d768a79b --- /dev/null +++ b/scripts/mobiles/tatooine/lesser_bocatt.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('lesser_bocatt') + mobileTemplate.setLevel(14) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bocatt.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('lesser_bocatt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/lesser_desert_womprat.py b/scripts/mobiles/tatooine/lesser_desert_womprat.py new file mode 100644 index 00000000..66ff6a9f --- /dev/null +++ b/scripts/mobiles/tatooine/lesser_desert_womprat.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('lesser_desert_womprat') + mobileTemplate.setLevel(4) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_lesser_desert_womp_rat.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('lesser_deser_womprat', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/lesser_dewback.py b/scripts/mobiles/tatooine/lesser_dewback.py new file mode 100644 index 00000000..d6a49360 --- /dev/null +++ b/scripts/mobiles/tatooine/lesser_dewback.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('lesser_dewback') + mobileTemplate.setLevel(4) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dewback.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('lesser_dewback', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/malignant_squill.py b/scripts/mobiles/tatooine/malignant_squill.py new file mode 100644 index 00000000..2b96c627 --- /dev/null +++ b/scripts/mobiles/tatooine/malignant_squill.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('malignant_squill') + mobileTemplate.setLevel(50) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_squill.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('malignant_squill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/minor_worrt.py b/scripts/mobiles/tatooine/minor_worrt.py new file mode 100644 index 00000000..5ffa7afe --- /dev/null +++ b/scripts/mobiles/tatooine/minor_worrt.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('minor_worrt') + mobileTemplate.setLevel(3) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_minor_worrt.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('minor_worrt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/mound_mite.py b/scripts/mobiles/tatooine/mound_mite.py new file mode 100644 index 00000000..c62a5715 --- /dev/null +++ b/scripts/mobiles/tatooine/mound_mite.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('mound_mite') + mobileTemplate.setLevel(4) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_mound_mite.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('mound_mite', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/mountain_dewback.py b/scripts/mobiles/tatooine/mountain_dewback.py new file mode 100644 index 00000000..6b73306f --- /dev/null +++ b/scripts/mobiles/tatooine/mountain_dewback.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('mountain_dewback') + mobileTemplate.setLevel(22) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_mountain_dewback.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('mountain_dewback', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/mountain_squill.py b/scripts/mobiles/tatooine/mountain_squill.py new file mode 100644 index 00000000..052d4e62 --- /dev/null +++ b/scripts/mobiles/tatooine/mountain_squill.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('mountain_squill') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_mountain_squill.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('mountain_squill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/mountain_squill_guardian.py b/scripts/mobiles/tatooine/mountain_squill_guardian.py new file mode 100644 index 00000000..5b402840 --- /dev/null +++ b/scripts/mobiles/tatooine/mountain_squill_guardian.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('mountain_squill_guardian') + mobileTemplate.setLevel(19) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_mountain_squill.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('mountain_squill_guardian', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/mountain_squill_hunter.py b/scripts/mobiles/tatooine/mountain_squill_hunter.py new file mode 100644 index 00000000..5393c868 --- /dev/null +++ b/scripts/mobiles/tatooine/mountain_squill_hunter.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('mountain_squill_hunter') + mobileTemplate.setLevel(19) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_mountain_squill.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('mountain_squill_hunter', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/mountain_worrt.py b/scripts/mobiles/tatooine/mountain_worrt.py new file mode 100644 index 00000000..1790dd65 --- /dev/null +++ b/scripts/mobiles/tatooine/mountain_worrt.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('mountain_worrt') + mobileTemplate.setLevel(19) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_worrt.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('mountain_worrt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/mutant_womprat.py b/scripts/mobiles/tatooine/mutant_womprat.py new file mode 100644 index 00000000..831182ac --- /dev/null +++ b/scripts/mobiles/tatooine/mutant_womprat.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('mutant_womprat') + mobileTemplate.setLevel(12) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_womp_rat.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('womprat', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/overkreetle.py b/scripts/mobiles/tatooine/overkreetle.py new file mode 100644 index 00000000..7f6bb056 --- /dev/null +++ b/scripts/mobiles/tatooine/overkreetle.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('kreetle_over') + mobileTemplate.setLevel(11) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_kreetle.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('overkreetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/parry_stormtrooper_dewback.py b/scripts/mobiles/tatooine/parry_stormtrooper_dewback.py new file mode 100644 index 00000000..9c961a1f --- /dev/null +++ b/scripts/mobiles/tatooine/parry_stormtrooper_dewback.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('parry_stormtrooper_dewback') + mobileTemplate.setLevel(17) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dewback_armored.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('parry_stormtrooper_dewback', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/plaque_rat.py b/scripts/mobiles/tatooine/plaque_rat.py new file mode 100644 index 00000000..53a5a8e1 --- /dev/null +++ b/scripts/mobiles/tatooine/plaque_rat.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('womprat_plague') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_womp_rat.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('plaque_womprat', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/razorback_felspur.py b/scripts/mobiles/tatooine/razorback_felspur.py new file mode 100644 index 00000000..ca591441 --- /dev/null +++ b/scripts/mobiles/tatooine/razorback_felspur.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('desert_razorback_felspur') + mobileTemplate.setLevel(24) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_zucca_boar.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('razorback_felspur', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/razorclaw.py b/scripts/mobiles/tatooine/razorclaw.py new file mode 100644 index 00000000..2434283f --- /dev/null +++ b/scripts/mobiles/tatooine/razorclaw.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('elite_desert_razorback') + mobileTemplate.setLevel(23) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_zucca_boar.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('razorclaw', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/rill.py b/scripts/mobiles/tatooine/rill.py new file mode 100644 index 00000000..9e82c0c2 --- /dev/null +++ b/scripts/mobiles/tatooine/rill.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('rill') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rill.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('rill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/rock_beetle.py b/scripts/mobiles/tatooine/rock_beetle.py new file mode 100644 index 00000000..e5241063 --- /dev/null +++ b/scripts/mobiles/tatooine/rock_beetle.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('rock_beetle') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rock_beetle.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('rock_beetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/rock_beetle1.py b/scripts/mobiles/tatooine/rock_beetle1.py new file mode 100644 index 00000000..6145a123 --- /dev/null +++ b/scripts/mobiles/tatooine/rock_beetle1.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('rock_beetle') + mobileTemplate.setLevel(19) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rock_beetle.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('rock_beetle_1', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/rock_beetle_cave.py b/scripts/mobiles/tatooine/rock_beetle_cave.py new file mode 100644 index 00000000..afa926ac --- /dev/null +++ b/scripts/mobiles/tatooine/rock_beetle_cave.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('rock_beetle_cave') + mobileTemplate.setLevel(19) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rock_beetle.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('rock_beetle_cave', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/rockmite.py b/scripts/mobiles/tatooine/rockmite.py new file mode 100644 index 00000000..bd6f39e5 --- /dev/null +++ b/scripts/mobiles/tatooine/rockmite.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('rockmite') + mobileTemplate.setLevel(8) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rock_mite.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('rockmite', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/ronto.py b/scripts/mobiles/tatooine/ronto.py new file mode 100644 index 00000000..68e02924 --- /dev/null +++ b/scripts/mobiles/tatooine/ronto.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('ronto') + mobileTemplate.setLevel(17) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_ronto.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('ronto', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/runted_rill.py b/scripts/mobiles/tatooine/runted_rill.py new file mode 100644 index 00000000..dd84444f --- /dev/null +++ b/scripts/mobiles/tatooine/runted_rill.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('runted_rill') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rill.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('runted_rill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/sand_beetle.py b/scripts/mobiles/tatooine/sand_beetle.py new file mode 100644 index 00000000..072fa787 --- /dev/null +++ b/scripts/mobiles/tatooine/sand_beetle.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('sand_beetle') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_giant_sand_beetle.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('sand_beetle', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/sandreaver.py b/scripts/mobiles/tatooine/sandreaver.py new file mode 100644 index 00000000..86af2d0b --- /dev/null +++ b/scripts/mobiles/tatooine/sandreaver.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('dewback_sandreaver') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dewback.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('sandreaver', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/savage_zucca_boar.py b/scripts/mobiles/tatooine/savage_zucca_boar.py new file mode 100644 index 00000000..646cc819 --- /dev/null +++ b/scripts/mobiles/tatooine/savage_zucca_boar.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('elite_zucca_boar') + mobileTemplate.setLevel(8) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_zucca_boar.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('savage_zucca_boar', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/scyk.py b/scripts/mobiles/tatooine/scyk.py new file mode 100644 index 00000000..f3c09a86 --- /dev/null +++ b/scripts/mobiles/tatooine/scyk.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('scyk') + mobileTemplate.setLevel(11) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_scyk.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('scyk', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/sevorrt.py b/scripts/mobiles/tatooine/sevorrt.py new file mode 100644 index 00000000..3bcd9926 --- /dev/null +++ b/scripts/mobiles/tatooine/sevorrt.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('sevorrt') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_sevorrt.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('sevorrt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/sewer_worrt.py b/scripts/mobiles/tatooine/sewer_worrt.py new file mode 100644 index 00000000..ac614b18 --- /dev/null +++ b/scripts/mobiles/tatooine/sewer_worrt.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('sewer_worrt') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_worrt.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('sewer_worrt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/sickly_womprat.py b/scripts/mobiles/tatooine/sickly_womprat.py new file mode 100644 index 00000000..3961ece7 --- /dev/null +++ b/scripts/mobiles/tatooine/sickly_womprat.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('sickly_womprat') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_womp_rat.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('sickly_womprat', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/slum_rat.py b/scripts/mobiles/tatooine/slum_rat.py new file mode 100644 index 00000000..90eeb0cf --- /dev/null +++ b/scripts/mobiles/tatooine/slum_rat.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('womprat_city') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_womp_rat.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('slum_rat', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/snarlfang.py b/scripts/mobiles/tatooine/snarlfang.py new file mode 100644 index 00000000..95aa8910 --- /dev/null +++ b/scripts/mobiles/tatooine/snarlfang.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('elite_bocatt') + mobileTemplate.setLevel(17) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bocatt.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('snarlfang', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/squill.py b/scripts/mobiles/tatooine/squill.py new file mode 100644 index 00000000..61abb0a3 --- /dev/null +++ b/scripts/mobiles/tatooine/squill.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('squill') + mobileTemplate.setLevel(12) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_squill.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('squill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/stormtrooper_dewback.py b/scripts/mobiles/tatooine/stormtrooper_dewback.py new file mode 100644 index 00000000..b6dcea7f --- /dev/null +++ b/scripts/mobiles/tatooine/stormtrooper_dewback.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('stormtrooper_dewback') + mobileTemplate.setLevel(14) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dewback_armored.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('stormtrooper_dewback', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/sunstained_dunelizard.py b/scripts/mobiles/tatooine/sunstained_dunelizard.py new file mode 100644 index 00000000..03737a37 --- /dev/null +++ b/scripts/mobiles/tatooine/sunstained_dunelizard.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('dune_lizard_sunstained') + mobileTemplate.setLevel(19) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dune_lizard.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('sunstained_dune_lizard', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/swarming_lesser_dewback.py b/scripts/mobiles/tatooine/swarming_lesser_dewback.py new file mode 100644 index 00000000..88fae935 --- /dev/null +++ b/scripts/mobiles/tatooine/swarming_lesser_dewback.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('swarming_lesser_dewback') + mobileTemplate.setLevel(13) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_swarming_lesser_dewback.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('swarming_lesser_dewback', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/tame_rill.py b/scripts/mobiles/tatooine/tame_rill.py new file mode 100644 index 00000000..4ec78cae --- /dev/null +++ b/scripts/mobiles/tatooine/tame_rill.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('tame_rill') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rill.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('tame_rill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/tame_womprat.py b/scripts/mobiles/tatooine/tame_womprat.py new file mode 100644 index 00000000..bbc970a1 --- /dev/null +++ b/scripts/mobiles/tatooine/tame_womprat.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('tame_womprat') + mobileTemplate.setLevel(2) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_womp_rat.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('tame_womprat', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/tame_worrt.py b/scripts/mobiles/tatooine/tame_worrt.py new file mode 100644 index 00000000..75bda089 --- /dev/null +++ b/scripts/mobiles/tatooine/tame_worrt.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('tame_worrt') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_worrt.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('tame_worrt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/tatooine_mynock.py b/scripts/mobiles/tatooine/tatooine_mynock.py new file mode 100644 index 00000000..64b3e4f1 --- /dev/null +++ b/scripts/mobiles/tatooine/tatooine_mynock.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('tatooine_mynock') + mobileTemplate.setLevel(2) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_mynock.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('tatooine_mynock', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/tempest_rill.py b/scripts/mobiles/tatooine/tempest_rill.py new file mode 100644 index 00000000..d5df155c --- /dev/null +++ b/scripts/mobiles/tatooine/tempest_rill.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('rill_tempest') + mobileTemplate.setLevel(8) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rill.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('tempest_rill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/tormented_bocatt.py b/scripts/mobiles/tatooine/tormented_bocatt.py new file mode 100644 index 00000000..ed5c4ecd --- /dev/null +++ b/scripts/mobiles/tatooine/tormented_bocatt.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('bocatt_tormented') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(15) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bocatt.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureRangedAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('tormented_bocatt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/tusken_bantha.py b/scripts/mobiles/tatooine/tusken_bantha.py new file mode 100644 index 00000000..13943979 --- /dev/null +++ b/scripts/mobiles/tatooine/tusken_bantha.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('feeder_tusken_bantha') + mobileTemplate.setLevel(30) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_bantha_hue.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('tusken_bantha', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/twisted_dewback.py b/scripts/mobiles/tatooine/twisted_dewback.py new file mode 100644 index 00000000..f88b8020 --- /dev/null +++ b/scripts/mobiles/tatooine/twisted_dewback.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('twisted_dewback') + mobileTemplate.setLevel(11) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dewback.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('twisted_dewback', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/twisted_rill.py b/scripts/mobiles/tatooine/twisted_rill.py new file mode 100644 index 00000000..977dd020 --- /dev/null +++ b/scripts/mobiles/tatooine/twisted_rill.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('twisted_rill') + mobileTemplate.setLevel(11) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rill.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('twisted_rill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/twisted_womprat.py b/scripts/mobiles/tatooine/twisted_womprat.py new file mode 100644 index 00000000..851ffcda --- /dev/null +++ b/scripts/mobiles/tatooine/twisted_womprat.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('twisted_womprat') + mobileTemplate.setLevel(11) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_womp_rat.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('twisted_womprat', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/variegated_womprat.py b/scripts/mobiles/tatooine/variegated_womprat.py new file mode 100644 index 00000000..72cc6401 --- /dev/null +++ b/scripts/mobiles/tatooine/variegated_womprat.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('variegated_womprat') + mobileTemplate.setLevel(12) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_variegated_womp_rat.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('variegated_womprat', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/vicious_rill.py b/scripts/mobiles/tatooine/vicious_rill.py new file mode 100644 index 00000000..19262365 --- /dev/null +++ b/scripts/mobiles/tatooine/vicious_rill.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('vicious_rill') + mobileTemplate.setLevel(3) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_rill.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('vicious_rill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/volatile_scyk.py b/scripts/mobiles/tatooine/volatile_scyk.py new file mode 100644 index 00000000..0262572f --- /dev/null +++ b/scripts/mobiles/tatooine/volatile_scyk.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('scyk_volatile') + mobileTemplate.setLevel(12) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_scyk.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('volatile_scyk', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/wasteland_cupa.py b/scripts/mobiles/tatooine/wasteland_cupa.py new file mode 100644 index 00000000..e7bcd8b2 --- /dev/null +++ b/scripts/mobiles/tatooine/wasteland_cupa.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('wasteland_cu_pa') + mobileTemplate.setLevel(20) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_cu_pa.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('wasteland_cu_pa', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/wild_bladeback_boar.py b/scripts/mobiles/tatooine/wild_bladeback_boar.py new file mode 100644 index 00000000..6568f78f --- /dev/null +++ b/scripts/mobiles/tatooine/wild_bladeback_boar.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('quest_hero_of_tatooine_ferocious_beast') + mobileTemplate.setLevel(40) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_zucca_boar.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('wild_bladeback_boar', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/wild_dune_boar.py b/scripts/mobiles/tatooine/wild_dune_boar.py new file mode 100644 index 00000000..61a673ae --- /dev/null +++ b/scripts/mobiles/tatooine/wild_dune_boar.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('wild_dune_boar') + mobileTemplate.setLevel(50) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_zucca_boar.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('wild_dune_boar', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/wonderous_cupa.py b/scripts/mobiles/tatooine/wonderous_cupa.py new file mode 100644 index 00000000..377aea78 --- /dev/null +++ b/scripts/mobiles/tatooine/wonderous_cupa.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('cu_pa_wonderous') + mobileTemplate.setLevel(12) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_cu_pa.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('wonderous_cu_pa', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/worrt.py b/scripts/mobiles/tatooine/worrt.py new file mode 100644 index 00000000..9adb3b10 --- /dev/null +++ b/scripts/mobiles/tatooine/worrt.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('worrt') + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_worrt.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('worrt', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/worrt_gutbuster.py b/scripts/mobiles/tatooine/worrt_gutbuster.py new file mode 100644 index 00000000..83f03334 --- /dev/null +++ b/scripts/mobiles/tatooine/worrt_gutbuster.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('worrt_gutbuster') + mobileTemplate.setLevel(13) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_worrt.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('worrt_gutbuster', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/young_mountain_squill.py b/scripts/mobiles/tatooine/young_mountain_squill.py new file mode 100644 index 00000000..934f5c31 --- /dev/null +++ b/scripts/mobiles/tatooine/young_mountain_squill.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('young_mountain_squill') + mobileTemplate.setLevel(16) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_squill.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('young_mountain_squill', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/zucca_boar.py b/scripts/mobiles/tatooine/zucca_boar.py new file mode 100644 index 00000000..8b278a9c --- /dev/null +++ b/scripts/mobiles/tatooine/zucca_boar.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('zucca_boar') + mobileTemplate.setLevel(8) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(5) + mobileTemplate.setWeaponType(6) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_zucca_boar.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('zucca_boar', mobileTemplate) + return \ No newline at end of file diff --git a/src/resources/buffs/Buff.java b/src/resources/buffs/Buff.java new file mode 100644 index 00000000..52b9613e --- /dev/null +++ b/src/resources/buffs/Buff.java @@ -0,0 +1,486 @@ +/******************************************************************************* + * 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.buffs; + +import java.nio.ByteOrder; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; + +import main.NGECore; + +import org.apache.mina.core.buffer.IoBuffer; +import org.apache.mina.core.buffer.SimpleBufferAllocator; + +import resources.objects.IDelta; +import resources.objects.creature.CreatureObject; + +import com.sleepycat.persist.model.NotPersistent; +import com.sleepycat.persist.model.Persistent; + +import engine.resources.common.CRC; + +@Persistent(version=10) +public class Buff implements IDelta { + + @NotPersistent + private SimpleBufferAllocator bufferPool = new SimpleBufferAllocator(); + private String group1, group2; + private int priority; + private float duration; + private String buffName; + private long ownerId; + private String effect1Name, effect2Name, effect3Name, effect4Name, effect5Name; + private float effect1Value, effect2Value, effect3Value, effect4Value, effect5Value; + private String callback; + private String particleEffect; + private boolean isDebuff; + private boolean removeOnDeath; + private boolean isRemovableByPlayer; + private int maxStacks; + private boolean isPersistent; + private boolean removeOnRespec; + private boolean aiRemoveOnEndCombat; + private boolean decayOnPvPDeath; + private long startTime; + private int totalPlayTime; + private byte decayCounter = 0; + @NotPersistent + private ScheduledFuture removalTask; + private int stacks = 1; + private long groupBufferId; + private int buffCRC; + + public Buff(Buff baseBuff, long ownerId) { + this.buffName = baseBuff.getBuffName(); + this.buffCRC = baseBuff.getBuffCRC(); + this.group1 = baseBuff.getGroup1(); + this.group2 = baseBuff.getGroup2(); + this.priority = baseBuff.getPriority(); + this.duration = baseBuff.getDuration(); + this.effect1Name = baseBuff.getEffect1Name(); + this.effect1Value = baseBuff.getEffect1Value(); + this.effect2Name = baseBuff.getEffect2Name(); + this.effect2Value = baseBuff.getEffect2Value(); + this.effect3Name = baseBuff.getEffect3Name(); + this.effect3Value = baseBuff.getEffect3Value(); + this.effect4Name = baseBuff.getEffect4Name(); + this.effect4Value = baseBuff.getEffect4Value(); + this.effect5Name = baseBuff.getEffect5Name(); + this.effect5Value = baseBuff.getEffect5Value(); + this.callback = baseBuff.getCallback(); + this.particleEffect = baseBuff.getParticleEffect(); + this.isDebuff = baseBuff.isDebuff(); + this.removeOnDeath = baseBuff.isRemoveOnDeath(); + this.isRemovableByPlayer = baseBuff.isRemovableByPlayer(); + this.maxStacks = baseBuff.getMaxStacks(); + this.isPersistent = baseBuff.isPersistent(); + this.removeOnRespec = baseBuff.isRemoveOnRespec(); + this.aiRemoveOnEndCombat = baseBuff.isAiRemoveOnEndCombat(); + this.decayOnPvPDeath = baseBuff.isDecayOnPvPDeath(); + } + + /*public Buff(String buffName, long ownerId) { + + this.buffName = buffName; + this.ownerId = ownerId; + this.buffCRC = CRC.StringtoCRC(buffName); + + DatatableVisitor visitor; + + try { + + visitor = ClientFileManager.loadFile("datatables/buff/buff.iff", DatatableVisitor.class); + for(int i = 0; i < visitor.getRowCount(); i++) { + + if(visitor.getObject(i, 0) != null) + if(((String) visitor.getObject(i, 0)).equalsIgnoreCase(buffName)) { + + group1 = (String) visitor.getObject(i, 1); + group2 = (String) visitor.getObject(i, 2); + priority = (int) visitor.getObject(i, 4); + duration = (Float) visitor.getObject(i, 6); + effect1Name = (String) visitor.getObject(i, 7); + effect1Value = (Float) visitor.getObject(i, 8); + effect2Name = (String) visitor.getObject(i, 9); + effect2Value = (Float) visitor.getObject(i, 10); + effect3Name = (String) visitor.getObject(i, 11); + effect3Value = (Float) visitor.getObject(i, 12); + effect4Name = (String) visitor.getObject(i, 13); + effect4Value = (Float) visitor.getObject(i, 14); + effect5Name = (String) visitor.getObject(i, 15); + effect5Value = (Float) visitor.getObject(i, 16); + callback = (String) visitor.getObject(i, 18); + particleEffect = (String) visitor.getObject(i, 19); + isDebuff = (Boolean) visitor.getObject(i, 22); + removeOnDeath = (Integer) visitor.getObject(i, 25) != 0; + isRemovableByPlayer = (Integer) visitor.getObject(i, 26) != 0; + maxStacks = (Integer) visitor.getObject(i, 28); + isPersistent = (Integer) visitor.getObject(i, 29) != 0; + removeOnRespec = (Integer) visitor.getObject(i, 31) != 0; + aiRemoveOnEndCombat = (Integer) visitor.getObject(i, 32) != 0; + decayOnPvPDeath = (Integer) visitor.getObject(i, 33) != 0; + + } + + } + + } catch (InstantiationException | IllegalAccessException e) { + e.printStackTrace(); + } + }*/ + + public Buff() { } + + @Override + public byte[] getBytes() { + + IoBuffer buffer = bufferPool.allocate(28, false).order(ByteOrder.LITTLE_ENDIAN); + + buffer.putInt(CRC.StringtoCRC(buffName.toLowerCase())); + if(duration > 0) { + buffer.putInt((int) (totalPlayTime + getRemainingDuration())); + buffer.putInt(0); + buffer.putInt((int) duration); + } else { + buffer.putInt(-1); + buffer.putInt(0); + buffer.putInt(0); + } + buffer.putLong(ownerId); + buffer.putInt(stacks); // stacks + + buffer.flip(); + + return buffer.array(); + + } + + public String getGroup1() { + return group1; + } + + public void setGroup1(String group1) { + this.group1 = group1; + } + + public int getPriority() { + return priority; + } + + public void setPriority(int priority) { + this.priority = priority; + } + + public float getDuration() { + return duration; + } + + public void setDuration(float duration) { + this.duration = duration; + } + + public String getBuffName() { + return buffName; + } + + public void setBuffName(String buffName) { + this.buffName = buffName; + } + + public long getOwnerId() { + return ownerId; + } + + public void setOwnerId(long ownerId) { + this.ownerId = ownerId; + } + + public String getEffect1Name() { + return effect1Name; + } + + public void setEffect1Name(String effect1Name) { + this.effect1Name = effect1Name; + } + + public String getEffect2Name() { + return effect2Name; + } + + public void setEffect2Name(String effect2Name) { + this.effect2Name = effect2Name; + } + + public String getEffect3Name() { + return effect3Name; + } + + public void setEffect3Name(String effect3Name) { + this.effect3Name = effect3Name; + } + + public String getEffect4Name() { + return effect4Name; + } + + public void setEffect4Name(String effect4Name) { + this.effect4Name = effect4Name; + } + + public String getEffect5Name() { + return effect5Name; + } + + public void setEffect5Name(String effect5Name) { + this.effect5Name = effect5Name; + } + + public float getEffect1Value() { + return effect1Value; + } + + public void setEffect1Value(float effect1Value) { + this.effect1Value = effect1Value; + } + + public float getEffect2Value() { + return effect2Value; + } + + public void setEffect2Value(float effect2Value) { + this.effect2Value = effect2Value; + } + + public float getEffect3Value() { + return effect3Value; + } + + public void setEffect3Value(float effect3Value) { + this.effect3Value = effect3Value; + } + + public float getEffect4Value() { + return effect4Value; + } + + public void setEffect4Value(float effect4Value) { + this.effect4Value = effect4Value; + } + + public float getEffect5Value() { + return effect5Value; + } + + public void setEffect5Value(float effect5Value) { + this.effect5Value = effect5Value; + } + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public String getParticleEffect() { + return particleEffect; + } + + public void setParticleEffect(String particleEffect) { + this.particleEffect = particleEffect; + } + + public boolean isDebuff() { + return isDebuff; + } + + public void setDebuff(boolean isDebuff) { + this.isDebuff = isDebuff; + } + + public boolean isRemoveOnDeath() { + return removeOnDeath; + } + + public void setRemoveOnDeath(boolean removeOnDeath) { + this.removeOnDeath = removeOnDeath; + } + + public boolean isRemovableByPlayer() { + return isRemovableByPlayer; + } + + public void setRemovableByPlayer(boolean isRemovableByPlayer) { + this.isRemovableByPlayer = isRemovableByPlayer; + } + + public int getMaxStacks() { + return maxStacks; + } + + public void setMaxStacks(int maxStacks) { + this.maxStacks = maxStacks; + } + + public boolean isPersistent() { + return isPersistent; + } + + public void setPersistent(boolean isPersistent) { + this.isPersistent = isPersistent; + } + + public boolean isRemoveOnRespec() { + return removeOnRespec; + } + + public void setRemoveOnRespec(boolean removeOnRespec) { + this.removeOnRespec = removeOnRespec; + } + + public boolean isAiRemoveOnEndCombat() { + return aiRemoveOnEndCombat; + } + + public void setAiRemoveOnEndCombat(boolean aiRemoveOnEndCombat) { + this.aiRemoveOnEndCombat = aiRemoveOnEndCombat; + } + + public boolean isDecayOnPvPDeath() { + return decayOnPvPDeath; + } + + public void setDecayOnPvPDeath(boolean decayOnPvPDeath) { + this.decayOnPvPDeath = decayOnPvPDeath; + } + + public void setStartTime() { + this.startTime = System.currentTimeMillis(); + } + + public long getStartTime() { + return startTime; + } + + public int getRemainingDuration() { + + long currentTime = System.currentTimeMillis(); + long timeDiff = (currentTime - startTime) / 1000; + int remaining = (int) (duration - timeDiff); + for(int i = 0; i < decayCounter; i++) { + remaining /= 2; + } + return remaining; + + } + + public int getTotalPlayTime() { + return totalPlayTime; + } + + public void setTotalPlayTime(int totalPlayTime) { + this.totalPlayTime = totalPlayTime; + } + + public byte getDecayCounter() { + return decayCounter; + } + + public void incDecayCounter() { + this.decayCounter++; + } + + public ScheduledFuture getRemovalTask() { + return removalTask; + } + + public void setRemovalTask(ScheduledFuture removalTask) { + this.removalTask = removalTask; + } + + public void updateRemovalTask() { + + if(removalTask == null) + return; + + removalTask.cancel(true); + + final NGECore core = NGECore.getInstance(); + final CreatureObject owner = (CreatureObject) core.objectService.getObject(getOwnerId()); + + if(owner == null) + return; + + ScheduledFuture task = Executors.newScheduledThreadPool(1).schedule(new Runnable() { + + @Override + public void run() { + + core.buffService.removeBuffFromCreature(owner, Buff.this); + + } + + }, (long) getRemainingDuration(), TimeUnit.SECONDS); + + setRemovalTask(task); + + } + + public int getStacks() { + return stacks; + } + + public void setStacks(int stacks) { + this.stacks = stacks; + } + + public boolean isGroupBuff() { + return effect1Name == null ? false : effect1Name.equals("group"); + } + + public long getGroupBufferId() { + return groupBufferId; + } + + public void setGroupBufferId(long groupBufferId) { + this.groupBufferId = groupBufferId; + } + + public String getGroup2() { + return group2; + } + + public void setGroup2(String group2) { + this.group2 = group2; + } + + public int getBuffCRC() { + return buffCRC; + } + + public void setBuffCRC(int buffCRC) { + this.buffCRC = buffCRC; + } + +} diff --git a/src/resources/buffs/BuffItem.java b/src/resources/buffs/BuffItem.java new file mode 100644 index 00000000..ae302027 --- /dev/null +++ b/src/resources/buffs/BuffItem.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * 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.buffs; + +import com.sleepycat.persist.model.Persistent; + +@Persistent +public class BuffItem { + private int affectAmount; + private int entertainerBonus; + private int invested; + private String skillName; + + public BuffItem() { + + } + + public BuffItem(String skillName, int invested, int entBonus) { + this.skillName = skillName; + this.invested = invested; + this.entertainerBonus = entBonus; + } + + public int getAffectAmount() { + return affectAmount; + } + + public int getEntertainerBonus() { + return entertainerBonus; + } + + public int getInvested() { + return invested; + } + + public String getSkillName() { + return skillName; + } + + public void setAffectAmount(int amount) { + this.affectAmount = amount; + } + + public void setEntertainerBonus(int entertainerBonus) { + this.entertainerBonus = entertainerBonus; + } + + public void setInvested(int invested) { + this.invested = invested; + } + + public void setSkillName(String skillName) { + this.skillName = skillName; + } +} diff --git a/src/resources/buffs/DamageOverTime.java b/src/resources/buffs/DamageOverTime.java new file mode 100644 index 00000000..8a21306a --- /dev/null +++ b/src/resources/buffs/DamageOverTime.java @@ -0,0 +1,116 @@ +/******************************************************************************* + * 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.buffs; + +import java.util.concurrent.ScheduledFuture; + +import com.sleepycat.persist.model.NotPersistent; +import com.sleepycat.persist.model.Persistent; + +@Persistent(version=1) +public class DamageOverTime { + + private Buff buff; + private String type; + private int duration; + private int intensity; + @NotPersistent + private ScheduledFuture task; + private long startTime; + private String commandName; + + public DamageOverTime() { } + + public DamageOverTime(String commandName, Buff buff, String type, int duration, int intensity) { + this.buff = buff; + this.type = type; + this.duration = duration; + this.intensity = intensity; + this.commandName = commandName; + } + + public Buff getBuff() { + return buff; + } + + public void setBuff(Buff buff) { + this.buff = buff; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public int getDuration() { + return duration; + } + + public void setDuration(int duration) { + this.duration = duration; + } + + public int getIntensity() { + return intensity; + } + + public void setIntensity(int intensity) { + this.intensity = intensity; + } + + public ScheduledFuture getTask() { + return task; + } + + public void setTask(ScheduledFuture task) { + this.task = task; + } + + public long getStartTime() { + return startTime; + } + + public void setStartTime(long startTime) { + this.startTime = startTime; + } + + public int getRemainingDuration() { + + long currentTime = System.currentTimeMillis(); + long timeDiff = (currentTime - startTime) / 1000; + return (int) (duration - timeDiff); + + } + + public String getCommandName() { + return commandName; + } + + public void setCommandName(String commandName) { + this.commandName = commandName; + } + + +} diff --git a/src/resources/common/BountyListItem.java b/src/resources/common/BountyListItem.java new file mode 100644 index 00000000..a50272e8 --- /dev/null +++ b/src/resources/common/BountyListItem.java @@ -0,0 +1,106 @@ +/******************************************************************************* + * 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.ArrayList; +import java.util.List; + +import com.sleepycat.persist.model.Entity; +import com.sleepycat.persist.model.PrimaryKey; + +@Entity +public class BountyListItem { + + @PrimaryKey + private long objectId; + private int creditReward; + private String profession; + private String faction; + private String name; + private List assignedHunters; + + public BountyListItem() { } + + public BountyListItem(long objectId, int creditReward, String profession, String faction, String name) { + this.objectId = objectId; + this.creditReward = creditReward; + this.profession = profession; + this.faction = faction; + this.setName(name); + this.setAssignedHunters(new ArrayList(3)); + } + + public long getObjectId() { + return objectId; + } + public void setObjectId(long objectId) { + this.objectId = objectId; + } + public int getCreditReward() { + return creditReward; + } + public void setCreditReward(int creditReward) { + this.creditReward = creditReward; + } + public String getProfession() { + return profession; + } + public void setProfession(String profession) { + this.profession = profession; + } + + public String getFaction() { + return faction; + } + + public void setFaction(String faction) { + this.faction = faction; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public void addBounty(int amountToAdd) { + this.creditReward += amountToAdd; + } + + public List getAssignedHunters() { + return assignedHunters; + } + + public void setAssignedHunters(List assignedHunters) { + this.assignedHunters = assignedHunters; + } + + public void addBountyHunter(long objectId) { + assignedHunters.add(objectId); + } + + public void removeBountyHunter(long objectId) { + assignedHunters.remove(objectId); + } +} diff --git a/src/resources/loot/LootDrop.java b/src/resources/loot/LootDrop.java new file mode 100644 index 00000000..efd455ba --- /dev/null +++ b/src/resources/loot/LootDrop.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * 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.loot; + +import java.util.ArrayList; +import java.util.List; + +public class LootDrop { + + private List elements = new ArrayList(); + private String droppedItemTemplate; + + public LootDrop(){ + + } + + public void addElement(String element){ + elements.add(element); + } + + public List getElements(){ + return elements; + } + + public String getDroppedItemTemplate() { + return droppedItemTemplate; + } + + public void setDroppedItemTemplate(String droppedItemTemplate) { + this.droppedItemTemplate = droppedItemTemplate; + } +} diff --git a/src/resources/loot/LootGroup.java b/src/resources/loot/LootGroup.java new file mode 100644 index 00000000..8666014d --- /dev/null +++ b/src/resources/loot/LootGroup.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * 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.loot; + +import com.sleepycat.persist.model.Persistent; + +/** + * @author Charon + */ + +@Persistent(version=0) +public class LootGroup { + + private String[] lootPoolNames; + private double[] lootPoolChances; + private double lootGroupChance; + + public LootGroup(){ + + } + + public LootGroup(String[] lootPoolNames, double[] lootPoolChances, double lootGroupChance){ + this.lootPoolNames = lootPoolNames; + this.lootPoolChances = lootPoolChances; + this.lootGroupChance = lootGroupChance; + } + + public void addLootData(String[] lootPoolNames, double[] lootPoolChances, double lootGroupChance){ + this.lootPoolNames = lootPoolNames; + this.lootPoolChances = lootPoolChances; + this.lootGroupChance = lootGroupChance; + } + + public String[] getLootPoolNames() { + return lootPoolNames; + } + + public double[] getLootPoolChances() { + return lootPoolChances; + } + + public double getLootGroupChance() { + return lootGroupChance; + } +} diff --git a/src/resources/loot/LootPool.java b/src/resources/loot/LootPool.java new file mode 100644 index 00000000..83576a16 --- /dev/null +++ b/src/resources/loot/LootPool.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * 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.loot; + +/** + * @author Charon + */ + +public class LootPool { + + public LootPool(){ + + } +} diff --git a/src/resources/loot/LootRollSession.java b/src/resources/loot/LootRollSession.java new file mode 100644 index 00000000..e79951fe --- /dev/null +++ b/src/resources/loot/LootRollSession.java @@ -0,0 +1,163 @@ +/******************************************************************************* + * 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.loot; + +import java.util.ArrayList; +import java.util.List; + +import engine.resources.scene.Planet; +import main.NGECore; +import resources.objects.creature.CreatureObject; +import resources.objects.group.GroupObject; +import resources.objects.tangible.TangibleObject; + +/** + * @author Charon + */ + +public class LootRollSession { + + private String SessionID; // leaderName-SystemTime + private boolean sessionValid; + private GroupObject playerGroup; + private CreatureObject requester; + private List droppedItems; + private Planet sessionPlanet; + private List errorMessages; + private int sessionLootMode; + private boolean allowRareLoot; + private boolean increasedRLSChance; + + public LootRollSession(){ + } + + public LootRollSession(CreatureObject requester, TangibleObject lootedObject){ + long requesterGroupId = requester.getGroupId(); + if (requesterGroupId>0){ + this.playerGroup = (GroupObject) NGECore.getInstance().objectService.getObject(requesterGroupId); + this.SessionID = playerGroup.getGroupLeader().getCustomName()+"-"+System.currentTimeMillis(); + + } else { + this.SessionID = requester.getCustomName()+"-"+System.currentTimeMillis(); + } + + if (lootedObject instanceof CreatureObject){ + CreatureObject lootedCreature = (CreatureObject)lootedObject; + // Exclude rare loot depending on creature level + // For groups maybe average CL? + if (requester.getLevel()-lootedCreature.getLevel()<=6){ + this.setAllowRareLoot(true); + } + } + + // Group situation + if (this.getPlayerGroup()!=null){ + if (this.getPlayerGroup().getMemberList().size()>=4) + this.setIncreasedRLSChance(true); + } + + // Possible AFKer check here + + + droppedItems = new ArrayList(); + errorMessages = new ArrayList(); + sessionPlanet = requester.getPlanet(); + this.requester = requester; + allowRareLoot = false; + } + + public List getDroppedItems() { + return droppedItems; + } + + public void addDroppedItem(TangibleObject droppedItem) { + this.droppedItems.add(droppedItem); + } + + public String getSessionID() { + return SessionID; + } + + public void setSessionID(String sessionID) { + SessionID = sessionID; + } + + public void generateSessionID(String sessionID) { + SessionID = sessionID; + } + + public Planet getSessionPlanet() { + return sessionPlanet; + } + + public List getErrorMessages() { + return errorMessages; + } + + public void addErrorMessage(String errorMessage) { + this.errorMessages.add(errorMessage); + } + + public int getSessionLootMode() { + return sessionLootMode; + } + + public void setSessionLootMode(int sessionLootMode) { + this.sessionLootMode = sessionLootMode; + } + + public boolean isAllowRareLoot() { + return allowRareLoot; + } + + public void setAllowRareLoot(boolean allowRareLoot) { + this.allowRareLoot = allowRareLoot; + } + + public GroupObject getPlayerGroup() { + return playerGroup; + } + + public boolean isIncreasedRLSChance() { + return increasedRLSChance; + } + + public void setIncreasedRLSChance(boolean increasedRLSChance) { + this.increasedRLSChance = increasedRLSChance; + } + + public boolean isSessionValid() { + return sessionValid; + } + + public void setSessionValid(boolean sessionValid) { + this.sessionValid = sessionValid; + } + + public CreatureObject getRequester() { + return requester; + } + + public void setRequester(CreatureObject requester) { + this.requester = requester; + } +} diff --git a/src/resources/objectives/BountyMissionObjective.java b/src/resources/objectives/BountyMissionObjective.java new file mode 100644 index 00000000..e17de5cd --- /dev/null +++ b/src/resources/objectives/BountyMissionObjective.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * 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 java.util.Random; + +import engine.resources.scene.Point3D; +import main.NGECore; +import resources.common.BountyListItem; +import resources.objects.creature.CreatureObject; +import resources.objects.mission.MissionObject; +import services.mission.MissionObjective; + +public class BountyMissionObjective extends MissionObjective { + + private Point3D lastKnownLocation; + private long markObjId; + + public BountyMissionObjective(MissionObject parent) { + super(parent); + } + + @Override + public void activate(NGECore core, CreatureObject player) { + if (isActivated()) + return; + + BountyListItem bountyTarget = core.missionService.getBountyListItem(getMissionObject().getBountyObjId()); + + setMarkObjId(bountyTarget.getObjectId()); + + // TODO: Change this to a comm message. + player.sendSystemMessage("@mission/mission_bounty_informant:target_hard_" + Integer.toString(new Random().nextInt(5)), (byte) 0); + + + } + + @Override + public void complete(NGECore core, CreatureObject player) { + + } + + @Override + public void abort(NGECore core, CreatureObject player) { + + } + + @Override + public void update(NGECore core, CreatureObject player) { + + } + + public Point3D getLastKnownLocation() { return lastKnownLocation; } + + public void setLastKnownLocation(Point3D lastKnownLocation) { this.lastKnownLocation = lastKnownLocation; } + + public long getMarkObjId() { return markObjId; } + + public void setMarkObjId(long markObjId) { this.markObjId = markObjId; } + +} diff --git a/src/resources/skills/SkillMod.java b/src/resources/skills/SkillMod.java new file mode 100644 index 00000000..2bce0b23 --- /dev/null +++ b/src/resources/skills/SkillMod.java @@ -0,0 +1,109 @@ +/******************************************************************************* + * 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.skills; + +import org.apache.mina.core.buffer.IoBuffer; + +import resources.objects.Delta; + +import com.sleepycat.persist.model.Persistent; + +@Persistent(version=0) +public class SkillMod extends Delta { + + private int base; + private int modifier; + + public SkillMod(int base, int modifier) { + this.base = base; + this.modifier = modifier; + } + + public SkillMod() { + + } + + public int getBase() { + synchronized(objectMutex) { + return base; + } + } + + public void setBase(int base) { + synchronized(objectMutex) { + this.base = base; + } + } + + public void addBase(int base) { + synchronized(objectMutex) { + this.base += base; + } + } + + public void deductBase(int base) { + synchronized(objectMutex) { + this.base -= base; + } + } + + public int getModifier() { + synchronized(objectMutex) { + return modifier; + } + } + + 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() { + synchronized(objectMutex) { + IoBuffer buffer = createBuffer(8); + buffer.putInt(base); + buffer.putInt(modifier); + return buffer.array(); + } + } + +} From 5c599e341ea91d9cfef939cdf045bc0b9a4a773c Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Wed, 30 Apr 2014 20:00:11 +0200 Subject: [PATCH 17/19] merge conflict From a3d4bb326cad424bcf960bb576baf61a69a062ce Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Wed, 30 Apr 2014 20:30:25 +0200 Subject: [PATCH 18/19] merge conflict --- src/resources/common/BountyListItem.java | 109 ------------------ .../objectives/BountyMissionObjective.java | 83 ------------- src/services/DevService.java | 27 ----- src/services/housing/HousingService.java | 99 +++------------- 4 files changed, 16 insertions(+), 302 deletions(-) diff --git a/src/resources/common/BountyListItem.java b/src/resources/common/BountyListItem.java index ec096333..a50272e8 100644 --- a/src/resources/common/BountyListItem.java +++ b/src/resources/common/BountyListItem.java @@ -1,4 +1,3 @@ -<<<<<<< HEAD /******************************************************************************* * Copyright (c) 2013 * @@ -105,111 +104,3 @@ public class BountyListItem { assignedHunters.remove(objectId); } } -======= -/******************************************************************************* - * 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.ArrayList; -import java.util.List; - -import com.sleepycat.persist.model.Entity; -import com.sleepycat.persist.model.PrimaryKey; - -@Entity -public class BountyListItem { - - @PrimaryKey - private long objectId; - private int creditReward; - private String profession; - private String faction; - private String name; - private List assignedHunters; - - public BountyListItem() { } - - public BountyListItem(long objectId, int creditReward, String profession, String faction, String name) { - this.objectId = objectId; - this.creditReward = creditReward; - this.profession = profession; - this.faction = faction; - this.setName(name); - this.setAssignedHunters(new ArrayList(3)); - } - - public long getObjectId() { - return objectId; - } - public void setObjectId(long objectId) { - this.objectId = objectId; - } - public int getCreditReward() { - return creditReward; - } - public void setCreditReward(int creditReward) { - this.creditReward = creditReward; - } - public String getProfession() { - return profession; - } - public void setProfession(String profession) { - this.profession = profession; - } - - public String getFaction() { - return faction; - } - - public void setFaction(String faction) { - this.faction = faction; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public void addBounty(int amountToAdd) { - this.creditReward += amountToAdd; - } - - public List getAssignedHunters() { - return assignedHunters; - } - - public void setAssignedHunters(List assignedHunters) { - this.assignedHunters = assignedHunters; - } - - public void addBountyHunter(long objectId) { - assignedHunters.add(objectId); - } - - public void removeBountyHunter(long objectId) { - assignedHunters.remove(objectId); - } -} ->>>>>>> origin/master diff --git a/src/resources/objectives/BountyMissionObjective.java b/src/resources/objectives/BountyMissionObjective.java index 51c8382c..e17de5cd 100644 --- a/src/resources/objectives/BountyMissionObjective.java +++ b/src/resources/objectives/BountyMissionObjective.java @@ -1,4 +1,3 @@ -<<<<<<< HEAD /******************************************************************************* * Copyright (c) 2013 * @@ -79,85 +78,3 @@ public class BountyMissionObjective extends MissionObjective { public void setMarkObjId(long markObjId) { this.markObjId = markObjId; } } -======= -/******************************************************************************* - * 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 java.util.Random; - -import engine.resources.scene.Point3D; -import main.NGECore; -import resources.common.BountyListItem; -import resources.objects.creature.CreatureObject; -import resources.objects.mission.MissionObject; -import services.mission.MissionObjective; - -public class BountyMissionObjective extends MissionObjective { - - private Point3D lastKnownLocation; - private long markObjId; - - public BountyMissionObjective(MissionObject parent) { - super(parent); - } - - @Override - public void activate(NGECore core, CreatureObject player) { - if (isActivated()) - return; - - BountyListItem bountyTarget = core.missionService.getBountyListItem(getMissionObject().getBountyObjId()); - - setMarkObjId(bountyTarget.getObjectId()); - - // TODO: Change this to a comm message. - player.sendSystemMessage("@mission/mission_bounty_informant:target_hard_" + Integer.toString(new Random().nextInt(5)), (byte) 0); - - - } - - @Override - public void complete(NGECore core, CreatureObject player) { - - } - - @Override - public void abort(NGECore core, CreatureObject player) { - - } - - @Override - public void update(NGECore core, CreatureObject player) { - - } - - public Point3D getLastKnownLocation() { return lastKnownLocation; } - - public void setLastKnownLocation(Point3D lastKnownLocation) { this.lastKnownLocation = lastKnownLocation; } - - public long getMarkObjId() { return markObjId; } - - public void setMarkObjId(long markObjId) { this.markObjId = markObjId; } - -} ->>>>>>> origin/master diff --git a/src/services/DevService.java b/src/services/DevService.java index 21043777..e2bd4390 100644 --- a/src/services/DevService.java +++ b/src/services/DevService.java @@ -91,7 +91,6 @@ public class DevService implements INetworkDispatch { if(creature.getClient().isGM()) suiOptions.put((long) 120, "House Deeds"); if(creature.getClient().isGM()) suiOptions.put((long) 125, "Crafting Tools"); if(creature.getClient().isGM()) suiOptions.put((long) 130, "Vehicle Deeds"); - if(creature.getClient().isGM()) suiOptions.put((long) 121, "Sandbox City"); break; case 3: // [Items] Weapons @@ -1167,29 +1166,6 @@ public class DevService implements INetworkDispatch { case 120: // SWGObject houseDeed = core.objectService.createObject("object/tangible/deed/player_house_deed/shared_generic_house_small_deed.iff", planet); // inventory.add(houseDeed); -<<<<<<< HEAD - - templateString="object/tangible/deed/player_house_deed/shared_generic_house_small_deed.iff"; - Player_House_Deed deed = (Player_House_Deed)core.objectService.createObject(templateString, planet); - deed.setBMR(15); - deed.setAttributes(); - inventory.add(deed); - - templateString="object/tangible/deed/city_deed/shared_cityhall_tatooine_deed.iff"; - deed = (Player_House_Deed)core.objectService.createObject(templateString, planet); - deed.setBMR(15); - deed.setAttributes(); - inventory.add(deed); - - - return; - - case 121: - NGECore.getInstance().playerCityService.buildSandboxTestCity(player); - - return; - -======= TangibleObject deed = (TangibleObject) core.objectService.createObject("object/tangible/deed/player_house_deed/shared_generic_house_small_deed.iff", planet); deed.setIntAttribute("examine_maintenance_rate", 15); @@ -1200,7 +1176,6 @@ public class DevService implements INetworkDispatch { inventory.add(deed); return; ->>>>>>> origin/master case 125: TangibleObject genericCraftingTool = (TangibleObject) core.objectService.createObject("object/tangible/crafting/station/shared_generic_tool.iff", planet); genericCraftingTool.setCustomName("Generic Crafting Tool"); @@ -1212,8 +1187,6 @@ public class DevService implements INetworkDispatch { inventory.add(swoopDeed); inventory.add(av21deed); return; - - } } }); diff --git a/src/services/housing/HousingService.java b/src/services/housing/HousingService.java index 0f1e9f22..34bdb205 100644 --- a/src/services/housing/HousingService.java +++ b/src/services/housing/HousingService.java @@ -22,7 +22,6 @@ package services.housing; import java.io.IOException; -import java.math.BigInteger; import java.nio.file.FileVisitResult; import java.nio.file.FileVisitor; import java.nio.file.Files; @@ -86,15 +85,8 @@ public class HousingService implements INetworkDispatch { return; } -<<<<<<< HEAD - if(housingTemplates.containsKey(deed.getTemplate())) - { -======= if (housingTemplates.containsKey(deed.getTemplate())) { ->>>>>>> origin/master HouseTemplate houseTemplate = housingTemplates.get(deed.getTemplate()); - System.out.println("DEED FOUND " + houseTemplate.getBuildingTemplate()); - System.out.println("DEED TEMP " + deed.getTemplate()); EnterStructurePlacementModeMessage packet = new EnterStructurePlacementModeMessage(deed, houseTemplate.getBuildingTemplate()); actor.getClient().getSession().write(packet.serialize()); } @@ -103,11 +95,6 @@ public class HousingService implements INetworkDispatch { public void placeStructure(final CreatureObject actor, TangibleObject deed, float positionX, float positionZ, float rotation) { HouseTemplate houseTemplate = housingTemplates.get(deed.getTemplate()); int structureLotCost = houseTemplate.getLotCost(); - - if (deed.getTemplate().contains("cityhall")) - structureLotCost = 0; - - String structureTemplate = houseTemplate.getBuildingTemplate(); if (!houseTemplate.canBePlacedOn(actor.getPlanet().getName())) { @@ -132,69 +119,10 @@ public class HousingService implements INetworkDispatch { float positionY = core.terrainService.getHeight(actor.getPlanetId(), positionX, positionZ) + 2f; - boolean canBuild = true; - - // Check for city founders joining a new city - PlayerCity cityActorIsIn = core.playerCityService.getCityObjectIsIn(actor); - - if (cityActorIsIn != null){ - // Actor is inside the bounds of a city, so zoning must be checked - //actor.setAttachment("Has24HZoningFor",cityActorIsIn.getCityID()); // for testing - //actor.setAttachment("Has24HZoningUntil",System.currentTimeMillis()+1000000); // for testing - - - if (deed.getTemplate().contains("shuttleport")){ - - if (actor.getObjectID()!=cityActorIsIn.getMayorID()) - actor.sendSystemMessage("You must be the mayor of this city to place the structure.", (byte) 0); - - if (cityActorIsIn.getRank()<0){ - actor.sendSystemMessage("@city/city:rank_req", (byte) 0); - return; - } - - } - - if (actor.getAttachment("Has24HZoningFor")==null || actor.getAttachment("Has24HZoningFor")==null) - return; - int cityActorHasZoning = (int)actor.getAttachment("Has24HZoningFor"); - BigInteger zoningUntilBI = (BigInteger) actor.getAttachment("Has24HZoningUntil"); - long zoningUntil = zoningUntilBI.longValue(); - if (cityActorHasZoning==cityActorIsIn.getCityID() && System.currentTimeMillis() Date: Wed, 30 Apr 2014 21:48:07 +0200 Subject: [PATCH 19/19] Reconstruction of classes --- scripts/houses/player_garden_tatooine_sml_01.py | 4 ++-- scripts/houses/player_shuttleport_tatooine.py | 4 ++-- .../tangible/deed/city_deed/garden_tatooine_sml_01_deed.py | 4 ---- .../tangible/deed/city_deed/shuttleport_tatooine_deed.py | 4 ---- src/services/DevService.java | 5 +++++ 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/scripts/houses/player_garden_tatooine_sml_01.py b/scripts/houses/player_garden_tatooine_sml_01.py index 516ed6a3..ed3b2981 100644 --- a/scripts/houses/player_garden_tatooine_sml_01.py +++ b/scripts/houses/player_garden_tatooine_sml_01.py @@ -2,7 +2,7 @@ import sys from services.housing import HouseTemplate from engine.resources.scene import Point3D -def setup(core): +def setup(housingTemplates): houseTemplate = HouseTemplate("object/tangible/deed/city_deed/shared_garden_tatooine_sml_01_deed.iff", "object/building/player/city/shared_garden_tatooine_sml_01.iff", 0) houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(1, 2, 3)) @@ -11,5 +11,5 @@ def setup(core): houseTemplate.addPlaceablePlanet("lok") houseTemplate.setDefaultItemLimit(0) - core.housingService.addHousingTemplate(houseTemplate) + housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate) return \ No newline at end of file diff --git a/scripts/houses/player_shuttleport_tatooine.py b/scripts/houses/player_shuttleport_tatooine.py index 9ff64abc..4d7e480f 100644 --- a/scripts/houses/player_shuttleport_tatooine.py +++ b/scripts/houses/player_shuttleport_tatooine.py @@ -2,11 +2,11 @@ import sys from services.housing import HouseTemplate from engine.resources.scene import Point3D -def setup(core): +def setup(housingTemplates): houseTemplate = HouseTemplate("object/tangible/deed/city_deed/shared_shuttleport_tatooine_deed.iff", "object/building/tatooine/shared_shuttleport_tatooine.iff", 1) houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(3.5),float(-0.3),float(3.5))) houseTemplate.addPlaceablePlanet("tatooine") houseTemplate.setDefaultItemLimit(0) - core.housingService.addHousingTemplate(houseTemplate) + housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate) return \ No newline at end of file diff --git a/scripts/object/tangible/deed/city_deed/garden_tatooine_sml_01_deed.py b/scripts/object/tangible/deed/city_deed/garden_tatooine_sml_01_deed.py index d3678f09..07ab9319 100644 --- a/scripts/object/tangible/deed/city_deed/garden_tatooine_sml_01_deed.py +++ b/scripts/object/tangible/deed/city_deed/garden_tatooine_sml_01_deed.py @@ -2,10 +2,6 @@ import sys def setup(core, object): object.setAttachment('radial_filename', 'deeds/structureDeed') - object.setConstructorTemplate('object/building/player/shared_construction_structure.iff') - object.setStructureTemplate('object/tangible/deed/city_deed/shared_garden_tatooine_sml_01_deed.iff') - #object.setLotRequirement(5) - object.setBMR(5) return def use(core, actor, object): diff --git a/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py b/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py index d676ac12..07ab9319 100644 --- a/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py +++ b/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py @@ -2,10 +2,6 @@ import sys def setup(core, object): object.setAttachment('radial_filename', 'deeds/structureDeed') - object.setConstructorTemplate('object/building/player/shared_construction_structure.iff') - object.setStructureTemplate('object/tangible/deed/city_deed/shared_shuttleport_tatooine_deed.iff') - #object.setLotRequirement(5) - object.setBMR(100) return def use(core, actor, object): diff --git a/src/services/DevService.java b/src/services/DevService.java index e2bd4390..270587d7 100644 --- a/src/services/DevService.java +++ b/src/services/DevService.java @@ -91,6 +91,7 @@ public class DevService implements INetworkDispatch { if(creature.getClient().isGM()) suiOptions.put((long) 120, "House Deeds"); if(creature.getClient().isGM()) suiOptions.put((long) 125, "Crafting Tools"); if(creature.getClient().isGM()) suiOptions.put((long) 130, "Vehicle Deeds"); + if(creature.getClient().isGM()) suiOptions.put((long) 121, "Sandbox City"); break; case 3: // [Items] Weapons @@ -1176,6 +1177,10 @@ public class DevService implements INetworkDispatch { inventory.add(deed); return; + + case 121: + NGECore.getInstance().playerCityService.buildSandboxTestCity(player); + case 125: TangibleObject genericCraftingTool = (TangibleObject) core.objectService.createObject("object/tangible/crafting/station/shared_generic_tool.iff", planet); genericCraftingTool.setCustomName("Generic Crafting Tool");