Files
dsrc/sku.0/sys.server/compiled/game/script/systems/gcw/gcw_camp.java
T

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;
}
}