@@ -119,7 +119,9 @@ __b__ = action_if_number(obj_popup, 0, 0);
119119
120120
121121
122- if (tip!=" " ){ // Fight fight fight, ground
122+ if (tip!=" " ){
123+ var _loc = battle_location[current_battle]
124+ var _planet = battle_world[current_battle] // Fight fight fight, ground
123125 obj_controller.cooldown =8 ;
124126
125127 // Start battle here
@@ -130,27 +132,40 @@ __b__ = action_if_number(obj_popup, 0, 0);
130132 instance_activate_object (obj_controller);
131133 instance_activate_object (obj_ini);
132134 instance_activate_object (battle_object[current_battle]);
133-
135+
136+ var _battle_obj = battle_object[current_battle];
137+
134138 instance_create (0 ,0 ,obj_ncombat);
135139 obj_ncombat.enemy =battle_opponent[current_battle];
136- obj_ncombat.battle_object =battle_object[current_battle];
137- obj_ncombat.battle_loc =battle_location[current_battle];
138- obj_ncombat.battle_id =battle_world[current_battle];
139-
140- if (tip=" offensive" ) then obj_ncombat.formation_set =1 ;
141- if (tip=" defensive" ) then obj_ncombat.formation_set =2 ;
142-
143-
144- var yeah;yeah=false ;
145- if (battle_object[current_battle].p_owner [battle_world[current_battle]]=1 ) then yeah=true ;
146- if (battle_object[current_battle].p_owner [battle_world[current_battle]]=7 ) then yeah=true ;
147- if (battle_object[current_battle].p_owner [battle_world[current_battle]]=9 ) then yeah=true ;
148- if (obj_controller.faction_status [battle_object[current_battle].p_owner [battle_world[current_battle]]]!=" War" ) then yeah=true ;
149- if (yeah=true ) then obj_ncombat.fortified =battle_object[current_battle].p_fortified [battle_world[current_battle]];
150- if (obj_ncombat.enemy =13 ) then obj_ncombat.fortified =0 ;
140+ obj_ncombat.battle_object =_battle_obj;
141+ obj_ncombat.battle_loc =_loc;
142+ obj_ncombat.battle_id =_planet;
143+
144+ var _enemy = obj_ncombat.enemy ;
145+
146+ var _planet_data = new PlanetData (_planet, _battle_obj);
147+ if (tip=" offensive" ){
148+ obj_ncombat.formation_set =1 ;
149+ } else if (tip=" defensive" ){
150+ obj_ncombat.formation_set =2 ;
151+ }
152+
153+
154+ var _allow_fortifications=false ;
155+ var _fort_factions = [eFACTION.Player , eFACTION.Tyranids ,eFACTION.Ork ];
156+ _allow_fortifications = (array_contains (_fort_factions, _planet_data.current_owner ))
157+
158+ if (!_allow_fortifications){
159+ var owner_fac_status
160+ _allow_fortifications = (_planet_data.owner_status () != " War" );
161+ }
162+
163+ if (_allow_fortifications) then obj_ncombat.fortified =_planet_data.fortification_level ;
164+
165+ if (obj_ncombat.enemy ==13 ) then obj_ncombat.fortified =0 ;
151166
152167 obj_ncombat.battle_special =battle_special[current_battle];
153- obj_ncombat.battle_climate =battle_object[current_battle]. p_type [battle_world[current_battle]] ;
168+ obj_ncombat.battle_climate =_planet_data. planet_type ;
154169
155170 // show_message(string(battle_object[current_battle].p_feature[battle_world[current_battle]]));
156171 /* if (scr_planetary_feature.plant_feature_bool(battle_object[current_battle].p_feature[battle_world[current_battle]], P_features.Monastery)==1){
@@ -160,20 +175,29 @@ __b__ = action_if_number(obj_popup, 0, 0);
160175 obj_ncombat.player_silos+=battle_object[current_battle].p_silo[battle_world[current_battle]];
161176 }*/
162177
163- if (obj_ncombat.enemy = eFACTION.Imperium ){obj_ncombat.threat =min (1000000 ,battle_object[current_battle].p_guardsmen [battle_world[current_battle]]);}
164- if (obj_ncombat.enemy = eFACTION.Eldar ) then obj_ncombat.threat =battle_object[current_battle].p_eldar [battle_world[current_battle]];
165- if (obj_ncombat.enemy = eFACTION.Ork ) then obj_ncombat.threat =battle_object[current_battle].p_orks [battle_world[current_battle]];
166- if (obj_ncombat.enemy = eFACTION.Tau ) then obj_ncombat.threat =battle_object[current_battle].p_tau [battle_world[current_battle]];
167- if (obj_ncombat.enemy = eFACTION.Tyranids ) then obj_ncombat.threat =battle_object[current_battle].p_tyranids [battle_world[current_battle]];
168- if (obj_ncombat.enemy = eFACTION.Chaos ) then obj_ncombat.threat =battle_object[current_battle].p_traitors [battle_world[current_battle]];
169- if (obj_ncombat.enemy = eFACTION.Heretics ) then obj_ncombat.threat =battle_object[current_battle].p_chaos [battle_world[current_battle]];
170- if (obj_ncombat.enemy = eFACTION.Necrons ) then obj_ncombat.threat =battle_object[current_battle].p_necrons [battle_world[current_battle]];
171- if (obj_ncombat.enemy =30 ) then obj_ncombat.threat =1 ;
172-
173- //
174-
175- scr_battle_roster (string (battle_location[current_battle]),battle_world[current_battle],true );
176-
178+ if (_enemy == eFACTION.Imperium ){
179+ obj_ncombat.threat =min (1000000 ,_planet_data.guardsmen );
180+ } else if (obj_ncombat.enemy <14 && _enemy>5 ){
181+ obj_ncombat.threat = _planet_data.planet_forces [_enemy];
182+ }
183+ else if (_enemy=30 ){
184+ obj_ncombat.threat =1 ;
185+ }
186+
187+ //
188+ _roster = new Roster ();
189+ with (_roster){
190+ roster_location = _loc;
191+ roster_planet = _planet;
192+ determine_full_roster ();
193+ only_locals ();
194+ update_roster ();
195+ if (array_length (selected_units)){
196+ setup_battle_formations ();
197+ add_to_battle ();
198+ }
199+ }
200+ delete _roster
177201 instance_deactivate_object (battle_object[current_battle]);
178202 }
179203 }
0 commit comments