Enhanced control of the Restuss Event

This commit is contained in:
CekisSWG
2019-02-20 21:02:41 -08:00
parent 563ff81c39
commit 72212a4979
11 changed files with 230 additions and 133 deletions

4
.gitignore vendored
View File

@@ -1,3 +1,3 @@
object_template_crc_string_table.tab
**/.idea/*.*
**/.idea
*.iml

View File

@@ -107,7 +107,7 @@ clientfx:pt_restuss_explosion.prt:forced_visability-1000:10 3604 160.1 0 168.5
clientfx:restuss_event_city_destruction.cef:forced_visability-1000:10 3604 0 0 0 string:kill_effect=restriction_npc-range_300
clientfx:restuss_event_city_destruction.cef:forced_visability-1000:10 3601 0 0 0
clientfx:restuss_event_city_explosion_personnel.cef:player_visability-500 3602 0 0 0
clientfx:rebel_transport_touch_and_go.prt:focred_visability-300 45 -429 -3 118 0
clientfx:rebel_transport_touch_and_go.prt:forced_visability-300 45 -429 -3 118 0
restuss_rebel_mandalorian 55 -417 -3 120 90 patrol_once int:path=1
restuss_rebel_commando 55 -420 -3 121 90 patrol_once int:path=1
restuss_rebel_commando 55 -423 -3 122 90 patrol_once int:path=1
@@ -122,7 +122,7 @@ restuss_rebel_commando 55 -426 -3 111 90 patrol_once int:path=0
restuss_rebel_commando 55 -429 -3 112 90 patrol_once int:path=0
restuss_rebel_commando 55 -432 -3 113 90 patrol_once int:path=0
restuss_rebel_commando 55 -435 -3 114 90 patrol_once int:path=0
clientfx:rebel_transport_touch_and_go.prt:focred_visability-300 80 -429 -3 198 0
clientfx:rebel_transport_touch_and_go.prt:forced_visability-300 80 -429 -3 198 0
restuss_rebel_mandalorian 90 -417 -3 200 90 patrol_once int:path=1
restuss_rebel_commando 90 -420 -3 201 90 patrol_once int:path=1
restuss_rebel_commando 90 -423 -3 202 90 patrol_once int:path=1
@@ -181,7 +181,7 @@ restuss_stormtrooper 40 571 -0.3 -57.1 -90 patrol_once int:path=4
restuss_stormtrooper 40 575 -0.9 -57.1 -90 patrol_once int:path=4
restuss_stormtrooper 40 579 -0.3 -57.1 -90 patrol_once int:path=4
restuss_stormtrooper 40 583 -0.3 -57.1 -90 patrol_once int:path=4
clientfx:rebel_transport_touch_and_go.prt:focred_visability-300 rebel_lander -429 -3.5 158 0
clientfx:rebel_transport_touch_and_go.prt:forced_visability-300 rebel_lander -429 -3.5 158 0
restuss_rebel_mandalorian rebel_reinforcement -417 -3.5 160 90 patrol_once int:path=1
restuss_rebel_commando rebel_reinforcement -420 -3.5 161 90 patrol_once int:path=1
restuss_rebel_commando rebel_reinforcement -423 -3.5 162 90 patrol_once int:path=1
@@ -196,7 +196,7 @@ restuss_rebel_commando rebel_reinforcement -426 -3.5 151 90 patrol_once int:pa
restuss_rebel_commando rebel_reinforcement -429 -3.5 152 90 patrol_once int:path=0
restuss_rebel_commando rebel_reinforcement -432 -3.5 153 90 patrol_once int:path=0
restuss_rebel_commando rebel_reinforcement -435 -3.5 154 90 patrol_once int:path=0
clientfx:rebel_transport_touch_and_go.prt:focred_visability-300 rebel_lander -429 -3 118 0
clientfx:rebel_transport_touch_and_go.prt:forced_visability-300 rebel_lander -429 -3 118 0
restuss_rebel_mandalorian rebel_reinforcement -417 -3 120 90 patrol_once int:path=1
restuss_rebel_commando rebel_reinforcement -420 -3 121 90 patrol_once int:path=1
restuss_rebel_commando rebel_reinforcement -423 -3 122 90 patrol_once int:path=1
@@ -211,7 +211,7 @@ restuss_rebel_commando rebel_reinforcement -426 -3 111 90 patrol_once int:path
restuss_rebel_commando rebel_reinforcement -429 -3 112 90 patrol_once int:path=0
restuss_rebel_commando rebel_reinforcement -432 -3 113 90 patrol_once int:path=0
restuss_rebel_commando rebel_reinforcement -435 -3 114 90 patrol_once int:path=0
clientfx:rebel_transport_touch_and_go.prt:focred_visability-300 rebel_lander -429 -3 198 0
clientfx:rebel_transport_touch_and_go.prt:forced_visability-300 rebel_lander -429 -3 198 0
restuss_rebel_mandalorian rebel_reinforcement -417 -3 200 90 patrol_once int:path=1
restuss_rebel_commando rebel_reinforcement -420 -3 201 90 patrol_once int:path=1
restuss_rebel_commando rebel_reinforcement -423 -3 202 90 patrol_once int:path=1

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -3819,56 +3819,47 @@ public class cmd extends script.base_script
}
public int cmdCompleteRestussStageOne(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
{
obj_id[] objects = getAllObjectsWithObjVar(getLocation(self), 200.0f, "element");
if (objects == null || objects.length == 0)
obj_id[] spawnedItems = getAllObjectsWithObjVar(getLocation(self), 200.0f, "element");
if (spawnedItems == null || spawnedItems.length == 0)
{
return SCRIPT_CONTINUE;
}
for (int i = 0; i < objects.length; i++)
{
if (!hasObjVar(objects[i], "element"))
{
for (obj_id spawnedItem : spawnedItems) {
if (!hasObjVar(spawnedItem, "element")) {
continue;
}
String element = getStringObjVar(objects[i], "element");
if (!element.startsWith("ph1"))
{
String element = getStringObjVar(spawnedItem, "element");
if (!element.startsWith("ph1")) {
continue;
}
if (element.equals("ph1_restuss_master"))
{
if (element.equals("ph1_restuss_master")) {
continue;
}
if (element.indexOf("wall") > -1 || element.indexOf("medic") > -1)
{
if (element.contains("wall") || element.contains("medic")) {
continue;
}
if (element.indexOf("baracks") > -1)
{
messageTo(objects[i], "incrimentPhase", null, 0, false);
messageTo(objects[i], "incrimentPhase", null, 20, false);
messageTo(objects[i], "incrimentPhase", null, 40, false);
if (element.contains("baracks")) {
messageTo(spawnedItem, "incrimentPhase", null, 0, false);
messageTo(spawnedItem, "incrimentPhase", null, 20, false);
messageTo(spawnedItem, "incrimentPhase", null, 40, false);
continue;
}
if (element.indexOf("headq") > -1)
{
messageTo(objects[i], "incrimentPhase", null, 5, false);
messageTo(objects[i], "incrimentPhase", null, 25, false);
messageTo(objects[i], "incrimentPhase", null, 45, false);
if (element.contains("headq")) {
messageTo(spawnedItem, "incrimentPhase", null, 5, false);
messageTo(spawnedItem, "incrimentPhase", null, 25, false);
messageTo(spawnedItem, "incrimentPhase", null, 45, false);
continue;
}
if (element.indexOf("commu") > -1)
{
messageTo(objects[i], "incrimentPhase", null, 10, false);
messageTo(objects[i], "incrimentPhase", null, 30, false);
messageTo(objects[i], "incrimentPhase", null, 50, false);
if (element.contains("commu")) {
messageTo(spawnedItem, "incrimentPhase", null, 10, false);
messageTo(spawnedItem, "incrimentPhase", null, 30, false);
messageTo(spawnedItem, "incrimentPhase", null, 50, false);
continue;
}
if (element.indexOf("logis") > -1)
{
messageTo(objects[i], "incrimentPhase", null, 15, false);
messageTo(objects[i], "incrimentPhase", null, 35, false);
messageTo(objects[i], "incrimentPhase", null, 55, false);
if (element.contains("logis")) {
messageTo(spawnedItem, "incrimentPhase", null, 15, false);
messageTo(spawnedItem, "incrimentPhase", null, 35, false);
messageTo(spawnedItem, "incrimentPhase", null, 55, false);
continue;
}
}

View File

@@ -40,7 +40,8 @@ public class controller_initialize extends script.base_script
public void createController(obj_id self) throws InterruptedException
{
obj_id object = createObject(CONTROLLER, getLocation(self));
persistObject(object);
// why are we persisting??
// persistObject(object);
String objVarString = null;
if (hasObjVar(self, "objVarString"))
{
@@ -77,6 +78,7 @@ public class controller_initialize extends script.base_script
{
return;
}
setObjVar(newObject, "spawnedBy", getSelf());
for (int i = 0; i < parse.length; i++)
{
String[] typeDataSplit = split(parse[i], ':');

View File

@@ -147,8 +147,13 @@ public class npc_base_builder extends script.base_script
for (int i = 0; i < length; i++)
{
dictionary data = dataTableGetRow(dataTable, i);
String toSpawn = data.getString("object");
String spawnPhase = data.getString("phase");
if (!validatePhase(phase, spawnPhase) && i != lineNumber)
{
continue;
}
String toSpawn = data.getString("object");
int locationType = data.getInt("location_type");
float locX = data.getFloat("x_offset");
float locY = data.getFloat("y_offset");
@@ -158,10 +163,6 @@ public class npc_base_builder extends script.base_script
String scriptString = data.getString("script");
String objvarString = data.getString("objvar");
String respawn = data.getString("respawn");
if (!validatePhase(phase, spawnPhase) && i != lineNumber)
{
continue;
}
obj_id newObject = null;
if (!cell.equals("world"))
{
@@ -350,12 +351,10 @@ public class npc_base_builder extends script.base_script
{
setObjVar(self, CURRENT_PHASE, 1);
}
String dataTable = getStringObjVar(self, SPAWN_DATATABLE);
if (hasObjVar(self, SPAWN_LIST))
{
cleanupChildren(self);
}
int spawnPhase = getCurrentPhase(self);
messageTo(self, "initializePhase", trial.getSessionDict(self), 1.0f, false);
}
public boolean canIncrimentPhase(obj_id self) throws InterruptedException
@@ -403,7 +402,15 @@ public class npc_base_builder extends script.base_script
{
if (!hasObjVar(self, CURRENT_PHASE))
{
setObjVar(self, CURRENT_PHASE, 0);
String restussEvent = getConfigSetting("EventTeam", "restussEvent");
if(restussEvent == null || (!restussEvent.equals("1") && !restussEvent.equals("true"))) {
// event is not on so start at beginning phase
setObjVar(self, CURRENT_PHASE, 0);
} else {
// event is on so move to final phase
setObjVar(self, CURRENT_PHASE, 2);
}
}
return getIntObjVar(self, CURRENT_PHASE);
}

View File

@@ -28,20 +28,34 @@ public class pvp_region extends script.base_script
{
removeObjVar(self, trial.PARENT);
}
persistObject(self);
createCircleRegion(getLocation(self), 400, restuss_event.PVP_REGION_NAME, regions.PVP_REGION_TYPE_NORMAL, regions.BUILD_FALSE, regions.MUNI_TRUE, regions.GEO_CITY, 0, 0, regions.SPAWN_FALSE, regions.MISSION_NONE, false, true);
if(getRegion("rori", restuss_event.PVP_REGION_NAME) == null) {
persistObject(self);
createCircleRegion(
getLocation(self),
400,
restuss_event.PVP_REGION_NAME,
regions.PVP_REGION_TYPE_NORMAL,
regions.BUILD_FALSE,
regions.MUNI_TRUE,
regions.GEO_CITY,
0,
0,
regions.SPAWN_FALSE,
regions.MISSION_NONE,
false,
true
);
}
obj_id[] players = getPlayerCreaturesInRange(getLocation(self), 420.0f);
if (players == null || players.length == 0)
{
return;
}
for (int i = 0; i < players.length; i++)
{
if (factions.isImperial(players[i]) || factions.isRebel(players[i]))
{
for (obj_id player : players) {
if (factions.isImperial(player) || factions.isRebel(player)) {
continue;
}
warpPlayer(players[i], "rori", 5305, 80, 6188, null, 0, 0, 0);
warpPlayer(player, "rori", 5305, 80, 6188, null, 0, 0, 0);
}
}
public int OnDestroy(obj_id self) throws InterruptedException

View File

@@ -6,6 +6,7 @@ import script.obj_id;
public class restuss_event_manager extends script.base_script
{
public restuss_event_manager()
{
}
@@ -45,61 +46,48 @@ public class restuss_event_manager extends script.base_script
"reb_wall"
};
obj_id[] elementList = new obj_id[12];
for (int i = 0; i < dungeon_data.length; i++)
{
String name = getStringObjVar(dungeon_data[i], "element");
if (name.indexOf(elementName[IMP_BAR]) > -1)
{
elementList[IMP_BAR] = dungeon_data[i];
for (obj_id dungeon_datum : dungeon_data) {
String name = getStringObjVar(dungeon_datum, "element");
if (name.contains(elementName[IMP_BAR])) {
elementList[IMP_BAR] = dungeon_datum;
}
if (name.indexOf(elementName[IMP_HQ]) > -1)
{
elementList[IMP_HQ] = dungeon_data[i];
if (name.contains(elementName[IMP_HQ])) {
elementList[IMP_HQ] = dungeon_datum;
}
if (name.indexOf(elementName[IMP_COMM]) > -1)
{
elementList[IMP_COMM] = dungeon_data[i];
if (name.contains(elementName[IMP_COMM])) {
elementList[IMP_COMM] = dungeon_datum;
}
if (name.indexOf(elementName[IMP_LOG]) > -1)
{
elementList[IMP_LOG] = dungeon_data[i];
if (name.contains(elementName[IMP_LOG])) {
elementList[IMP_LOG] = dungeon_datum;
}
if (name.indexOf(elementName[IMP_MED]) > -1)
{
elementList[IMP_MED] = dungeon_data[i];
if (name.contains(elementName[IMP_MED])) {
elementList[IMP_MED] = dungeon_datum;
}
if (name.indexOf(elementName[IMP_WALL]) > -1)
{
elementList[IMP_WALL] = dungeon_data[i];
if (name.contains(elementName[IMP_WALL])) {
elementList[IMP_WALL] = dungeon_datum;
}
if (name.indexOf(elementName[REB_BAR]) > -1)
{
elementList[REB_BAR] = dungeon_data[i];
if (name.contains(elementName[REB_BAR])) {
elementList[REB_BAR] = dungeon_datum;
}
if (name.indexOf(elementName[REB_HQ]) > -1)
{
elementList[REB_HQ] = dungeon_data[i];
if (name.contains(elementName[REB_HQ])) {
elementList[REB_HQ] = dungeon_datum;
}
if (name.indexOf(elementName[REB_COMM]) > -1)
{
elementList[REB_COMM] = dungeon_data[i];
if (name.contains(elementName[REB_COMM])) {
elementList[REB_COMM] = dungeon_datum;
}
if (name.indexOf(elementName[REB_LOG]) > -1)
{
elementList[REB_LOG] = dungeon_data[i];
if (name.contains(elementName[REB_LOG])) {
elementList[REB_LOG] = dungeon_datum;
}
if (name.indexOf(elementName[REB_MED]) > -1)
{
elementList[REB_MED] = dungeon_data[i];
if (name.contains(elementName[REB_MED])) {
elementList[REB_MED] = dungeon_datum;
}
if (name.indexOf(elementName[REB_WALL]) > -1)
{
elementList[REB_WALL] = dungeon_data[i];
if (name.contains(elementName[REB_WALL])) {
elementList[REB_WALL] = dungeon_datum;
}
}
int sum_imp_phase = 0;
int sum_reb_phase = 0;
if ((getStringObjVar(self, "element")).indexOf("imp") > -1)
if ((getStringObjVar(self, "element")).contains("imp"))
{
int imp_bar_phase = restuss_event.getPhase(elementList[IMP_BAR]);
int imp_hq_phase = restuss_event.getPhase(elementList[IMP_HQ]);

View File

@@ -2,12 +2,21 @@ package script.theme_park.restuss_event;
import script.dictionary;
import script.obj_id;
import script.library.utils;
public class restuss_event_watcher extends script.base_script
{
public restuss_event_watcher()
{
}
public int OnAttach(obj_id self) throws InterruptedException {
if(automationEnabled()) completeStageOne(self, null);
return SCRIPT_CONTINUE;
}
public int OnInitialize(obj_id self) throws InterruptedException {
if(automationEnabled()) completeStageOne(self, null);
return SCRIPT_CONTINUE;
}
public int incrimentPhase(obj_id self, dictionary params) throws InterruptedException
{
obj_id controller = null;
@@ -20,11 +29,46 @@ public class restuss_event_watcher extends script.base_script
controller = getFirstObjectWithScript(getLocation(self), 200.0f, "theme_park.restuss_event.restuss_event_manager");
}
String element = getStringObjVar(self, "element");
if (element.indexOf("wall") > -1 || element.indexOf("medi") > -1)
if (element.contains("wall") || element.contains("medi"))
{
return SCRIPT_CONTINUE;
}
messageTo(controller, "stepIncrease", null, 1, false);
return SCRIPT_CONTINUE;
}
private boolean automationEnabled() {
String restussEvent = getConfigSetting("EventTeam", "restussEvent");
if (restussEvent == null || (!restussEvent.equals("1") && !restussEvent.equals("true"))) {
return false;
}
return true;
}
public int completeStageOne(obj_id self, dictionary params) throws InterruptedException{
if(utils.hasScriptVar(self, "processed")) return SCRIPT_CONTINUE;
utils.setScriptVar(self, "processed", 1);
String element = getStringObjVar(self, "element");
LOG("events", "Restuss Event - Completing Stage One (factional base) for element \"" + element + "\".");
if (element.contains("baracks")) {
messageTo(self, "incrimentPhase", null, 0, false);
messageTo(self, "incrimentPhase", null, 20, false);
messageTo(self, "incrimentPhase", null, 40, false);
}
else if (element.contains("headq")) {
messageTo(self, "incrimentPhase", null, 5, false);
messageTo(self, "incrimentPhase", null, 25, false);
messageTo(self, "incrimentPhase", null, 45, false);
}
else if (element.contains("commu")) {
messageTo(self, "incrimentPhase", null, 10, false);
messageTo(self, "incrimentPhase", null, 30, false);
messageTo(self, "incrimentPhase", null, 50, false);
}
else if (element.contains("logis")) {
messageTo(self, "incrimentPhase", null, 15, false);
messageTo(self, "incrimentPhase", null, 35, false);
messageTo(self, "incrimentPhase", null, 55, false);
}
return SCRIPT_CONTINUE;
}
}

View File

@@ -6,6 +6,8 @@ import script.obj_id;
public class stage_one_watcher extends script.base_script
{
private boolean evaluating = false;
public stage_one_watcher()
{
}
@@ -85,23 +87,18 @@ public class stage_one_watcher extends script.base_script
}
public int OnClusterWideDataResponse(obj_id self, String manage_name, String name, int request_id, String[] element_name_list, dictionary[] dungeon_data, int lock_key) throws InterruptedException
{
if (dungeon_data == null || dungeon_data.length == 0)
{
LOG("doLogging", "Dungeon data was null or empty");
if (dungeon_data == null || dungeon_data.length == 0) {
LOG("events", "Dungeon data was null or empty");
return SCRIPT_CONTINUE;
}
if (hasObjVar(self, "sent_signal_one") && hasObjVar(self, "sent_signal_two"))
{
for (int i = 0; i < dungeon_data.length; i++)
{
if (hasObjVar(self, "sent_signal_one") && hasObjVar(self, "sent_signal_two")) {
for (int i = 0; i < dungeon_data.length; i++) {
obj_id crier_id = dungeon_data[i].getObjId("dungeon_id");
messageTo(crier_id, "beginMessage", null, 0, false);
}
}
if (hasObjVar(self, "sent_signal_one") && !hasObjVar(self, "sent_signal_two"))
{
for (int i = 0; i < dungeon_data.length; i++)
{
if (hasObjVar(self, "sent_signal_one") && !hasObjVar(self, "sent_signal_two")) {
for (int i = 0; i < dungeon_data.length; i++) {
obj_id crier_id = dungeon_data[i].getObjId("dungeon_id");
messageTo(crier_id, "beginSpawn", null, 0, false);
}

View File

@@ -31,11 +31,47 @@ public class stage_two_controller extends script.base_script
public static final boolean LOGGING = true;
public int beginSpawning(obj_id self, dictionary params) throws InterruptedException
{
clearEventArea(self);
dictionary dict = trial.getSessionDict(self);
dict.put("stage", 1);
messageTo(self, "spawnNextStage", dict, 0, false);
setObjVar(self, "eventStarted", 1);
String restussEvent = getConfigSetting("EventTeam", "restussEvent");
if(restussEvent != null && restussEvent.equals("1") || restussEvent.equals("true")){
LOG("events", "Restuss Event - Event is on.");
String phaseVal = getConfigSetting("EventTeam", "restussPhase");
if(phaseVal != null && !phaseVal.equals("")){
int phase = Integer.parseInt(phaseVal);
if(phase > 2) phase = 2;
if(phase < 0) phase = 0;
LOG("events", "Restuss Event - Config set to put Restuss into phase " + phaseVal);
String progressionOn = getConfigSetting("EventTeam", "restussProgressionOn");
if(phase == 1){
// Check if the user wants to progress through stage one or not. If so, start the cycle.
if(progressionOn != null && !progressionOn.equals("false") || !progressionOn.equals("0")) {
dictionary dict = trial.getSessionDict(self);
dict.put("stage", 3608);
messageTo(self, "spawnNextStage", dict, 0, false);
}
}
} else {
doMessageTo("messageTo:broadcastMessage:10:incrimentPhase:0");
doMessageTo("messageTo:broadcastMessage:10:incrimentPhase:10");
doMessageTo("messageTo:broadcastMessage:10:makePvPArea:10");
}
} else {
clearEventArea(self);
dictionary dict = trial.getSessionDict(self);
dict.put("stage", 1);
messageTo(self, "spawnNextStage", dict, 0, false);
}
return SCRIPT_CONTINUE;
}
public int OnHearSpeech(obj_id self, obj_id speaker, String text) throws InterruptedException {
if (!isGod(speaker)) {
return SCRIPT_CONTINUE;
}
if (text.toLowerCase().equals("start restuss event") && getIntObjVar(self, "eventStarted") != 1) {
LOG("events", "Restuss Event - Manually starting the Restuss Event.");
startRestussBaseSpawners(self);
startRestussCitySpawner(self);
}
return SCRIPT_CONTINUE;
}
public int cleanupEvent(obj_id self, dictionary params) throws InterruptedException
@@ -67,6 +103,7 @@ public class stage_two_controller extends script.base_script
public int spawnNextStage(obj_id self, dictionary params) throws InterruptedException
{
int stage = params.getInt("stage");
LOG("events", "Restuss Event - Spawning for Stage " + stage + ".");
if (!trial.verifySession(self, params))
{
return SCRIPT_CONTINUE;
@@ -81,11 +118,9 @@ public class stage_two_controller extends script.base_script
boolean moreStages = false;
int nextStage = (int)Float.POSITIVE_INFINITY;
float timeToNext = 0;
for (int i = 0; i < allStages.length; i++)
{
if (allStages[i] > stage && allStages[i] < nextStage)
{
nextStage = allStages[i];
for (int eventStage : allStages) {
if (eventStage > stage && eventStage < nextStage) {
nextStage = eventStage;
timeToNext = nextStage - stage;
moreStages = true;
}
@@ -112,7 +147,7 @@ public class stage_two_controller extends script.base_script
int rows = dataTableGetNumRows(restuss_event.STAGE_TWO_DATA);
if (rows == 0)
{
doLogging("spawnActors", "Your table has no rows: " + restuss_event.STAGE_TWO_DATA);
doLogging("events", "Your table has no rows: " + restuss_event.STAGE_TWO_DATA);
return;
}
if (stage == 2)
@@ -203,7 +238,7 @@ public class stage_two_controller extends script.base_script
trial.setInterest(newObject);
setSpawnObjVar(newObject, spawnObjVar);
attachSpawnScripts(newObject, spawnScript, objType);
if (object.indexOf("patrol_waypoint.iff") > -1)
if (object.contains("patrol_waypoint.iff"))
{
addToWaypointData(controller, newObject);
}
@@ -368,12 +403,16 @@ public class stage_two_controller extends script.base_script
if (completeParse[1].startsWith("broadcastMessage"))
{
float range = utils.stringToFloat(completeParse[2]);
float delay = 0;
if(completeParse.length == 5) {
delay = utils.stringToFloat(completeParse[4]);
}
obj_id[] objects = getObjectsInRange(getLocation(getSelf()), range);
if (objects == null || objects.length == 0)
{
return;
}
utils.messageTo(objects, completeParse[3], null, 0, false);
utils.messageTo(objects, completeParse[3], null, delay, false);
}
}
public void doPlayMusicInArea(String message) throws InterruptedException
@@ -417,14 +456,40 @@ public class stage_two_controller extends script.base_script
dungeon_info.put("position_y", loc.y);
dungeon_info.put("position_z", loc.z);
replaceClusterWideData(manage_name, name, dungeon_info, true, lock_key);
String restussEvent = getConfigSetting("EventTeam", "restussEvent");
if(restussEvent == null || (!restussEvent.equals("1") && !restussEvent.equals("true"))) {
LOG("events", "Restuss Event - Event is turned off.");
} else {
startRestussCitySpawner(self);
}
releaseClusterWideDataLock(manage_name, lock_key);
return SCRIPT_CONTINUE;
}
private void startRestussBaseSpawners(obj_id self) {
obj_id[] baseControllers = getAllObjectsWithScript(getLocation(self), 1000.0f, "theme_park.restuss_event.restuss_event_watcher");
for(obj_id baseController : baseControllers){
LOG("events", "Restuss Event - Telling Base Object (" + getName(baseController) + ":" + baseController.toString() + ") to progress through base building phase.");
messageTo(baseController, "completeStageOne", null, 0.0f, false);
}
}
private void startRestussCitySpawner(obj_id self) {
LOG("events", "Restuss Event - Event is turned on - Starting Stage Two.");
messageTo(self, "beginSpawning", null, 1.0f, false);
}
public int makePvPArea(obj_id self, dictionary params) throws InterruptedException {
LOG("events","Restuss Event - Restuss Stage Two kicked off - creating PvP Zone.");
attachScript(self, "theme_park.restuss_event.pvp_region");
LOG("events", "Restuss Event - Restuss PVP area engaged - Event Progression Complete.");
return SCRIPT_CONTINUE;
}
public void doLogging(String section, String message) throws InterruptedException
{
if (LOGGING)
{
LOG("doLogging/stage_two_controller/" + section, message);
LOG("events", section + ": " + message);
}
}
}