Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 116 additions & 52 deletions scripts/scr_destroy_planet/scr_destroy_planet.gml
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ function scr_destroy_planet(destruction_method) {
}

instance_activate_object(obj_star);
var you;you=battle_object;
pip.text+=you.name +scr_roman(obj_controller.obj_ncombat.battle_id);
var you=battle_object;
pip.text+= planet_numeral_name(obj_ncombat.battle_id,battle_object);

baid=obj_ncombat.battle_id;
scr_add_item("Exterminatus",-1);
Expand All @@ -47,15 +47,15 @@ function scr_destroy_planet(destruction_method) {


// No survivors!
var cah=-1,ed=0,unit;
repeat(11){
cah+=1;
ed=0;

repeat(500){ed+=1;
var unit;
for (var cah=0;cah<=obj_ini.companies;cah++){
for (var ed=0;ed<array_length(obj_ini.role[cah]);ed++){
unit = fetch_unit([cah,ed])
if (obj_ini.loc[cah,ed]=you.name) and (unit.planet_location=baid){
if (obj_ini.role[cah,ed]="Chapter Master"){obj_controller.alarm[7]=15;if (global.defeat<=1) then global.defeat=1;}
if (obj_ini.role[cah,ed]="Chapter Master"){
obj_controller.alarm[7]=15;
if (global.defeat<=1) then global.defeat=1;
}

if (obj_ini.race[cah,ed]=1){

Expand All @@ -71,10 +71,7 @@ function scr_destroy_planet(destruction_method) {
}
if (ed<200){
if (obj_ini.veh_loc[cah,ed]=you.name) and (obj_ini.veh_wid[cah,ed]=baid){
obj_ini.veh_race[cah,ed]=0;
obj_ini.veh_loc[cah,ed]="";
obj_ini.veh_role[cah,ed]="";
obj_ini.veh_hp[cah,ed]=0;
reset_vehicle_variable_arrays(cah,ed);
}
}
}
Expand All @@ -85,84 +82,151 @@ function scr_destroy_planet(destruction_method) {
obj_controller.disposition[4]+=5;

obj_controller.disposition[5]+=5;
var o;o=0;
var o=0;
if (scr_has_adv("Reverent Guardians")) then o=500;
if (o>100) then obj_controller.disposition[5]+=5;

if (obj_controller.blood_debt=1){obj_controller.penitent_current+=1500;obj_controller.penitent_turn=0;obj_controller.penitent_turnly=0;}
if (obj_controller.blood_debt=1){
obj_controller.penitent_current+=1500;
obj_controller.penitent_turn=0;
obj_controller.penitent_turnly=0;}
}

//TODO a shitload of helper functions to make this sort of stuff easier
if ((you.p_owner[baid]=3) or (you.p_first[baid]=3)) and (obj_controller.faction_status[eFACTION.Mechanicus]!="War"){
obj_controller.loyalty-=50;obj_controller.loyalty_hidden-=50;
obj_controller.disposition[2]-=50;obj_controller.disposition[3]-=80;
obj_controller.disposition[4]-=40;obj_controller.disposition[5]-=30;
obj_controller.loyalty-=50;
obj_controller.loyalty_hidden-=50;
obj_controller.disposition[eFACTION.Imperium]-=50;
obj_controller.disposition[3]-=80;
obj_controller.disposition[4]-=40;
obj_controller.disposition[5]-=30;

obj_controller.faction_status[eFACTION.Imperium]="War";obj_controller.faction_status[eFACTION.Mechanicus]="War";
obj_controller.faction_status[eFACTION.Inquisition]="War";obj_controller.faction_status[eFACTION.Ecclesiarchy]="War";
obj_controller.faction_status[eFACTION.Imperium]="War";
obj_controller.faction_status[eFACTION.Mechanicus]="War";
obj_controller.faction_status[eFACTION.Inquisition]="War";
obj_controller.faction_status[eFACTION.Ecclesiarchy]="War";

obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=3;obj_controller.audien_topic[obj_controller.audiences]="declare_war";
obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=2;obj_controller.audien_topic[obj_controller.audiences]="declare_war";
if (obj_controller.known[eFACTION.Inquisition]>1){obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=4;obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
if (obj_controller.known[eFACTION.Ecclesiarchy]>1){obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=5;obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=3;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=2;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";
if (obj_controller.known[eFACTION.Inquisition]>1){
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=4;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
if (obj_controller.known[eFACTION.Ecclesiarchy]>1){
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=5;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";}

if (planet_feature_bool(you.p_feature[baid], P_features.Sororitas_Cathedral)==1){
obj_controller.disposition[5]-=30;
if (obj_controller.known[eFACTION.Mechanicus]>1){obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=3;obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
if (obj_controller.known[eFACTION.Mechanicus]>1){
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=3;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
}

}
if (enemy9=5) and (obj_controller.faction_status[eFACTION.Ecclesiarchy]!="War"){
obj_controller.loyalty-=50;obj_controller.loyalty_hidden-=50;
obj_controller.disposition[2]-=50;obj_controller.disposition[3]-=80;
obj_controller.disposition[4]-=40;obj_controller.disposition[5]-=30;
obj_controller.loyalty-=50;
obj_controller.loyalty_hidden-=50;
obj_controller.disposition[eFACTION.Imperium]-=50;
obj_controller.disposition[3]-=80;
obj_controller.disposition[4]-=40;
obj_controller.disposition[5]-=30;

obj_controller.faction_status[eFACTION.Imperium]="War";obj_controller.faction_status[eFACTION.Mechanicus]="War";
obj_controller.faction_status[eFACTION.Inquisition]="War";obj_controller.faction_status[eFACTION.Ecclesiarchy]="War";
obj_controller.faction_status[eFACTION.Imperium]="War";
obj_controller.faction_status[eFACTION.Mechanicus]="War";
obj_controller.faction_status[eFACTION.Inquisition]="War";
obj_controller.faction_status[eFACTION.Ecclesiarchy]="War";

obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=5;obj_controller.audien_topic[obj_controller.audiences]="declare_war";
if (obj_controller.known[eFACTION.Inquisition]>1){obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=4;obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=2;obj_controller.audien_topic[obj_controller.audiences]="declare_war";
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=5;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";
if (obj_controller.known[eFACTION.Inquisition]>1){
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=4;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=2;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";
}



if (you.p_tyranids[baid]<5){
if (you.p_first[baid]=2) and (you.p_type[baid]="Hive") and (planet_feature_bool(you.p_feature[baid], P_features.Daemonic_Incursion)==0) and (obj_controller.faction_status[eFACTION.Imperium]!="War"){
obj_controller.loyalty-=50;obj_controller.loyalty_hidden-=50;
obj_controller.disposition[2]-=60;obj_controller.disposition[3]-=30;
obj_controller.disposition[4]-=40;obj_controller.disposition[5]-=40;
obj_controller.loyalty-=50;
obj_controller.loyalty_hidden-=50;
obj_controller.disposition[eFACTION.Imperium]-=60;
obj_controller.disposition[3]-=30;
obj_controller.disposition[4]-=40;
obj_controller.disposition[5]-=40;

obj_controller.faction_status[eFACTION.Imperium]="War";obj_controller.faction_status[eFACTION.Mechanicus]="War";
obj_controller.faction_status[eFACTION.Inquisition]="War";obj_controller.faction_status[eFACTION.Ecclesiarchy]="War";
obj_controller.faction_status[eFACTION.Imperium]="War";
obj_controller.faction_status[eFACTION.Mechanicus]="War";
obj_controller.faction_status[eFACTION.Inquisition]="War";
obj_controller.faction_status[eFACTION.Ecclesiarchy]="War";

obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=2;obj_controller.audien_topic[obj_controller.audiences]="declare_war";
if (obj_controller.known[eFACTION.Inquisition]>1){obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=4;obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
if (obj_controller.known[eFACTION.Ecclesiarchy]>1){obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=5;obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
if (obj_controller.known[eFACTION.Mechanicus]>1){obj_controller.audiences+=1;obj_controller.audien[obj_controller.audiences]=3;obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=2;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";
if (obj_controller.known[eFACTION.Inquisition]>1){
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=4;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
if (obj_controller.known[eFACTION.Ecclesiarchy]>1){
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=5;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";}
if (obj_controller.known[eFACTION.Mechanicus]>1){
obj_controller.audiences+=1;
obj_controller.audien[obj_controller.audiences]=3;
obj_controller.audien_topic[obj_controller.audiences]="declare_war";}

if (planet_feature_bool(you.p_feature[baid], P_features.Sororitas_Cathedral)==1) then obj_controller.disposition[5]-=30;
}
if (you.p_owner[baid]=2) and ((you.p_type[baid]="Temperate") or (you.p_type[baid]="Temperate")) and (planet_feature_bool(you.p_feature[baid], P_features.Daemonic_Incursion)==0){
obj_controller.loyalty-=30;obj_controller.loyalty_hidden-=30;
obj_controller.disposition[2]-=30;obj_controller.disposition[3]-=15;
obj_controller.disposition[4]-=30;obj_controller.disposition[5]-=30;
obj_controller.loyalty-=30;
obj_controller.loyalty_hidden-=30;
obj_controller.disposition[eFACTION.Imperium]-=30;
obj_controller.disposition[3]-=15;
obj_controller.disposition[4]-=30;
obj_controller.disposition[5]-=30;
}
}

// Planet changes here
//TODO make a plane_reset function
with(you){
p_type[baid]="Dead";p_feature[baid]=[];p_owner[baid]=0;
p_first[baid]=0;p_population[baid]=0;p_max_population[baid]=0;
p_large[baid]=0;p_pop[baid]="";p_guardsmen[baid]=0;
p_pdf[baid]=0;p_fortified[baid]=0;p_station[baid]=0;
p_type[baid]="Dead";
p_feature[baid]=[];
p_owner[baid]=0;
p_first[baid]=0;
p_population[baid]=0;
p_max_population[baid]=0;
p_large[baid]=0;
p_pop[baid]="";
p_guardsmen[baid]=0;
p_pdf[baid]=0;
p_fortified[baid]=0;
p_station[baid]=0;
// Whether or not player forces are on the planet

p_player[baid]=0;

// v how much of a problem they are from 1-5
p_orks[baid]=0;p_tau[baid]=0;p_eldar[baid]=0;
p_tyranids[baid]=0;p_traitors[baid]=0;p_chaos[baid]=0;
p_demons[baid]=0;p_sisters[baid]=0;p_necrons[baid]=0;
p_orks[baid]=0;
p_tau[baid]=0;
p_eldar[baid]=0;
p_tyranids[baid]=0;p_traitors[baid]=0;
p_chaos[baid]=0;
p_demons[baid]=0;
p_sisters[baid]=0;
p_necrons[baid]=0;
//
p_problem[baid]=array_create(8, "");
p_timer[baid]=array_create(8, 0);
Expand Down