Files
dsrc/sku.0/sys.server/compiled/game/script/event/invasion/invasion_target.java
T
TekaohandGitHub 5c2e112349 Java 11.0.2 migration (#32)
* Code compiles - execution NOT tested

* updating gitignore

* Removed intellij settings files

* Removed more intellij files

* Added exclusion for JDK classes.

* Fixed purchasing script for vendors that have listed coin types.

* Updated script to not kick off until the entire preload is complete.

* adds static name entry for Solo movie poster and tcg9 vendor entry

* clean up empty and orphaned object templates

* adds placeholder black market (static) spawns

* corrects entries for the video game table to correctly set it in tcg series 2 and remove series 1 console errors

* Updated gitignore and removed intellij project files

* Fixed appearance reference for thranta payroll and kashyyyk door, added skipLosCheck objvar due to cannit see issue. Requires updated src

* Fixed appearance and template for terminal (#2)

* Fixed appearance and template for terminal (#3)

* Fixed appearance and template for terminal (#4)

* Deleted another faulty/orphaned object template

* Fixed gcw ranks option on frog. Only issue is that it doesn't award the officer commands or badges.

* Fixed some unneeded java 11 changes
2019-04-18 18:31:52 -05:00

198 lines
8.8 KiB
Java
Executable File

package script.event.invasion;
import script.dictionary;
import script.library.badge;
import script.library.create;
import script.library.locations;
import script.library.utils;
import script.location;
import script.obj_id;
public class invasion_target extends script.base_script
{
public invasion_target()
{
}
public int OnAttach(obj_id self) throws InterruptedException
{
float timeStamp = getGameTime();
setObjVar(self, "event.invasion.timeStamp", timeStamp);
obj_id coordinator = getObjIdObjVar(self, "event.invasion.eventCoordinator");
sendSystemMessage(coordinator, "Starting...", null);
dictionary params = new dictionary();
messageTo(self, "launchEvent", null, 1, false);
messageTo(self, "cleanUp", null, 36000, false);
return SCRIPT_CONTINUE;
}
public int launchEvent(obj_id self, dictionary params) throws InterruptedException
{
int numWaves = getIntObjVar(self, "event.invasion.waves.numWaves");
int timeBetweenSpawns = getIntObjVar(self, "event.invasion.waves.timeBetweenSpawns");
int timeBetweenWaves = getIntObjVar(self, "event.invasion.waves.timeBetweenWaves");
int totalEventTime = 1;
int useKeyObject = getIntObjVar(self, "event.invasion.keyObject.useKeyObject");
obj_id coordinator = getObjIdObjVar(self, "event.invasion.eventCoordinator");
if (useKeyObject == 1)
{
messageTo(self, "spawnKeyObject", null, 1, false);
}
for (int i = 0; i < numWaves; i++)
{
params.put("wave", i + 1);
messageTo(self, "startNextWave", params, i * timeBetweenWaves * 30 + 1, false);
}
String broadcast = getStringObjVar(self, "event.invasion.broadcasts.startBroadcast");
params.put("broadcast", broadcast);
messageTo(self, "playAreaBroadcast", params, 1, false);
return SCRIPT_CONTINUE;
}
public int startNextWave(obj_id self, dictionary params) throws InterruptedException
{
int wave = params.getInt("wave");
int timeBetweenSpawns = getIntObjVar(self, "event.invasion.waves.timeBetweenSpawns");
int numCreatureTypes = getIntObjVar(self, "event.invasion.creature.numCreatureTypes");
int numWaves = getIntObjVar(self, "event.invasion.waves.numWaves");
int specialBroadcastWave = getIntObjVar(self, "event.invasion.broadcasts.specialBroadcastWave");
if (specialBroadcastWave == wave)
{
String broadcast = getStringObjVar(self, "event.invasion.broadcasts.specialBroadcast");
params.put("broadcast", broadcast);
messageTo(self, "playAreaBroadcast", params, 1, false);
}
if (wave == numWaves)
{
int awardBadge = getIntObjVar(self, "event.invasion.misc.awardBadge");
if (awardBadge == 1)
{
obj_id[] objPlayers = getPlayerCreaturesInRange(self, 255);
if (objPlayers != null && objPlayers.length > 0)
{
for (obj_id objPlayer : objPlayers) {
badge.grantBadge(objPlayer, "bdg_accolade_live_event");
}
}
}
}
obj_id coordinator = getObjIdObjVar(self, "event.invasion.eventCoordinator");
for (int i = 0; i < numCreatureTypes; i++)
{
int numCreatures = getIntObjVar(self, "event.invasion.waves.wave" + wave + ".creature" + (i + 1));
for (int j = 0; j < numCreatures; j++)
{
String spawnName = getStringObjVar(self, "event.invasion.creature.creatureType" + (i + 1));
params.put("spawnName", spawnName);
messageTo(self, "spawnNextCreature", params, timeBetweenSpawns * j + 1, false);
int adjNumCreatureTypes = numCreatureTypes - 1;
int adjNumCreature = numCreatures - 1;
if (adjNumCreatureTypes < 0)
{
adjNumCreatureTypes = 0;
}
if (adjNumCreature < 0)
{
adjNumCreature = 0;
}
if (wave == numWaves && i == adjNumCreatureTypes && j == adjNumCreature)
{
messageTo(self, "cleanUp", null, timeBetweenSpawns * j + 30, false);
}
}
}
return SCRIPT_CONTINUE;
}
public int spawnNextCreature(obj_id self, dictionary params) throws InterruptedException
{
String spawnName = params.getString("spawnName");
int method = getIntObjVar(self, "event.invasion.spawning.method");
if (method == 0)
{
float minRadius = getFloatObjVar(self, "event.invasion.spawning.minRadius");
float maxRadius = getFloatObjVar(self, "event.invasion.spawning.maxRadius");
location center = getLocation(self);
location spawnLoc = null;
int x = 0;
while (x < 10)
{
location loc = utils.getRandomLocationInRing(center, minRadius, maxRadius);
spawnLoc = locations.getGoodLocationAroundLocation(loc, 5.0f, 5.0f, 50.0f, 50.0f);
if (spawnLoc != null)
{
break;
}
x++;
}
obj_id coordinator = getObjIdObjVar(self, "event.invasion.eventCoordinator");
obj_id critter = create.object(spawnName, spawnLoc);
setObjVar(critter, "event.invasion.target", self);
setObjVar(critter, "event.invasion.coordinator", coordinator);
attachScript(critter, "event.invasion.invader");
return SCRIPT_CONTINUE;
}
if (method == 1)
{
int numSpawnPoints = getIntObjVar(self, "event.invasion.spawning.numSpawnPoints");
int randomSpawnPoint = rand(1, numSpawnPoints);
location spawnPoint = getLocationObjVar(self, "event.invasion.spawning.location" + randomSpawnPoint);
if (spawnPoint != null)
{
obj_id critter = create.object(spawnName, spawnPoint);
setObjVar(critter, "event.invasion.target", self);
obj_id coordinator = getObjIdObjVar(self, "event.invasion.eventCoordinator");
setObjVar(critter, "event.invasion.coordinator", coordinator);
attachScript(critter, "event.invasion.invader");
}
return SCRIPT_CONTINUE;
}
return SCRIPT_CONTINUE;
}
public int playAreaBroadcast(obj_id self, dictionary params) throws InterruptedException
{
String areaBroadcast = params.getString("broadcast");
obj_id[] objPlayers = getPlayerCreaturesInRange(self, 255);
if (objPlayers != null && objPlayers.length > 0)
{
for (obj_id objPlayer : objPlayers) {
sendSystemMessage(objPlayer, areaBroadcast, null);
}
}
return SCRIPT_CONTINUE;
}
public int cleanUp(obj_id self, dictionary params) throws InterruptedException
{
destroyObject(self);
return SCRIPT_CONTINUE;
}
public void checkTimeLimit(obj_id self) throws InterruptedException
{
float myCreationTime = getFloatObjVar(self, "event.invasion.timeStamp");
float rightNow = getGameTime();
float delta = rightNow - myCreationTime;
if (delta > 60 * 60 * 10)
{
destroyObject(self);
}
return;
}
public int OnAddedToWorld(obj_id self) throws InterruptedException
{
checkTimeLimit(self);
return SCRIPT_CONTINUE;
}
public int spawnKeyObject(obj_id self, dictionary params) throws InterruptedException
{
String name = getStringObjVar(self, "event.invasion.keyObject.name");
float expirationTime = getFloatObjVar(self, "event.invasion.keyObject.expirationTime");
location whereIAmNow = getLocation(self);
float timeStamp = getGameTime();
obj_id keyObject = create.object(name, whereIAmNow);
setObjVar(keyObject, "event.invasion.keyObject.expirationTime", expirationTime);
setObjVar(keyObject, "event.invasion.keyObject.timeStamp", timeStamp);
obj_id coordinator = getObjIdObjVar(self, "event.invasion.eventCoordinator");
setObjVar(keyObject, "event.invasion.target", self);
setObjVar(keyObject, "event.invasion.coordinator", coordinator);
sendSystemMessage(coordinator, "Created key object with OID " + keyObject, null);
attachScript(keyObject, "event.invasion.key_object");
return SCRIPT_CONTINUE;
}
}