mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-08-01 01:15:59 -04:00
189 lines
7.8 KiB
Java
189 lines
7.8 KiB
Java
package script.systems.gcw;
|
|
|
|
import script.*;
|
|
import script.base_class.*;
|
|
import script.combat_engine.*;
|
|
import java.util.Arrays;
|
|
import java.util.Hashtable;
|
|
import java.util.Vector;
|
|
import script.base_script;
|
|
|
|
import script.library.camping;
|
|
import script.library.create;
|
|
import script.library.factions;
|
|
import script.library.gcw;
|
|
import script.library.theater;
|
|
import script.library.trial;
|
|
import script.library.utils;
|
|
|
|
public class gcw_camp extends script.base_script
|
|
{
|
|
public gcw_camp()
|
|
{
|
|
}
|
|
public int OnInitialize(obj_id self) throws InterruptedException
|
|
{
|
|
messageTo(self, "initializeAdvancedCamp", null, 30.0f, false);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int initializeAdvancedCamp(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp");
|
|
if (!hasObjVar(self, "factionFlag"))
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
int factionFlag = getIntObjVar(self, "factionFlag");
|
|
if (factionFlag < 0)
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp factionFlag: " + factionFlag);
|
|
int numNodes = camping.getAdvancedCampNumberOfNodes(self);
|
|
if (numNodes > 6)
|
|
{
|
|
numNodes = 6;
|
|
}
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - numNodes: " + numNodes);
|
|
obj_id[] nodeObjects = new obj_id[numNodes];
|
|
int arrayIdx = 0;
|
|
obj_var_list ovl = getObjVarList(self, "modules");
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - obj_var_list: " + ovl);
|
|
if (ovl == null)
|
|
{
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - ovl == null");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - ovl not null");
|
|
String[] modules = ovl.getAllObjVarNames();
|
|
if (modules == null || modules.length <= 0)
|
|
{
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - modules == null");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
int nodeCount = 1;
|
|
int i = 0;
|
|
int recruitersPlaced = 0;
|
|
while (nodeCount <= numNodes && i < modules.length)
|
|
{
|
|
if (modules[i] == null || modules[i].equals(""))
|
|
{
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - modules == null");
|
|
continue;
|
|
}
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - modules[i]: " + modules[i]);
|
|
location tempLoc = getLocation(self);
|
|
location nodeLoc = camping.getAdvancedCampNodeLocation(self, tempLoc, nodeCount);
|
|
int nodeYaw = camping.getAdvancedCampNodeYaw(self, nodeCount);
|
|
String module_template = "";
|
|
if (modules[i].equals("shuttle_beacon"))
|
|
{
|
|
module_template = "object/building/poi/player_camp_shuttle_beacon.iff";
|
|
}
|
|
else if (modules[i].equals("cloning_tube"))
|
|
{
|
|
module_template = "object/building/poi/player_camp_clone_tube.iff";
|
|
}
|
|
else if (modules[i].equals("entertainer"))
|
|
{
|
|
if (factionFlag == factions.FACTION_FLAG_REBEL)
|
|
{
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - Entertainment Camp is FACTION_FLAG_REBEL");
|
|
module_template = "object/building/poi/gcw_camp_entertainment_rebel.iff";
|
|
}
|
|
else if (factionFlag == factions.FACTION_FLAG_IMPERIAL)
|
|
{
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - Entertainment Camp is FACTION_FLAG_IMPERIAL");
|
|
module_template = "object/building/poi/gcw_camp_entertainment_imperial.iff";
|
|
}
|
|
else
|
|
{
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - Entertainment Camp is FACTION_FLAG_UNKNOWN");
|
|
module_template = "object/building/poi/player_camp_entertainment_area.iff";
|
|
}
|
|
}
|
|
else if (modules[i].equals("junk_dealer"))
|
|
{
|
|
if (factionFlag == factions.FACTION_FLAG_REBEL)
|
|
{
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - Junk Dealer is FACTION_FLAG_REBEL");
|
|
module_template = "object/building/poi/gcw_camp_junk_dealer_rebel.iff";
|
|
}
|
|
else if (factionFlag == factions.FACTION_FLAG_IMPERIAL)
|
|
{
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - Junk Dealer is FACTION_FLAG_IMPERIAL");
|
|
module_template = "object/building/poi/gcw_camp_junk_dealer_imperial.iff";
|
|
}
|
|
else
|
|
{
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - Junk Dealer is FACTION_FLAG_UNKNOWN");
|
|
module_template = "object/building/poi/player_camp_junk_dealer.iff";
|
|
}
|
|
}
|
|
else if (modules[i].equals("imperial"))
|
|
{
|
|
module_template = "object/building/poi/gcw_camp_imperial_recruiter.iff";
|
|
}
|
|
else if (modules[i].equals("rebel"))
|
|
{
|
|
module_template = "object/building/poi/gcw_camp_rebel_recruiter.iff";
|
|
}
|
|
else if (modules[i].equals("rebel_clone"))
|
|
{
|
|
module_template = "object/building/poi/gcw_rebel_clone_tent_small.iff";
|
|
}
|
|
else if (modules[i].equals("imperial_clone"))
|
|
{
|
|
module_template = "object/building/poi/gcw_imperial_clone_tent_small.iff";
|
|
}
|
|
else if (modules[i].equals("clothing_station"))
|
|
{
|
|
module_template = "object/building/poi/player_camp_crafting_clothing.iff";
|
|
}
|
|
else if (modules[i].equals("food_station"))
|
|
{
|
|
module_template = "object/building/poi/player_camp_crafting_food.iff";
|
|
}
|
|
else if (modules[i].equals("ship_station"))
|
|
{
|
|
module_template = "object/building/poi/player_camp_crafting_space.iff";
|
|
}
|
|
else if (modules[i].equals("structure_station"))
|
|
{
|
|
module_template = "object/building/poi/player_camp_crafting_structure.iff";
|
|
}
|
|
else if (modules[i].equals("weapon_station"))
|
|
{
|
|
module_template = "object/building/poi/player_camp_crafting_weapon.iff";
|
|
}
|
|
if (!module_template.equals(""))
|
|
{
|
|
obj_id module_id = create.object(module_template, nodeLoc);
|
|
if (camping.isRecruiterModule(module_template))
|
|
{
|
|
recruitersPlaced = recruitersPlaced + 1;
|
|
}
|
|
if (isIdValid(module_id))
|
|
{
|
|
setYaw(module_id, nodeYaw);
|
|
nodeObjects[arrayIdx] = module_id;
|
|
arrayIdx++;
|
|
nodeCount++;
|
|
}
|
|
}
|
|
i++;
|
|
}
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - Setting Vars!!");
|
|
setObjVar(self, "modules.ids", nodeObjects);
|
|
setObjVar(self, camping.VAR_CREATION_TIME, getCalendarTime());
|
|
Vector children = getResizeableObjIdArrayObjVar(self, theater.VAR_CHILDREN);
|
|
LOG("gcw_camp_functionality", "initializeAdvancedCamp - children.length: " + children.size());
|
|
for (int b = 0; b < nodeObjects.length; b++)
|
|
{
|
|
children = utils.addElement(children, nodeObjects[b]);
|
|
}
|
|
setObjVar(self, theater.VAR_CHILDREN, children);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
}
|