Files
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

435 lines
18 KiB
Java
Executable File

package script.test;
import script.dictionary;
import script.library.qa;
import script.library.sui;
import script.library.utils;
import script.obj_id;
public class qaweapon extends script.base_script
{
public qaweapon()
{
}
public static final String SCRIPTVAR = "qaweapon";
public static final String[] WEAPON_DAMAGE =
{
"1",
"10",
"50",
"100",
"500",
"1000",
"5000"
};
public static final String[] WEAPON_ELEMENT_TYPE =
{
"None",
"Heat",
"Cold",
"Acid",
"Electric"
};
public static final String[] WEAPON_TYPE =
{
"Pistol",
"Carbine",
"Rifle",
"Unarmed",
"1-Handed",
"2-Handed",
"Polearm",
"Heavy Weapon",
"Flame Thrower"
};
public static final int PISTOL = 0;
public static final int CARBINE = 1;
public static final int RIFLE = 2;
public static final int UNARMED = 3;
public static final int ONE_HANDED = 4;
public static final int TWO_HANDED = 5;
public static final int POLEARM = 6;
public static final int HEAVY = 7;
public static final int FLAMETHROWER = 8;
public static final int DAMAGE_1 = 0;
public static final int DAMAGE_10 = 1;
public static final int DAMAGE_50 = 2;
public static final int DAMAGE_100 = 3;
public static final int DAMAGE_500 = 4;
public static final int DAMAGE_1000 = 5;
public static final int DAMAGE_5000 = 6;
public static final int ELEMENT_0 = 0;
public static final int ELEMENT_32 = 1;
public static final int ELEMENT_64 = 2;
public static final int ELEMENT_128 = 3;
public static final int ELEMENT_256 = 4;
public int OnAttach(obj_id self) throws InterruptedException
{
if (isGod(self))
{
if (getGodLevel(self) < 10)
{
detachScript(self, "test.qaweapon");
sendSystemMessage(self, "You do not have the appropriate access level to use this script.", null);
}
}
else if (!isGod(self))
{
detachScript(self, "test.qaweapon");
}
return SCRIPT_CONTINUE;
}
public int OnSpeaking(obj_id self, String text) throws InterruptedException
{
if (isGod(self))
{
if ((toLower(text)).equals(SCRIPTVAR))
{
weaponTypeMenu(self);
return SCRIPT_OVERRIDE;
}
}
return SCRIPT_CONTINUE;
}
public int handleWeaponTypeOptions(obj_id self, dictionary params) throws InterruptedException
{
if (isGod(self))
{
obj_id player = sui.getPlayerId(params);
int btn = sui.getIntButtonPressed(params);
if (btn == sui.BP_CANCEL)
{
qa.removePlayer(player, SCRIPTVAR, "");
return SCRIPT_CONTINUE;
}
if (btn == sui.BP_REVERT)
{
qa.qaToolMainMenu(player);
utils.removeScriptVarTree(player, SCRIPTVAR);
return SCRIPT_CONTINUE;
}
int idx = sui.getListboxSelectedRow(params);
if (idx < 0)
{
qa.removePlayer(player, SCRIPTVAR, "");
return SCRIPT_CONTINUE;
}
switch (idx)
{
case PISTOL:
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Pistol");
weaponDamageMenu(player);
break;
case CARBINE:
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Carbine");
weaponDamageMenu(player);
break;
case RIFLE:
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Rifle");
weaponDamageMenu(player);
break;
case UNARMED:
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Unarmed");
weaponDamageMenu(player);
break;
case ONE_HANDED:
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "1-Handed");
weaponDamageMenu(player);
break;
case TWO_HANDED:
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "2-Handed");
weaponDamageMenu(player);
break;
case POLEARM:
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Polearm");
weaponDamageMenu(player);
break;
case HEAVY:
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Heavy Weapon");
weaponDamageMenu(player);
break;
case FLAMETHROWER:
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Flame Thrower");
weaponDamageMenu(player);
break;
default:
qa.removePlayer(player, SCRIPTVAR, "There was an error with your selection, Please try again.");
weaponTypeMenu(self);
return SCRIPT_CONTINUE;
}
}
return SCRIPT_CONTINUE;
}
public int handleWeaponLevelOptions(obj_id self, dictionary params) throws InterruptedException
{
if (isGod(self))
{
obj_id player = sui.getPlayerId(params);
int btn = sui.getIntButtonPressed(params);
if (btn == sui.BP_CANCEL)
{
qa.removePlayer(player, SCRIPTVAR, "");
return SCRIPT_CONTINUE;
}
if (btn == sui.BP_REVERT)
{
weaponTypeMenu(player);
return SCRIPT_CONTINUE;
}
int idx = sui.getListboxSelectedRow(params);
if (idx < 0)
{
qa.removePlayer(player, SCRIPTVAR, "");
return SCRIPT_CONTINUE;
}
switch (idx)
{
case DAMAGE_1:
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 1);
elementalTypeMenu(player);
break;
case DAMAGE_10:
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 10);
elementalTypeMenu(player);
break;
case DAMAGE_50:
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 50);
elementalTypeMenu(player);
break;
case DAMAGE_100:
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 100);
elementalTypeMenu(player);
break;
case DAMAGE_500:
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 500);
elementalTypeMenu(player);
break;
case DAMAGE_1000:
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 1000);
elementalTypeMenu(player);
break;
case DAMAGE_5000:
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 5000);
elementalTypeMenu(player);
break;
default:
qa.removePlayer(player, SCRIPTVAR, "There was an error with your selection, Please try again.");
weaponTypeMenu(self);
return SCRIPT_CONTINUE;
}
}
return SCRIPT_CONTINUE;
}
public int handleWeaponElementalOptions(obj_id self, dictionary params) throws InterruptedException
{
if (isGod(self))
{
obj_id player = sui.getPlayerId(params);
int btn = sui.getIntButtonPressed(params);
if (btn == sui.BP_CANCEL)
{
qa.removePlayer(player, SCRIPTVAR, "");
return SCRIPT_CONTINUE;
}
if (btn == sui.BP_REVERT)
{
weaponDamageMenu(player);
return SCRIPT_CONTINUE;
}
int idx = sui.getListboxSelectedRow(params);
if (idx < 0)
{
qa.removePlayer(player, SCRIPTVAR, "");
return SCRIPT_CONTINUE;
}
switch (idx)
{
case ELEMENT_0:
utils.setScriptVar(player, SCRIPTVAR + ".elementChoice", 0);
createQAWeapon(player);
break;
case ELEMENT_32:
utils.setScriptVar(player, SCRIPTVAR + ".elementChoice", 32);
elementalDamageMenu(player);
break;
case ELEMENT_64:
utils.setScriptVar(player, SCRIPTVAR + ".elementChoice", 64);
elementalDamageMenu(player);
break;
case ELEMENT_128:
utils.setScriptVar(player, SCRIPTVAR + ".elementChoice", 128);
elementalDamageMenu(player);
break;
case ELEMENT_256:
utils.setScriptVar(player, SCRIPTVAR + ".elementChoice", 256);
elementalDamageMenu(player);
break;
default:
qa.removePlayer(player, SCRIPTVAR, "There was an error with your selection, Please try again.");
weaponTypeMenu(self);
return SCRIPT_CONTINUE;
}
}
return SCRIPT_CONTINUE;
}
public int handleWeaponElementalDamage(obj_id self, dictionary params) throws InterruptedException
{
if (isGod(self))
{
obj_id player = sui.getPlayerId(params);
int btn = sui.getIntButtonPressed(params);
if (btn == sui.BP_CANCEL)
{
qa.removePlayer(player, SCRIPTVAR, "");
return SCRIPT_CONTINUE;
}
if (btn == sui.BP_REVERT)
{
elementalTypeMenu(player);
return SCRIPT_CONTINUE;
}
int idx = sui.getListboxSelectedRow(params);
if (idx < 0)
{
qa.removePlayer(player, SCRIPTVAR, "");
return SCRIPT_CONTINUE;
}
switch (idx)
{
case DAMAGE_1:
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 1);
createQAWeapon(player);
break;
case DAMAGE_10:
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 10);
createQAWeapon(player);
break;
case DAMAGE_50:
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 50);
createQAWeapon(player);
break;
case DAMAGE_100:
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 100);
createQAWeapon(player);
break;
case DAMAGE_500:
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 500);
createQAWeapon(player);
break;
case DAMAGE_1000:
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 1000);
createQAWeapon(player);
break;
case DAMAGE_5000:
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 5000);
createQAWeapon(player);
break;
default:
qa.removePlayer(player, SCRIPTVAR, "There was an error with your selection, Please try again.");
weaponTypeMenu(self);
return SCRIPT_CONTINUE;
}
}
return SCRIPT_CONTINUE;
}
public void weaponTypeMenu(obj_id player) throws InterruptedException
{
qa.refreshMenu(player, "-Weapon Type Select Menu-\nChoose the type of weapon you wish to use for testing.", "QA Test Weapon Tool", WEAPON_TYPE, "handleWeaponTypeOptions", SCRIPTVAR + ".pid", SCRIPTVAR + ".weaponTypeMenu", sui.OK_CANCEL_REFRESH);
}
public void weaponDamageMenu(obj_id player) throws InterruptedException
{
qa.refreshMenu(player, "-Weapon Damage Select Menu-\nSelect the amount of damage you want the weapon to have.\nNOTE: The Min/Max damage of all weapons will be the same.", "QA Test Weapon Tool", WEAPON_DAMAGE, "handleWeaponLevelOptions", SCRIPTVAR + ".pid", SCRIPTVAR + ".damageMenu", sui.OK_CANCEL_REFRESH);
}
public void elementalTypeMenu(obj_id player) throws InterruptedException
{
qa.refreshMenu(player, "-Weapon Damage Select Menu-\nSelect the elemental damage type you want the weapon to use.", "QA Test Weapon Tool", WEAPON_ELEMENT_TYPE, "handleWeaponElementalOptions", SCRIPTVAR + ".pid", SCRIPTVAR + ".elementalTypeMenu", sui.OK_CANCEL_REFRESH);
}
public void elementalDamageMenu(obj_id player) throws InterruptedException
{
qa.refreshMenu(player, "-Weapon Damage Select Menu-\nSelect the amount of elemental damage you want add to the weapon.\nNOTE: The Min/Max damage of all weapons will be the same.", "QA Test Weapon Tool", WEAPON_DAMAGE, "handleWeaponElementalDamage", SCRIPTVAR + ".pid", SCRIPTVAR + ".elementalTypeMenu", sui.OK_CANCEL_REFRESH);
}
public void checkInventory(obj_id player) throws InterruptedException
{
obj_id inventory = utils.getInventoryContainer(player);
obj_id[] invItems = getContents(inventory);
if (invItems.length > 79)
{
sendSystemMessageTestingOnly(player, "You do not have enough space in your inventory, please delete some items and try again.");
}
}
public void createQAWeapon(obj_id player) throws InterruptedException
{
if (utils.hasScriptVar(player, SCRIPTVAR + ".damageChoice") && utils.hasScriptVar(player, SCRIPTVAR + ".weaponTypeChoice"))
{
obj_id inventory = utils.getInventoryContainer(player);
checkInventory(player);
int intDamage = utils.getIntScriptVar(player, SCRIPTVAR + ".damageChoice");
int intElementalType = utils.getIntScriptVar(player, SCRIPTVAR + ".elementChoice");
int intElementalDamage = utils.getIntScriptVar(player, SCRIPTVAR + ".elementalDamage");
float speed = 0.00f;
String weaponObject = "";
String weaponType = utils.getStringScriptVar(player, SCRIPTVAR + ".weaponTypeChoice");
switch (weaponType) {
case "Pistol":
speed = 0.40f;
weaponObject = "object/weapon/ranged/pistol/pistol_cdef.iff";
break;
case "Carbine":
speed = 0.60f;
weaponObject = "object/weapon/ranged/carbine/carbine_cdef.iff";
break;
case "Rifle":
speed = 0.80f;
weaponObject = "object/weapon/ranged/rifle/rifle_cdef.iff";
break;
}
if (weaponType.equals("Flame Thrower"))
{
speed = 0.25f;
weaponObject = "object/weapon/ranged/rifle/rifle_flame_thrower.iff";
}
else if (weaponType.equals("Unarmed") || weaponType.equals("1-Handed") || weaponType.equals("2-Handed") || weaponType.equals("Polearm") || weaponType.equals("Heavy Weapon"))
{
speed = 1.00f;
switch (weaponType) {
case "Heavy Weapon":
weaponObject = "object/weapon/ranged/heavy/heavy_rocket_launcher.iff";
break;
case "Unarmed":
weaponObject = "object/weapon/melee/special/vibroknuckler.iff";
break;
case "1-Handed":
weaponObject = "object/weapon/melee/knife/knife_dagger.iff";
break;
case "2-Handed":
weaponObject = "object/weapon/melee/2h_sword/2h_sword_cleaver.iff";
break;
case "Polearm":
weaponObject = "object/weapon/melee/polearm/lance_staff_wood_s1.iff";
break;
}
}
obj_id newObj = createObject(weaponObject, inventory, "");
setObjVar(newObj, "dynamic_item.intLevelRequired", 1);
setObjVar(newObj, "noTrade", true);
setObjVar(newObj, "QAWeapon", 1);
setWeaponAttackSpeed(newObj, speed);
setWeaponMaxDamage(newObj, intDamage);
setWeaponMinDamage(newObj, intDamage);
setName(newObj, "QA Weapon - Testing Use Only");
if (intElementalType > 0)
{
setWeaponElementalDamage(newObj, intElementalType, intElementalDamage);
}
sendSystemMessageTestingOnly(player, "The QAWeapon has been placed in your backpack.");
qa.removePlayer(player, SCRIPTVAR, "");
}
else
{
sendSystemMessageTestingOnly(player, "There was an error with the QA Test Weapon Tool - Please Try Again.");
qa.removePlayer(player, SCRIPTVAR, "");
weaponTypeMenu(player);
}
}
}