Files
RustRaptor/examples/mods/iron_coast_mission_1/scripts/mission.rhai
T

49 lines
2.1 KiB
Plaintext

fn on_mission_start(event, state, random) {
#{commands:[
#{op:"give_item", item:"pulse_cannon:equipment", count:1},
#{op:"give_item", item:"iron_coast_mission_1:repair", count:3},
#{op:"objective", key:"iron_coast_mission_1:phase", value:1},
#{op:"objective", key:"iron_coast_mission_1:turrets_required", value:2},
#{op:"objective", key:"iron_coast_mission_1:complete", value:0},
#{op:"play_sound", sound:"iron_coast_mission_1:approach"}
],state:#{dock_alarm:false,boss_alarm:false,complete:false}}
}
fn on_tick(event, state, random) {
let commands=[];
if event.tick>=280 && !state.dock_alarm {
state.dock_alarm=true;
commands.push(#{op:"objective",key:"iron_coast_mission_1:phase",value:2});
commands.push(#{op:"play_sound",sound:"iron_coast_mission_1:dock_alarm"});
}
if event.tick>=720 && !state.boss_alarm {
state.boss_alarm=true;
commands.push(#{op:"objective",key:"iron_coast_mission_1:phase",value:3});
commands.push(#{op:"play_sound",sound:"iron_coast_mission_1:boss_alarm"});
}
let turrets=0;
if event.objectives.contains("iron_coast_turret:defeated") {
turrets=event.objectives["iron_coast_turret:defeated"];
}
let boss=0;
if event.objectives.contains("iron_coast_boss:defeated") {
boss=event.objectives["iron_coast_boss:defeated"];
}
// Surviving turrets must be disabled even if the command ship died first.
if turrets>=2 && boss>=1 && !state.complete {
state.complete=true;
commands.push(#{op:"objective",key:"iron_coast_mission_1:phase",value:4});
commands.push(#{op:"objective",key:"iron_coast_mission_1:complete",value:1});
commands.push(#{op:"credits",amount:5000});
commands.push(#{op:"play_sound",sound:"iron_coast_mission_1:victory"});
commands.push(#{op:"complete"});
}
#{commands:commands,state:state}
}
fn on_mission_end(event,state,random) {
let value=0;
if event.success {value=1;}
#{commands:[#{op:"objective",key:"iron_coast_mission_1:debrief",value:value}],state:state}
}