Config/script.js |
this.name = "QTHI AntiZap";
this.author = "QCS";
this.copyright = "(C) 2017 QCS.";
this.licence = "CC-NC-by-SA 4.0";
this.description = "Worldscript for QTHI AntiZap by QCS.";
this.version = "0.1";
"use strict";
this.mode = 2;
this.activated = false;
this.armed = true;
this.ships = [];
this.shipLaunchedFromStation = function (station) {
this.shipExitedWormhole();
};
this.shipExitedWormhole = function () {
if (player.ship.equipmentStatus("EQ_QTHI_AntiZap") === "EQUIPMENT_OK") {
this.activated = true;
this.console();
if (!this.shipsTimer) {
this.shipsTimer = new Timer(this, this.evaluateShips, 0.25, 0.25);
}
this.shipsTimer.start();
}
};
this.shipWillDockWithStation = function (station) {
this.shipsTimer.stop();
};
this.toggleActive = function () {
this.activated = !this.activated;
this.console();
};
this.console = function () {
if (this.activated) {
player.consoleMessage("QTHI AntiZap active");
} else {
player.consoleMessage("QTHI AntiZap inactive.");
}
return;
/* if (this.activated) {
switch (this.mode) {
case 1:
player.consoleMessage("QTHI AntiZap active, mode: light zap.");
break;
case 2:
player.consoleMessage("QTHI AntiZap active, mode: medium zap.");
break;
case 3:
player.consoleMessage("QTHI AntiZap active, mode: strong zap.");
break;
}
} else {
player.consoleMessage("QTHI AntiZap inactive.");
}
*/
};
this.playerBoughtEquipment = function (equipmentKey) {
if (equipmentKey === "EQ_QTHI_AntiZap_Sell") {
player.ship.removeEquipment("EQ_QTHI_AntiZap");
player.ship.removeEquipment("EQ_QTHI_AntiZap_Sell");
player.credits += 100;
}
};
this.shipTakingDamage = function (amount, whom, type) {
if (player.ship.equipmentStatus("EQ_QTHI_AntiZap") !== "EQUIPMENT_OK") {
return;
}
if (this.mode === 0) {
return;
}
if (!this.armed) {
return;
}
if (whom.currentWeapon.equipmentKey === "EQ_WEAPON_NONE") {
this.slog("skipped attack from " + whom + " due to NONE weapon");
return;
}
if (player.ship.energy < 32) {
this.slog("skipped attack from " + whom + " due to LOW energy");
return;
}
if (player.ship.temperature > 0.85) {
this.slog("skipped attack from " + whom + " due to HIGH temperature");
return;
}
if (amount > 0) {
this.slog("skipped attack from " + whom + " due to shield down");
return;
}
//TODO check which shield, return if shield is 0;
// - shield must be operating
// - maybe only check if damage is 0 - if not, shield is down
switch (this.mode) {
case 1:
whom.energy -= 10;
whom.temperature += 0.1;
player.ship.energy -= 3;
break;
case 2:
whom.energy -= 15;
whom.temperature += 0.3;
player.ship.energy -= 5;
if (Math.random() < 0.2) {
whom.commsMessage("Help! My systems went totally haywire!");
}
whom.performStop();
// whom.performTumble();
this.ships[clock.absoluteSeconds + 5] = whom;
break;
case 3:
whom.energy -= 20;
whom.temperature += 0.25;
whom.performTumble();
player.ship.energy -= 10;
break;
}
player.consoleMessage("QTHI AntiZap zapped enemy!", 6);
};
this.slog = function (s) {
log(this.name, s);
};
this.evaluateShips = function () {
// slog("evaluateShips");
for (var s in this.ships) {
// slog("Ship: " + s + ": " + this.ships[s]);
if (clock.absoluteSeconds >= s) {
this.ships[s].broadcastDistressMessage();
delete this.ships[s];
} else {
// this.ships[s].performTumble();
this.ships[s].performStop();
}
}
};
|
Scripts/EQ_QTHI_AntiZap.js |
this.author = "QCS";
this.copyright = "� 2017 QCS.";
this.licence = "CC-BY-SA 4.0";
this.version = "0.1";
this.name = "QTHI AntiZap EQ";
this.author = "QCS";
this.copyright = "(C) 2017 QCS.";
this.licence = "CC-NC-by-SA 4.0";
this.description = "Equipment script for AntiZap";
this.version = "0.1";
this.activated = function () {
worldScripts["QTHI AntiZap"].toggleActive();
}
this.mode = function () {
//for now, do nothing
return;
var mode = worldScripts["QTHI AntiZap"]._mode;
mode++;
if (mode > 3) {
mode = 1;
}
ws._mode = mode;
ws.console();
}
|