Skip to content
Draft
Show file tree
Hide file tree
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
6 changes: 6 additions & 0 deletions objects/obj_pnunit/Alarm_0.gml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,12 @@ try {
}
}

// Speed Force sweeps the whole field - bypass normal targeting/range.
if (wep[i] == "Speed Force" || wep[i] == "Speed Force (Ranged)") {
scr_shoot_spread(i);
continue;
}

if ((range[i] >= dist) && (ammo[i] != 0 || range[i] == 1)) {
if ((range[i] != 1) && (engaged == 0)) {
range_shoot = "ranged";
Expand Down
46 changes: 4 additions & 42 deletions scripts/scr_clean/scr_clean.gml
Original file line number Diff line number Diff line change
Expand Up @@ -191,26 +191,7 @@ function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_dam
}

/// @self Asset.GMObject.obj_pnunit
function damage_infantry(_damage_data, _shots, _damage, _hostile_armour_pierce) {
var _armour_mod = 0;
switch (_hostile_armour_pierce) {
case 4:
_armour_mod = 0;
break;
case 3:
_armour_mod = 1.5;
break;
case 2:
_armour_mod = 2;
break;
case 1:
_armour_mod = 3;
break;
default:
_armour_mod = 3;
break;
}

function damage_infantry(_damage_data, _shots, _damage, _armour_pierce) {
// Find valid infantry targets
var valid_marines = [];
for (var m = 0, l = array_length(unit_struct); m < l; m++) {
Expand All @@ -236,7 +217,7 @@ function damage_infantry(_damage_data, _shots, _damage, _hostile_armour_pierce)
// Apply damage
var _shot_luck = roll_dice_chapter(1, 100, "low");
var _modified_damage = 0;
var _marine_armour = marine_ac[marine_index] * _armour_mod;
var _marine_armour = combat_rank_armour(marine_ac[marine_index], _armour_pierce, false);
if (_shot_luck == 1) {
_modified_damage = _damage - (2 * _marine_armour);
} else if (_shot_luck == 100) {
Expand Down Expand Up @@ -293,26 +274,7 @@ function damage_infantry(_damage_data, _shots, _damage, _hostile_armour_pierce)
}

/// @self Asset.GMObject.obj_pnunit
function damage_vehicles(_damage_data, _shots, _damage, _hostile_armour_pierce) {
var _armour_mod = 0;
switch (_hostile_armour_pierce) {
case 4:
_armour_mod = 0;
break;
case 3:
_armour_mod = 2;
break;
case 2:
_armour_mod = 4;
break;
case 1:
_armour_mod = 6;
break;
default:
_armour_mod = 6;
break;
}

function damage_vehicles(_damage_data, _shots, _damage, _armour_pierce) {
var veh_index = -1;

// Find valid vehicle targets
Expand All @@ -335,7 +297,7 @@ function damage_vehicles(_damage_data, _shots, _damage, _hostile_armour_pierce)
veh_index = array_random_element(valid_vehicles);

// Apply damage
var _modified_damage = _damage - veh_ac[veh_index] * _armour_mod;
var _modified_damage = _damage - combat_rank_armour(veh_ac[veh_index], _armour_pierce, false);
if (_modified_damage < 0) {
_modified_damage = 0;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,16 @@ function scr_player_combat_weapon_stacks() {
}
}
}
if (is_struct(mobi_item) && mobi_item.has_tag("bike")) {
var _speed_force = unit.speed_force(mobi_item.has_tag("sf_ranged"));
Comment thread
EttyKitty marked this conversation as resolved.
var stack_index = find_stack_index(_speed_force.name, head_role, unit);
if (stack_index > -1) {
add_data_to_stack(stack_index, _speed_force, false, head_role, unit);
if (head_role) {
player_head_role_stack(stack_index, unit);
}
}
}

if (is_struct(mobi_item)) {
add_second_profiles_to_stack(mobi_item);
Expand Down
Loading
Loading