59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
|
module TS.SpaceTac {
|
||
|
/**
|
||
|
* Cheat helpers for current battle
|
||
|
*
|
||
|
* May be used from the console to help development
|
||
|
*/
|
||
|
export class BattleCheats {
|
||
|
battle: Battle
|
||
|
player: Player
|
||
|
|
||
|
constructor(battle: Battle, player: Player) {
|
||
|
this.battle = battle;
|
||
|
this.player = player;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Make player win the current battle
|
||
|
*/
|
||
|
win(): void {
|
||
|
iforeach(this.battle.iships(), ship => {
|
||
|
if (ship.fleet.player != this.player) {
|
||
|
ship.setDead();
|
||
|
}
|
||
|
});
|
||
|
this.battle.endBattle(this.player.fleet);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Make player lose the current battle
|
||
|
*/
|
||
|
lose(): void {
|
||
|
iforeach(this.battle.iships(), ship => {
|
||
|
if (ship.fleet.player == this.player) {
|
||
|
ship.setDead();
|
||
|
}
|
||
|
});
|
||
|
this.battle.endBattle(first(this.battle.fleets, fleet => fleet.player != this.player));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Add an equipment to current playing ship
|
||
|
*/
|
||
|
equip(name: string): void {
|
||
|
let ship = this.battle.playing_ship;
|
||
|
if (ship) {
|
||
|
let generator = new LootGenerator();
|
||
|
generator.setTemplateFilter(template => template.name == name);
|
||
|
|
||
|
let equipment = generator.generateHighest(ship.skills);
|
||
|
if (equipment) {
|
||
|
let slot_type = nn(equipment.slot_type);
|
||
|
let slot = ship.getFreeSlot(slot_type) || ship.addSlot(slot_type);
|
||
|
slot.attach(equipment);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|