From de18d08fe2549c77a115bb730231a8442e44e896 Mon Sep 17 00:00:00 2001 From: Da Fist <144086663+KRdaMystic@users.noreply.github.com> Date: Thu, 16 Jan 2025 06:51:40 +0900 Subject: [PATCH 01/47] feat: Combat overhaul Pt 1 (#352) --- objects/obj_p_assra/Step_0.gml | 174 ++-- .../scr_equipment_struct.gml | 12 +- .../scr_marine_struct/scr_marine_struct.gml | 85 +- scripts/scr_shoot/scr_shoot.gml | 20 +- scripts/scr_weapon/scr_weapon.gml | 853 ++++++++++-------- 5 files changed, 631 insertions(+), 513 deletions(-) diff --git a/objects/obj_p_assra/Step_0.gml b/objects/obj_p_assra/Step_0.gml index cf0fe5a32b..87248869e1 100644 --- a/objects/obj_p_assra/Step_0.gml +++ b/objects/obj_p_assra/Step_0.gml @@ -67,8 +67,8 @@ if (boarding=true) and (board_cooldown>=0) and (instance_exists(target)) and (in board_cooldown-=1; if (board_cooldown=0){board_cooldown=60; - var o,challenge,difficulty,roll1,roll2,attack,arp,wep,ac,dr,co,i,hits,hurt,damaged_ship; - o=firstest-1;difficulty=50;challenge=0;roll1=0;roll2=0;attack=0;arp=0;wep="";hits=0;hurt=0;damaged_ship=0; + var o,challenge,boarding_odds,boarding_difficulty,boarding_advantage,boarding_disadvantage,gear_bonus,marine_bonus,outcome_roll,damage_roll,attack,arp,wep,ac,dr,co,i,hits,hurt,damaged_ship,bridge_damage; + o=firstest-1;boarding_odds=0;challenge=0;outcome_roll=0;damage_roll=0;attack=0;arp=0;wep="";hits=0;hurt=0;damaged_ship=0;bridge_damage=1; co=0;i=0;ac=0;dr=1; for (var o=0;o=0) and (instance_exists(target)) and (in co=origin.board_co[o]; i=origin.board_id[o]; - difficulty=50; ac=0; dr=1; unit=fetch_unit([co,i]); + gear_bonus=0; + marine_bonus=0; + boarding_odds=50; + boarding_advantage=0; + boarding_disadvantage=0; if (unit.hp()>0){ // Bonuses - difficulty+=unit.experience/20; - difficulty+=(1-(target.hp/target.maxhp))*33; - //TODO define tag for bording weapons - if (array_contains(["Chainfist","Meltagun","Lascutter","Boarding Shield"], unit.weapon_one())) then difficulty+=3; - if (array_contains(["Chainfist","Meltagun","Lascutter","Boarding Shield"], unit.weapon_two())) then difficulty+=3; + marine_bonus+=unit.experience/20; + marine_bonus+=(1-(target.hp/target.maxhp))*33; // if wounded marine will perform worse - if (scr_has_adv("Boarders")) then difficulty+=7; - if (scr_has_adv("Assault Doctrine")) then difficulty+=3; - if (scr_has_adv("Lightning Warriors")) then difficulty+=3; + var _weapons = [unit.get_weapon_one_data(), unit.get_weapon_two_data()]; + if (_weapons[0] == "" && _weapons[1] == "") { + gear_bonus -= 10; + } else { + for (var i = 0; i <= 1; i++) { + var _weapon = _weapons[i]; + if (!is_struct(_weapon)) then break + + if (_weapon.has_tag("boarding 1")) { + gear_bonus += 2; + bridge_damage = max(bridge_damage, 3); + } else if (_weapon.has_tag("boarding 2")) { + gear_bonus += 4; + bridge_damage = max(bridge_damage, 5); + } else if (_weapon.has_tag("boarding 3")) { + gear_bonus += 6; + bridge_damage = max(bridge_damage, 7); + } + } + } + if (scr_has_adv("Boarders")) then marine_bonus+=7; + if (scr_has_adv("Assault Doctrine")) then marine_bonus+=3; + if (scr_has_adv("Lightning Warriors")) then marine_bonus+=3; + + boarding_advantage+=(gear_bonus+marine_bonus) // Penalties - if (unit.weapon_one()=="")then difficulty-=10; - if (unit.weapon_two()=="")then difficulty-=10; if (unit.base_group == "astartes"){ - if (unit.gene_seed_mutations.occulobe==1) then difficulty-=5; + if (unit.gene_seed_mutations.occulobe==1) then boarding_disadvantage-=5; } - if (target.owner = eFACTION.Imperium) or ((target.owner = eFACTION.Chaos) and (obj_fleet.csm_exp=0)) then difficulty-=0;// Cultists/Pirates/Humans - if (target.owner = eFACTION.Player) or (target.owner = eFACTION.Ecclesiarchy) or (target.owner = eFACTION.Ork) or (target.owner = eFACTION.Eldar) or (target.owner = eFACTION.Necrons) then difficulty-=10; - if (target.owner = eFACTION.Chaos) and (obj_fleet.csm_exp=1) then difficulty-=20;// Veteran marines - if ((target.owner = eFACTION.Chaos) and (obj_fleet.csm_exp=2)) or (target.owner = eFACTION.Tyranids) then difficulty-=30;// Daemons, veteran CSM, tyranids - - roll1=floor(random(100))+1; + if (target.owner = eFACTION.Imperium) or ((target.owner = eFACTION.Chaos) and (obj_fleet.csm_exp=0)) then boarding_disadvantage-=0;// Cultists/Pirates/Humans + if (target.owner = eFACTION.Player) or (target.owner = eFACTION.Ecclesiarchy) or (target.owner = eFACTION.Ork) or (target.owner = eFACTION.Eldar) or (target.owner = eFACTION.Necrons) then boarding_disadvantage-=10; + if (target.owner = eFACTION.Chaos) and (obj_fleet.csm_exp=1) then boarding_disadvantage-=20;// Veteran marines + if ((target.owner = eFACTION.Chaos) and (obj_fleet.csm_exp=2)) or (target.owner = eFACTION.Tyranids) then boarding_disadvantage-=30;// Daemons, veteran CSM, tyranids + + boarding_odds+=boarding_advantage+boarding_disadvantage; + boarding_odds=clamp(boarding_odds,0,100); + outcome_roll=floor(random(100))+1; - if (roll1<=difficulty){// Success + if (outcome_roll<=boarding_odds){// Success if (damage=true) and (steal=false){// Damaging var to_bomb;to_bomb=false; if (plasma_bomb=true) and (obj_ini.gear[co][i]="Plasma Bomb") then to_bomb=true; @@ -124,39 +147,12 @@ if (boarding=true) and (board_cooldown>=0) and (instance_exists(target)) and (in obj_ini.gear[co][i]=""; } } + if (steal=true) and (damage=false){// Stealing - var bridge_damage=0; damaged_ship=max(1,damaged_ship); - - var we,whi,we1,we2;we=""; - we1=unit.weapon_one(); - we2=unit.weapon_two(); - whi=0; - - bridge_damage=3; - //TODO tagging system to slove this - we="Heavy Thunder Hammer"; - if (we1=we) or (we2=we) then bridge_damage=max(bridge_damage,8); - we="Eviscerator"; - if (we1=we) or (we2=we) then bridge_damage=max(bridge_damage,7); - we="Chainfist"; - if (we1=we) or (we2=we) then bridge_damage=max(bridge_damage,7); - we="Lascutter"; - if (we1=we) or (we2=we) then bridge_damage=max(bridge_damage,7); - we="Meltagun"; - if (we1=we) or (we2=we) then bridge_damage=max(bridge_damage,7); - we="Power Fist"; - if (we1=we) or (we2=we) then bridge_damage=max(bridge_damage,6); - we="Thunder Hammer"; - if (we1=we) or (we2=we) then bridge_damage=max(bridge_damage,6); - we="Plasma Gun"; - if (we1=we) or (we2=we) then bridge_damage=max(bridge_damage,5); - we="Relic Blade"; - if (we1=we) or (we2=we) then bridge_damage=max(bridge_damage,4); - if (string_pos("&",string(obj_ini.wep1[co][i])+string(obj_ini.wep2[co][i]))>0) then bridge_damage=9; - target.bridge-=bridge_damage; } + if ((target.hp<=0) or (target.bridge<=0)){ var husk=instance_create(target.x,target.y,obj_en_husk); @@ -196,67 +192,67 @@ if (boarding=true) and (board_cooldown>=0) and (instance_exists(target)) and (in } - if (roll1>difficulty){// FAILURE + if (outcome_roll>boarding_odds){// FAILURE ac=unit.armour_calc() dr = unit.damage_resistance()/100 - roll2=floor(random(100))+1; + damage_roll=floor(random(100))+1; //TODO streamline enemy weapons if (target.owner = eFACTION.Imperium) or (target.owner = eFACTION.Chaos) or (target.owner = eFACTION.Ecclesiarchy){ // Make worse for CSM wep="Lasgun"; hits=1; - if (roll2<=90) then hits=2; - if (roll2<=75) then hits=3; - if (roll2<=50){wep="Bolt Pistol";hits=1;} - if (roll2<=40){wep="Bolter";hits=1;} - if (roll2<=30){wep="Bolter";hits=2;} - if (roll2<=20){wep="Heavy Bolter";hits=1;} - if (roll2<=10){wep="Plasma Pistol";hits=1;} - if (roll2<=5){wep="Meltagun";hits=1;} + if (damage_roll<=90) then hits=2; + if (damage_roll<=75) then hits=3; + if (damage_roll<=50){wep="Bolt Pistol";hits=1;} + if (damage_roll<=40){wep="Bolter";hits=1;} + if (damage_roll<=30){wep="Bolter";hits=2;} + if (damage_roll<=20){wep="Heavy Bolter";hits=1;} + if (damage_roll<=10){wep="Plasma Pistol";hits=1;} + if (damage_roll<=5){wep="Meltagun";hits=1;} } if (target.owner = eFACTION.Eldar){ wep="Shuriken Pistol";hits=1; - if (roll2<=90) then hits=2; - if (roll2<=75) then hits=3; - if (roll2<=60){wep="Shuriken Catapult";hits=2;} - if (roll2<=50){wep="Shuriken Catapult";hits=3;} - if (roll2<=40){wep="Shuriken Catapult";hits=4;} - if (roll2<=30){wep="Wraith Cannon";hits=1;} - if (roll2<=20){wep="Singing Spear";hits=1;} - if (roll2<=10){wep="Meltagun";hits=1;} + if (damage_roll<=90) then hits=2; + if (damage_roll<=75) then hits=3; + if (damage_roll<=60){wep="Shuriken Catapult";hits=2;} + if (damage_roll<=50){wep="Shuriken Catapult";hits=3;} + if (damage_roll<=40){wep="Shuriken Catapult";hits=4;} + if (damage_roll<=30){wep="Wraith Cannon";hits=1;} + if (damage_roll<=20){wep="Singing Spear";hits=1;} + if (damage_roll<=10){wep="Meltagun";hits=1;} } if (target.owner = eFACTION.Ork){ wep="Shoota";hits=1; - if (roll2<=90) then hits=2; - if (roll2<=75) then hits=3; - if (roll2<=60) then hits=4; - if (roll2<=50){wep="Dakkagun";hits=1;} - if (roll2<=40){wep="Big Shoota";hits=1;} - if (roll2<=30){wep="Big Shoota";hits=2;} - if (roll2<=15){wep="Rokkit";hits=1;} + if (damage_roll<=90) then hits=2; + if (damage_roll<=75) then hits=3; + if (damage_roll<=60) then hits=4; + if (damage_roll<=50){wep="Dakkagun";hits=1;} + if (damage_roll<=40){wep="Big Shoota";hits=1;} + if (damage_roll<=30){wep="Big Shoota";hits=2;} + if (damage_roll<=15){wep="Rokkit";hits=1;} } if (target.owner = eFACTION.Tau){ wep="Pulse Rifle";hits=1; - if (roll2<=80) then hits=2; - if (roll2<=65) then hits=3; - if (roll2<=50) then hits=4; - if (roll2<=40){wep="Missile Pod";hits=1;} - if (roll2<=30){wep="Burst Rifle";hits=1;} - if (roll2<=15){wep="Meltagun";hits=1;} + if (damage_roll<=80) then hits=2; + if (damage_roll<=65) then hits=3; + if (damage_roll<=50) then hits=4; + if (damage_roll<=40){wep="Missile Pod";hits=1;} + if (damage_roll<=30){wep="Burst Rifle";hits=1;} + if (damage_roll<=15){wep="Meltagun";hits=1;} } if (target.owner = eFACTION.Tyranids){ wep="Flesh Hooks";hits=1; - if (roll2<=90) then hits=2; - if (roll2<=75) then hits=3; - if (roll2<=60){wep="Devourer";hits=2;} - if (roll2<=50){wep="Devourer";hits=3;} - if (roll2<=40){wep="Devourer";hits=4;} - if (roll2<=30){wep="Venom Cannon";hits=1;} - if (roll2<=20){wep="Lictor Claws";hits=1;} - if (roll2<=10){wep="Zoanthrope Blast";hits=1;} + if (damage_roll<=90) then hits=2; + if (damage_roll<=75) then hits=3; + if (damage_roll<=60){wep="Devourer";hits=2;} + if (damage_roll<=50){wep="Devourer";hits=3;} + if (damage_roll<=40){wep="Devourer";hits=4;} + if (damage_roll<=30){wep="Venom Cannon";hits=1;} + if (damage_roll<=20){wep="Lictor Claws";hits=1;} + if (damage_roll<=10){wep="Zoanthrope Blast";hits=1;} } if (wep="Lasgun"){attack=25;arp=0;} diff --git a/scripts/scr_equipment_struct/scr_equipment_struct.gml b/scripts/scr_equipment_struct/scr_equipment_struct.gml index 72e92c728d..61f4a19bb3 100644 --- a/scripts/scr_equipment_struct/scr_equipment_struct.gml +++ b/scripts/scr_equipment_struct/scr_equipment_struct.gml @@ -173,11 +173,17 @@ function EquipmentStruct(item_data, core_type,quality="none") constructor{ array_push(special_properties_array, special_properties[k]); } } - if (arp>0){ - array_push(special_properties_array, "Armour Piercing") + if (arp=1){ + array_push(special_properties_array, "Anti Vehicle") } - else if (arp<0){ + else if (arp=0){ array_push(special_properties_array, "Low Penetration") + } + else if (arp=-1){ + array_push(special_properties_array, "Medium Penetration") + } + else if (arp=-2){ + array_push(special_properties_array, "High Penetration") } if (array_length(second_profiles)>0){ for (var h = 0; h < array_length(second_profiles); h++) { diff --git a/scripts/scr_marine_struct/scr_marine_struct.gml b/scripts/scr_marine_struct/scr_marine_struct.gml index eb488b38fc..7c7db6ca23 100644 --- a/scripts/scr_marine_struct/scr_marine_struct.gml +++ b/scripts/scr_marine_struct/scr_marine_struct.gml @@ -1406,16 +1406,19 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data={}) carry_string+=$"{mobility_item()}: {format_number_with_sign(mobility_carry)}#"; } return [melee_carrying,melee_hands_limit,carry_string] - } + } + static melee_attack = function(weapon_slot=0){ + var _format_sign = function(_num) { + _num = format_number_with_sign(round(_num)); + return _num; + } + encumbered_melee=false; - melee_att = 100*(((weapon_skill/100) * (strength/20)) + (experience/1000)+0.1); - var explanation_string = string_concat("#Stats: ", format_number_with_sign(round(((melee_att/100)-1)*100)), "%#"); - explanation_string += " Base: +10%#"; - explanation_string += string_concat(" WSxSTR: ", format_number_with_sign(round((((weapon_skill/100)*(strength/20))-1)*100)), "%#"); - explanation_string += string_concat(" EXP: ", format_number_with_sign(round((experience/1000)*100)), "%#"); + var _melee_mod = 1; + var explanation_string = ""; - melee_carrying = melee_hands_limit(); + var melee_carrying = melee_hands_limit(); var _wep1 = get_weapon_one_data(); var _wep2 = get_weapon_two_data(); if (!is_struct(_wep1)) then _wep1 = new EquipmentStruct({},""); @@ -1452,7 +1455,7 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data={}) secondary_weapon=highest; } else { primary_weapon=highest; - melee_att*=0.5; + _melee_mod += 0.5; if (primary_weapon.has_tag("flame")){ explanation_string+=$"Primary is Flame: -50%#" } else if primary_weapon.has_tag("pistol"){ @@ -1469,19 +1472,53 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data={}) primary_weapon=_wep2; } }; + var basic_wep_string = $"{primary_weapon.name}: {primary_weapon.attack}#"; + explanation_string = basic_wep_string + explanation_string; + + _melee_mod += (weapon_skill / 100) + (experience / 500); + explanation_string += $"#Stats:#"; + explanation_string += $" WS: {_format_sign((weapon_skill / 100) * 100)}%#"; + explanation_string += $" EXP: {_format_sign((experience / 500) * 100)}%#"; + + if (primary_weapon.has_tag("martial") || primary_weapon.has_tag("savage")) { + var bonus_modifier = 0; + var martial_bonus = 0; + var savage_bonus = 0; + + if (primary_weapon.has_tag("martial")) { + martial_bonus = dexterity / 100; + } + if (primary_weapon.has_tag("savage")) { + savage_bonus = strength / 100; + } + + bonus_modifier = martial_bonus + savage_bonus; + _melee_mod += bonus_modifier; + + if (martial_bonus != 0) { + explanation_string += $" DEX (Martial): {_format_sign(martial_bonus * 100)}%#"; + } + if (savage_bonus != 0) { + explanation_string += $" STR (Savage): {_format_sign(savage_bonus * 100)}%#"; + } + } else { + _melee_mod += (strength / 200) + (dexterity / 200); + explanation_string += $" STR: {_format_sign((strength / 200) * 100)}%#"; + explanation_string += $" DEX: {_format_sign((dexterity / 200) * 100)}%#"; + } + if IsSpecialist("libs") or has_trait("warp_touched"){ - if (primary_weapon.has_tag("force") ||_wep2.has_tag("force")){ - var force_modifier = (((weapon_skill/100) * (psionic/10) * (intelligence/10)) + (experience/1000)+0.1); - primary_weapon.attack *= force_modifier; - basic_wep_string += $"Active Force Weapon: x{force_modifier}# Base: 0.10# WSxPSIxINT: x{(weapon_skill/100)*(psionic/10)*(intelligence/10)}# EXP: x{experience/1000}#"; + if (primary_weapon.has_tag("force")){ + var force_modifier = (psionic * 3) * (intelligence/40); + _melee_mod += force_modifier / 100; + explanation_string += $" PSYxINT (Force): {_format_sign(force_modifier)}%#"; } - }; - explanation_string = basic_wep_string + explanation_string + } if (melee_carrying[0]>melee_carrying[1]){ encumbered_melee=true; - melee_att*=0.6; + _melee_mod*=0.6; explanation_string+=$"Encumbered: x0.6#" } if (!encumbered_melee){ @@ -1491,23 +1528,24 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data={}) total_gear_mod+=get_mobility_data("melee_mod"); total_gear_mod+=_wep1.melee_mod; total_gear_mod+=_wep2.melee_mod; - melee_att+=total_gear_mod; - explanation_string+=$"#Gear Mod: {(total_gear_mod/100)*100}%#"; + total_gear_mod/=100; + _melee_mod += total_gear_mod; + explanation_string+=$"#Gear Mod: {_format_sign(total_gear_mod * 100)}%#"; //TODO make trait data like this more structured to be able to be moddable if (has_trait("feet_floor") && mobility_item()!=""){ - melee_att*=0.9; + _melee_mod*=0.9; explanation_string+=$"{global.trait_list.feet_floor.display_name}: x0.9#"; } if (primary_weapon.has_tag("fist") && has_trait("brawler")){ - melee_att*=1.1; + _melee_mod*=1.1; explanation_string+=$"{global.trait_list.brawler.display_name}: x1.1#"; } if (primary_weapon.has_tag("power") && has_trait("duelist")){ - melee_att*=1.3; + _melee_mod*=1.3; explanation_string+=$"{global.trait_list.duelist.display_name}: x1.3#"; } } - var final_attack = floor((melee_att/100)*primary_weapon.attack); + var final_attack = floor((_melee_mod)*primary_weapon.attack); if (secondary_weapon!="none" && !encumbered_melee){ var side_arm_data="Standard: x0.5"; var secondary_modifier = 0.5; @@ -1525,12 +1563,13 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data={}) secondary_modifier = 0.3; side_arm_data="Flame: x0.3"; } - var side_arm = floor(secondary_modifier*((melee_att/100)*secondary_weapon.attack)); + var side_arm = floor(secondary_modifier*(_melee_mod*secondary_weapon.attack)); if (side_arm>0){ final_attack+=side_arm; - explanation_string+=$"Side Arm: +{side_arm}({side_arm_data})#"; + explanation_string+=$"Side Arm: +{side_arm} ({side_arm_data})#"; } } + melee_damage_data=[final_attack,explanation_string,melee_carrying,primary_weapon, secondary_weapon]; return melee_damage_data; }; diff --git a/scripts/scr_shoot/scr_shoot.gml b/scripts/scr_shoot/scr_shoot.gml index aebcff4458..49c90ac9cd 100644 --- a/scripts/scr_shoot/scr_shoot.gml +++ b/scripts/scr_shoot/scr_shoot.gml @@ -252,23 +252,28 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat if (weapon_index_position = -52) { wii = "Missile Launcher Emplacement"; at = 200; - armour_pierce = 1; + armour_pierce = -1; } if (weapon_index_position = -53) { wii = "Missile Silo"; at = 250; - ar = 0; + armour_pierce = 0; } } target_armour_value = target_object.dudes_ac[target_type]; + // Calculate final armor value based on armor piercing (AP) rating against target type if (target_object.dudes_vehicle[target_type]) { + if (armour_pierce = 1) then target_armour_value = 0; if (armour_pierce = 0) then target_armour_value = target_armour_value * 6; - if (armour_pierce = -1) then target_armour_value = damage_per_weapon; + if (armour_pierce = -1) then target_armour_value = target_armour_value * 4 ; + if (armour_pierce = -2) then target_armour_value = target_armour_value * 2; } else { if (armour_pierce = 1) then target_armour_value = 0; - if (armour_pierce = -1) then target_armour_value = target_armour_value * 6; + if (armour_pierce = 0) then target_armour_value = target_armour_value * 4; + if (armour_pierce = -1) then target_armour_value = target_armour_value * 3; + if (armour_pierce = -2) then target_armour_value = target_armour_value * 1.5; } attack_count_mod = max(1, splash[weapon_index_position]); @@ -358,11 +363,14 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat target_armour_value2 = target_object.dudes_ac[godd]; if (target_object.dudes_vehicle[godd] = 0) { if (ap2 = 1) then target_armour_value2 = 0; - if (ap2 = -1) then target_armour_value2 = target_armour_value2 * 6; + if (ap2 = 0) then target_armour_value2 = target_armour_value2 * 4; + if (ap2 = -1) then target_armour_value2 = target_armour_value2 * 3; + if (ap2 = -2) then target_armour_value2 = target_armour_value2 * 1.5; } if (target_object.dudes_vehicle[godd] = 1) { if (ap2 = 0) then target_armour_value2 = target_armour_value2 * 6; - if (ap2 = -1) then target_armour_value2 = damage_per_weapon; + if (ap2 = -1) then target_armour_value2 = target_armour_value2 * 4; + if (ap2 = -2) then target_armour_value2 = target_armour_value2 * 2; } b2 = a2 - target_armour_value2; if (b2 <= 0) then b2 = 0; // Average after armour diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 2f5a9b534c..2be38fdafb 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -48,17 +48,19 @@ global.weapons = { "melee_hands": 0, "ranged_hands": 0.5, "ammo": 30, - "range": 3.1, - "spli": 1, + + "range": 4.1, + "spli": 0, "arp": 0, "tags": ["pistol", "ancient", "las", "energy"], }, + "Combat Knife": { "abbreviation": "CbKnf", "attack": { - "standard": 25, - "master_crafted": 30, - "artifact": 35 + "standard": 50, + "master_crafted": 75, + "artifact": 100 }, "description": "More of a sword than a knife, this tough and thick blade becomes a deadly weapon in the hand of an Astartes.", "melee_hands": 0, @@ -72,9 +74,9 @@ global.weapons = { "Chainsword": { "abbreviation": "ChSwrd", "attack": { - "standard": 50, - "master_crafted": 60, - "artifact": 70 + "standard": 130, + "master_crafted": 150, + "artifact": 200 }, "description": "A standard Chainsword. It is popular among Assault Marines due to their raw power while maintaining speed.", "melee_hands": 1, @@ -83,14 +85,14 @@ global.weapons = { "range": 1, "spli": 4, "arp": 0, - "tags": ["chain", "sword"], + "tags": ["chain", "sword","savage", "boarding 1"], }, "Chainaxe": { "abbreviation": "ChAxe", "attack": { - "standard": 90, - "master_crafted": 100, - "artifact": 110 + "standard": 110, + "master_crafted": 130, + "artifact": 150 }, "melee_mod": { "standard": 5, @@ -104,7 +106,7 @@ global.weapons = { "range": 1, "spli": 6, "arp": 0, - "tags": ["chain", "axe", "dual"], + "tags": ["chain", "axe", "dual", "savage", "boarding 2"], }, "Company Standard": { "abbreviation": "CmpStnd", @@ -129,9 +131,9 @@ global.weapons = { "Eviscerator": { "abbreviation": "Evisc", "attack": { - "standard": 180, - "master_crafted": 190, - "artifact": 200 + "standard": 260, + "master_crafted": 290, + "artifact": 330 }, "melee_mod": { "standard": 2, @@ -143,16 +145,16 @@ global.weapons = { "ranged_hands": 1, "ammo": 0, "range": 1, - "spli": 3, - "arp": 1, - "tags": ["chain", "sword"], + "spli": 6, + "arp": -1, + "tags": ["chain", "sword", "savage"], }, "Power Sword": { "abbreviation": "PwrSwrd", "attack": { - "standard": 180, - "master_crafted": 200, - "artifact": 240 + "standard": 225, + "master_crafted": 260, + "artifact": 300 }, "melee_mod": { "standard": 1, @@ -165,16 +167,16 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 4, - "arp": 1, + "arp": -1, "special_properties": ["Parry"], - "tags": ["power", "sword"], + "tags": ["power", "sword", "martial", "boarding 1"], }, "Power Spear": { "abbreviation": "PwrSpear", "attack": { - "standard": 200, - "master_crafted": 220, - "artifact": 260 + "standard": 300, + "master_crafted": 375, + "artifact": 450 }, "melee_mod": { "standard": 1, @@ -187,9 +189,9 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 6, - "arp": 1, + "arp": -1, "special_properties": ["Parry"], - "tags": ["power", "spear"], + "tags": ["power", "spear", "martial"], }, "Chainfist": { "abbreviation": "ChFst", @@ -199,12 +201,12 @@ global.weapons = { "artifact": 700 }, "description": "Created by mounting a chainsword to a power fist, this weapon is easily able to carve through armoured bulkheads.", - "melee_hands": 1.25, - "ranged_hands": 1, + "melee_hands": 3, + "ranged_hands": 0, "range": 1, - "spli": 2, - "arp": 1, - "tags": ["power","boarding", "chain", "fist", "dual", "siege"], + "spli": 4, + "tags": ["power","boarding 3", "chain", "fist", "dual", "siege", "savage"], + "arp": -2, }, "Lascutter": { "abbreviation": "Lasct", @@ -237,15 +239,15 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 3, - "arp": 1, + "arp": -2, "tags": ["power"], }, "Power Axe": { "abbreviation": "PwrAxe", "attack": { - "standard": 190, - "master_crafted": 220, - "artifact": 260 + "standard": 200, + "master_crafted": 225, + "artifact": 300 }, "melee_mod": { "standard": 1, @@ -258,15 +260,15 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 5, - "arp": 1, - "tags": ["power", "axe", "dual"], + "arp": -1, + "tags": ["power", "axe", "dual","savage", "boarding 2"], }, "Executioner Power Axe": { "abbreviation": "ExPwrAxe", "attack": { - "standard": 300, - "master_crafted": 350, - "artifact": 400 + "standard": 800, + "master_crafted": 850, + "artifact": 925 }, "melee_mod": { "standard": 10, @@ -280,7 +282,7 @@ global.weapons = { "range": 1, "spli": 2, "arp": 1, - "tags": ["power", "axe"], + "tags": ["power", "axe", "martial"], }, "Power Fist": { "abbreviation": "PwrFst", @@ -300,8 +302,8 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 2, - "arp": 1, - "tags": ["power", "dual", "fist"], + "tags": ["power", "dual", "fist", "savage", "boarding 2"], + "arp": -2, }, "Power Fists": { "abbreviation": "PwrFsts", @@ -316,8 +318,8 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 4, - "arp": 1, - "tags": ["power", "fist", "pair"], + "tags": ["power", "fist", "pair","savage" ,"boarding 2"], + "arp": -2, }, "Servo-arm(M)": { "abbreviation": "MchArm", @@ -332,7 +334,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 2, - "arp": 1, + "arp": -2, "tags": ["siege"], }, "Boltstorm Gauntlet": { @@ -348,9 +350,9 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 2, - "arp": 1, + "arp": -2, "second_profiles": ["Integrated Bolter"], - "tags": ["power", "fist"], + "tags": ["power", "fist", "savage", "boarding 2"], }, "Assault Chainfist": { "abbreviation": "AssltChFst", @@ -364,7 +366,7 @@ global.weapons = { "ranged_hands": 1, "range": 1, "spli": 2, - "arp": 1, + "arp": -2, "second_profiles": ["Assault Cannon"], "tags": ["power","boarding", "chain", "fist", "dual", "siege"], }, @@ -381,8 +383,8 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 5, - "arp": 1, - "tags": ["power", "dual", "fist"], + "tags": ["power", "dual", "fist", "boarding 2", "martial"], + "arp": -1, }, "Dreadnought Lightning Claw": { "abbreviation": "LghtClw", @@ -402,7 +404,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 15, - "arp": 1, + "arp": -2, "maintenance" : 0.1, "tags": ["power", "vehicle", "dual", "dreadnought", "fist"], }, @@ -424,17 +426,17 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 10, - "arp": 1, - "tags": ["power", "hammer", "siege"], + "arp": -2, "maintenance" : 0.1, "req_exp": 100, + "tags": ["power", "hammer", "siege", "savage", "boarding 2"], }, "Heavy Thunder Hammer": { "abbreviation": "HvyThndHmr", "attack": { - "standard": 975, - "master_crafted": 1125, - "artifact": 1350, + "standard": 800, + "master_crafted": 950, + "artifact": 1100, }, "melee_mod": { "standard": 1.3, @@ -446,11 +448,11 @@ global.weapons = { "ranged_hands": 2, "ammo": 0, "range": 1, + "arp": -2, "spli": 15, - "arp": 1, - "tags": ["heavy_melee", "power", "hammer", "siege"], - "maintenance" : 0.1, + "maintenance" : 0.1, "req_exp": 100, + "tags": ["heavy_melee", "power", "hammer", "siege", "savage"], }, "Power Mace": { "abbreviation": "PwrMace", @@ -469,9 +471,9 @@ global.weapons = { "ranged_hands": 2, "ammo": 0, "range": 1, + "arp": -2, "spli": 10, - "arp": 1, - "tags": ["power", "mace", "siege"], + "tags": ["power", "mace", "siege", "savage"], "req_exp": 100, }, "Mace of Absolution": { @@ -493,8 +495,8 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 10, - "arp": 1, - "tags": ["power", "mace", "siege", "pious"], + "arp": -2, + "tags": ["power", "mace", "siege", "pious", "savage"], "req_exp": 100, }, "Tome": { @@ -516,14 +518,14 @@ global.weapons = { "range": 1, "spli": 1, "arp": 0, - "tags": ["arcane"], + "tags": ["arcane", "savage"], }, "Crozius Arcanum": { "abbreviation": "Crzus", "attack": { - "standard": 220, + "standard": 200, "master_crafted": 250, - "artifact": 300 + "artifact": 325 }, "melee_mod": { "standard": 1, @@ -536,15 +538,15 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 4, - "arp": 1, - "tags": ["power", "mace", "pious"], + "arp": -1, + "tags": ["power", "mace", "pious", "savage", "boarding 2"], }, "Relic Blade": { "abbreviation": "RlcBld", "attack": { - "standard": 700, - "master_crafted": 850, - "artifact": 1000 + "standard": 850, + "master_crafted": 950, + "artifact": 1100 }, "melee_mod": { "standard": 1, @@ -557,26 +559,43 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 8, - "arp": 1, + "arp": -1, "special_properties": ["Parry"], - "maintenance" : 0.1, - "tags": ["power", "sword"], + "maintenance" : 0.1, + "tags": ["power", "sword", "martial"], + }, "Bolt Pistol": { "abbreviation": "BltPstl", "attack": { - "standard": 30, - "master_crafted": 35, - "artifact": 40 + "standard": 100, + "master_crafted": 120, + "artifact": 150 }, "description": "A smaller, more compact version of the venerable Boltgun. This model is produced in the standard Godwyn pattern.", "melee_hands": 0, "ranged_hands": 1, "ammo": 18, - "range": 3.1, - "spli": 1, + "range": 4.1, + "spli": 3, + "arp": 0, + "tags": ["bolt", "pistol", "boarding 1"], + }, + "Wrist-Mounted Storm Bolter": { // TODO: Not used outside of this file atm; + "abbreviation": "WrstBlt", + "attack": { + "standard": 200, + "master_crafted": 240, + "artifact": 300 + }, + "description": "A smaller, more compact version of the venerable Boltgun. This model is produced in the standard Godwyn pattern.", + "melee_hands": 0, + "ranged_hands": 1, + "ammo": 18, + "range": 4.1, + "spli": 6, "arp": 0, - "tags": ["bolt", "pistol"], + "tags": ["bolt", "pistol", "boarding 2"], }, "Webber": { "abbreviation": "Webbr", @@ -597,32 +616,49 @@ global.weapons = { "Grav-Pistol": { "abbreviation": "GrvPstl", "attack": { - "standard": 150, - "master_crafted": 200, - "artifact": 250 + "standard": 300, + "master_crafted": 350, + "artifact": 425 }, "description": "A smaller version of the Grav-Gun which utilises the gravitic reaction principle most commonly seen powering grav-vehicles such as the Land Speeder.", "melee_hands": 0, "ranged_hands": 1, "ammo": 4, - "range": 2.1, + "range": 4.1, "spli": 1, "arp": 1, + "maintenance" : 0.8, "tags": ["grav", "pistol"], "maintenance" : 0.8, }, + "Integrated-Grav": { + "abbreviation": "IntGrv", + "attack": { + "standard": 500, + "master_crafted": 550, + "artifact": 625 + }, + "description": "", + "melee_hands": 0, + "ranged_hands": 0, + "ammo": 3, + "range": 5.1, + "spli": 1, + "arp": 1, + "tags": ["grav"] + }, "Grav-Gun": { "abbreviation": "GrvGn", "attack": { - "standard": 450, - "master_crafted": 475, - "artifact": 500 + "standard": 500, + "master_crafted": 550, + "artifact": 625 }, "description": "A medium-sized weapon which utilises the gravitic reaction principle most commonly seen powering grav-vehicles such as the Land Speeder.", "melee_hands": 1, "ranged_hands": 2, - "ammo": 4, - "range": 4, + "ammo": 6, + "range": 5, "spli": 3, "arp": 1, "tags": ["grav"], @@ -633,13 +669,13 @@ global.weapons = { "attack": { "standard": 800, "master_crafted": 850, - "artifact": 900 + "artifact": 960 }, "description": "A bigger version of the Grav-Gun which utilises the gravitic reaction principle most commonly seen powering grav-vehicles such as the Land Speeder.", "melee_hands": 1, "ranged_hands": 2, "ammo": 8, - "range": 8, + "range": 6, "spli": 6, "arp": 1, "tags": ["grav", "heavy_weapon"], @@ -648,9 +684,9 @@ global.weapons = { "Underslung Bolter": { "abbreviation": "UndBltr", "attack": { - "standard": 60, - "master_crafted": 70, - "artifact": 80 + "standard": 100, + "master_crafted": 125, + "artifact": 150 }, "description": "A compact, secondary Bolter weapon often attached under the barrel of a larger firearm. It allows for rapid fire in close quarters combat.", "melee_hands": 0, @@ -664,34 +700,34 @@ global.weapons = { "Stalker Pattern Bolter": { "abbreviation": "StlkBltr", "attack": { - "standard": 100, - "master_crafted": 110, - "artifact": 120 + "standard": 180, + "master_crafted": 200, + "artifact": 240 }, "description": "The Stalker Bolter is a scoped long-range variant of the standard Bolter. Depending on the specific modifications made by the wielder, the Stalker Bolter can serve as a precision battle rifle or a high-powered sniper weapon.", "melee_hands": 0, "ranged_hands": 2, "ammo": 20, - "range": 15, - "spli": 1, - "arp": 1, + "range": 16, + "spli": 3, + "arp": -1, "tags": ["bolt", "precision"] }, "Bolter": { "abbreviation": "Bltr", "attack": { - "standard": 50, - "master_crafted": 55, - "artifact": 60 + "standard": 150, + "master_crafted": 175, + "artifact": 200 }, "description": "A standard Bolter, a two-handed firearm that launches rocket propelled projectiles that detonate after penetrating the target. It is a versatile and iconic weapon of Adeptus Astartes, their resounding detonations carry the Emperor's Wrath.", "melee_hands": 1, "ranged_hands": 2, "ammo": 16, - "range": 12, - "spli": 3, + "range": 10, + "spli": 5, "arp": 0, - "tags": ["bolt"] + "tags": ["bolt", "boarding 1"] }, "Heavy Flamer": { "abbreviation": "HvyFlmr", @@ -705,23 +741,23 @@ global.weapons = { "ranged_hands": 2.25, "ammo": 8, "range": 2, - "spli": 5, + "spli": 20, "arp": -1, - "tags": ["flame", "heavy_ranged"] + "tags": ["flame", "heavy_ranged", "boarding 3"] }, "CCW Heavy Flamer": { "abbreviation": "CCWHvyFlmr", "attack": { - "standard": 250, - "master_crafted": 275, - "artifact": 300 + "standard": 500, + "master_crafted": 550, + "artifact": 600 }, "description": "A powerful close combat weapon integrated with a flamer. Enemeies rarely expect a dreadnough claw to spew promethium.", "melee_hands": 1, "ranged_hands": 0, "ammo": 6, "range": 2.1, - "spli": 5, + "spli": 20, "arp": -1, "tags": ["dreadnought","heavy_ranged", "flame"] }, @@ -758,66 +794,82 @@ global.weapons = { "Inferno Cannon": { "abbreviation": "InfCann", "attack": { - "standard": 400, - "master_crafted": 440, - "artifact": 480 + "standard": 750, + "master_crafted": 875, + "artifact": 1000 }, "description": "A huge vehicle-mounted flame weapon that fires with explosive force. The reservoir is liable to explode.", "melee_hands": 0, "ranged_hands": 3, "ammo": 0, - "range": 3.1, + "range": 4.1, "spli": 20, "arp": -1, "tags": ["vehicle","heavy_ranged", "flame", "dreadnought"] }, + "Integrated-Melta": { + "abbreviation": "IntMlt", + "attack": { + "standard": 400, + "master_crafted": 475, + "artifact": 600 + }, + "description": "", + "melee_hands": 0, + "ranged_hands": 0, + "ammo": 5, + "range": 2.1, + "spli": 1, + "arp": 1, + "tags": ["melta"] + }, "Meltagun": { "abbreviation": "Mltgn", "attack": { - "standard": 450, + "standard": 400, "master_crafted": 475, - "artifact": 500 + "artifact": 600 }, "description": "A loud weapon that roars with fury, this gun vaporizes flesh and armor alike. Due to heat dissipation, it has only a short range.", "melee_hands": 1, "ranged_hands": 2, - "ammo": 4, + "ammo": 6, "range": 2.1, - "spli": 1, - "arp": 1, - "tags": ["melta","boarding"] + "spli": 6, + "arp": -2, + "tags": ["melta","boarding 3"] }, "Multi-Melta": { "abbreviation": "MltMelt", "attack": { - "standard": 800, - "master_crafted": 850, - "artifact": 900 + "standard": 700, + "master_crafted": 800, + "artifact": 950 }, "description": "Though bearing longer range than the Meltagun, this weapon's great size usually restricts it to vehicles though those with Power Armor can carry this cumbersome weapon into battle.", "melee_hands": 1, "ranged_hands": 2.25, "ammo": 8, "range": 4.1, - "spli": 1, - "arp": 1, - "tags": ["melta", "heavy_ranged", "dreadnought"] + "spli": 10, + "arp": -2, + "tags": ["melta", "heavy_ranged", "dreadnought", "boarding 1"] }, "Plasma Pistol": { "abbreviation": "PlsmPstl", "attack": { - "standard": 115, - "master_crafted": 130, - "artifact": 150 + "standard": 250, + "master_crafted": 290, + "artifact": 320 }, "description": "A pistol variant of the plasma gun, this dangerous-to-use weapon has exceptional armor-piercing capabilities.", "melee_hands": 0, "ranged_hands": 1, "ammo": 0, - "range": 3.1, - "spli": 1, - "arp": 1, - "tags": ["plasma", "energy", "pistol"] + "range": 5.1, + "spli": 2, + "arp": -2, + "tags": ["plasma", "energy", "pistol", "boarding 1"] }, "Plasma Cutter": { // Basically a dual-linked plasma pistol "abbreviation": "PlsmCt", @@ -830,17 +882,17 @@ global.weapons = { "melee_hands": 0, "ranged_hands": 0, "ammo": 0, - "range": 3.1, + "range": 4.1, "spli": 1, - "arp": 1, + "arp": -2, "tags": ["plasma", "energy", "pistol"] }, "Infernus Pistol": { "abbreviation": "InfPstl", "attack": { - "standard": 100, - "master_crafted": 110, - "artifact": 120 + "standard": 250, + "master_crafted": 280, + "artifact": 325 }, "description": "The Infernus Pistol is a compact pistol varient of the melta gun. A brutal blast of heat to burn away the The Emperor's foes.", "melee_hands": 0, @@ -848,63 +900,79 @@ global.weapons = { "ammo": 4, "range": 2.1, "spli": 3, - "arp": 1, - "tags": ["melta", "pistol"] + "arp": -2, + "tags": ["melta", "pistol", "boarding 2"] + }, + "Integrated-Plasma": { + "abbreviation": "IntPls", + "attack": { + "standard": 350, + "master_crafted": 400, + "artifact": 475 + }, + "description": "", + "melee_hands": 0, + "ranged_hands": 0, + "ammo": 6, + "range": 10, + "spli": 2, + "arp": -1, + "tags": ["plasma"] }, "Plasma Gun": { "abbreviation": "PlsmGn", "attack": { - "standard": 250, - "master_crafted": 275, - "artifact": 300 + "standard": 350, + "master_crafted": 400, + "artifact": 475 }, "description": "A two-handed weapon that launches blobs of plasma at the target. They are considered both sacred and dangerous, overheating through rapid firing of the weapon. Overheating can result in detonation of the weapon, killing the wielder.", "melee_hands": 0, "ranged_hands": 2, "ammo": 16, - "range": 12, + "range": 10, "spli": 3, - "arp": 1, - "tags": ["plasma", "energy"] + "arp": -2, + "tags": ["plasma", "energy", "boarding 1"] }, "Plasma Cannon": { "abbreviation": "PlsmCan", "attack": { - "standard": 500, - "master_crafted": 600, - "artifact": 750 + "standard": 700, + "master_crafted": 800, + "artifact": 900 }, "description": "A heavy variant of the plasma gun, its power output is significantly higher and its damage capability shows. However, it maintains the overheating risk of the Plasma Gun", "melee_hands": 1, "ranged_hands": 3, "ammo": 16, - "range": 14, - "spli": 2, - "arp": 1, + "range": 10, + "spli": 8, + "arp": -2, "tags": ["plasma","energy","heavy_ranged", "dreadnought"] }, "Sniper Rifle": { "abbreviation": "SnprRfl", "attack": { - "standard": 80, - "master_crafted": 88, - "artifact": 96 + "standard": 120, + "master_crafted": 150, + "artifact": 200 }, "description": "The Sniper Rifle fires a solid shell over long range and boasts powerful telescopic sights to assist, allowing the user to target enemy weak points and distant foes.", "melee_hands": 1, "ranged_hands": 2, "ammo": 20, - "range": 18, + "range": 14, "spli": 1, - "arp": 0, + "arp": -1, "tags": ["precision", "rifle"] }, "Assault Cannon": { "abbreviation": "AssCann", "attack": { - "standard": 240, - "master_crafted": 264, - "artifact": 288 + "standard": 400, + "master_crafted": 440, + "artifact": 500 }, "description": "A heavy rotary autocannon with a devastating fire rate that can be counted in the hundreds per minute. It is incredibly effective against infantry and light armored targets.", "melee_hands": 2.1, @@ -912,39 +980,39 @@ global.weapons = { "ammo": 5, "range": 12, "spli": 20, - "arp": 1, + "arp": 0, "tags": ["heavy_ranged", "dreadnought"] }, "Autocannon": { "abbreviation": "Autocnn", "attack": { - "standard": 380, - "master_crafted": 400, - "artifact": 430 + "standard": 450, + "master_crafted": 500, + "artifact": 600 }, "description": "A rapid-firing weapon able to use a wide variety of ammunition, from mass-reactive explosive to solid shells. It has been found to be incredibly effective against large groups of targets and even Traitor Astartes to an extent.", "melee_hands": 0, "ranged_hands": 2.25, "ammo": 25, - "range": 18, - "spli": 15, - "arp": 1, + "range": 14, + "spli": 12, + "arp": -1, "tags": ["heavy_ranged", "dreadnought"] }, "Missile Launcher": { "abbreviation": "MsslLnch", "attack": { - "standard": 250, - "master_crafted": 275, - "artifact": 300 + "standard": 300, + "master_crafted": 350, + "artifact": 425 }, - "description": "This shoulder mounted weapon is capable of firing either armor-piercing or fragmentation rockets. It's ammunition is limited by what the bearer has carried with them.", + "description": "This shoulder fired weapon is capable of firing either armor-piercing or fragmentation rockets. It's ammunition is limited by what the bearer has carried with them.", "melee_hands": 1, "ranged_hands": 2, "ammo": 6, - "range": 24, - "spli": 3, - "arp": 0, + "range": 15, + "spli": 10, + "arp": -1, "tags": ["heavy_ranged", "dreadnought"] }, "Lascannon": { @@ -958,7 +1026,7 @@ global.weapons = { "melee_hands": 1, "ranged_hands": 2.25, "ammo": 8, - "range": 24, + "range": 20, "spli": 1, "arp": 1, "tags": ["heavy_ranged", "las", "energy"] @@ -979,17 +1047,17 @@ global.weapons = { "arp": 1, "tags": ["heavy_ranged", "ancient"] }, - "Integrated Bolter": { + "Integrated-Bolter": { "abbreviation": "IntgBltr", "attack": { - "standard": 50, - "master_crafted": 55, - "artifact": 60 + "standard": 150, + "master_crafted": 175, + "artifact": 200 }, "description": "A Bolter that can be built directly into the structure of the vehicle, armor, another weapon or Dreadnought. When used as a weapon, it leaves both hands free, allowing to use any, even a twohanded weapon, efficiently.", "melee_hands": 0, "ranged_hands": 0, - "ammo": 20, + "ammo": 8, "range": 12, "spli": 4, "arp": 0, @@ -998,25 +1066,25 @@ global.weapons = { "Twin Linked Heavy Bolter": { "abbreviation": "TwnHvyBltr", "attack": { - "standard": 320, - "master_crafted": 352, - "artifact": 384 + "standard": 450, + "master_crafted": 500, + "artifact": 650 }, "description": "Twin-linked Heavy Bolters are an upgraded version of the standard Heavy Bolter weapon, which is known for its high rate of fire and effectiveness against infantry and light vehicles.", "melee_hands": 0, "ranged_hands": 0, "ammo": 20, "range": 16, - "spli": 9, - "arp": 1, + "spli": 28, + "arp": 0, "tags": ["bolt", "heavy_ranged", "vehicle", "dreadnought"] }, "Twin Linked Lascannon": { "abbreviation": "TwnLascnn", "attack": { - "standard": 600, - "master_crafted": 700, - "artifact": 900 + "standard": 800, + "master_crafted": 900, + "artifact": 1000 }, "description": "The Twin-Linked Lascannons is a powerful anti-armour weapons that fire highly focused and devastating duel energy beams capable of penetrating even the toughest armor.", "melee_hands": 0, @@ -1030,24 +1098,24 @@ global.weapons = { "Heavy Bolter": { "abbreviation": "HvyBltr", "attack": { - "standard": 320, - "master_crafted": 352, - "artifact": 384 + "standard": 300, + "master_crafted": 350, + "artifact": 390 }, "description": "The Heavy Bolter is a heavy weapon that fires larger and more powerful bolt shells compared to the standard Bolter.", "melee_hands": 1, "ranged_hands": 2, "ammo": 10, - "range": 16, - "spli": 6, - "arp": 1, + "range": 14, + "spli": 12, + "arp": 0, "tags": ["heavy_ranged", "bolt"] }, "Whirlwind Missiles": { "attack": { - "standard": 400, - "master_crafted": 440, - "artifact": 480 + "standard": 600, + "master_crafted": 650, + "artifact": 800 }, "description": "The Whirlwind Missile Launcher is a vehicle-mounted artillery weapon that launches a barrage of powerful missiles at the enemy.", "abbreviation": "WhrlMssl", @@ -1055,8 +1123,8 @@ global.weapons = { "ranged_hands": 0, "ammo": 6, "range": 20, - "spli": 25, - "arp": 1, + "spli": 40, + "arp": -1, "tags": ["vehicle","heavy_ranged", "indirect"] }, "HK Missile": { @@ -1066,9 +1134,9 @@ global.weapons = { }, "Twin Linked Heavy Bolter Mount": { "attack": { - "standard": 240, - "master_crafted": 264, - "artifact": 288 + "standard": 450, + "master_crafted": 550, + "artifact": 700 }, "description": "The Twin-linked Heavy Bolters are an upgraded version of the standard Heavy Bolter weapon. They are mounted onto vehicles to create effective fire support platforms.", "abbreviation": "TwnHvyBltr", @@ -1076,15 +1144,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 20, "range": 16, - "spli": 3, - "arp": 1, + "spli": 21, + "arp": 0, "tags": ["vehicle", "dreadnought", "heavy_ranged", "bolt"] }, "Twin Linked Lascannon Mount": { "attack": { - "standard": 250, - "master_crafted": 275, - "artifact": 300 + "standard": 800, + "master_crafted": 900, + "artifact": 1000 }, "description": "The Twin-Lascannons are powerful anti-armour weapons that fire highly focused and devastating energy beams capable of penetrating even the toughest armour. This version is mounted onto vehicles to incease anti-armor capabilities.", "abbreviation": "TwnLascnn", @@ -1092,15 +1160,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 10, "range": 20, - "spli": 3, + "spli": 2, "arp": 1, "tags": ["las", "energy", "vehicle", "heavy_ranged", "dreadnought"] }, "Twin Linked Assault Cannon Mount": { "attack": { - "standard": 240, - "master_crafted": 264, - "artifact": 288 + "standard": 800, + "master_crafted": 900, + "artifact": 1100 }, "description": "A twin mount of rotary autocannons, boasting an incredible rate of fire numbering in the hundreds of shots fired per second.", "abbreviation": "TwnAssCnn", @@ -1108,15 +1176,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 6, "range": 12, - "spli": 30, - "arp": 1, + "spli": 40, + "arp": 0, "tags": ["vehicle","heavy_ranged", "pintle", "dreadnought"] }, "Reaper Autocannon Mount": { "attack": { - "standard": 500, - "master_crafted": 550, - "artifact": 600 + "standard": 700, + "master_crafted": 850, + "artifact": 1000 }, "description": "An archaic twin-linked autocannon design dating back to the Great Crusade. The Reaper Autocannon is effective against infantry and armored targets. This version is mounted onto vehicles.", "abbreviation": "RprAtcnn", @@ -1124,15 +1192,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 25, "range": 15, - "spli": 6, - "arp": 1, + "spli": 24, + "arp": -1, "tags": ["vehicle","heavy_ranged", "pintle"] }, "Quad Linked Heavy Bolter Sponsons": { "attack": { - "standard": 320, - "master_crafted": 352, - "artifact": 384 + "standard": 800, + "master_crafted": 900, + "artifact": 1100 }, "description": "Quad-linked Heavy Bolters are a significantly upgraded version of the standard Heavy Bolter mount; already punishing in a single mount, this quad mount is devastating against a variety of targets.", "abbreviation": "QdHvyBltrs", @@ -1140,15 +1208,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 15, "range": 16, - "spli": 5, - "arp": 1, + "spli": 50, + "arp": 0, "tags": ["bolt","heavy_ranged", "vehicle", "sponson"] }, "Twin Linked Lascannon Sponsons": { "attack": { - "standard": 600, - "master_crafted": 700, - "artifact": 900 + "standard": 800, + "master_crafted": 1000, + "artifact": 1200 }, "description": "The Twin-Linked Lascannons are powerful anti-armour weapons that fire highly focused and devastating energy beams capable of penetrating even the toughest armour. This version is mounted onto the sides of vehicles.", "abbreviation": "TwnLascnns", @@ -1156,15 +1224,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 5, "range": 20, - "spli": 3, + "spli": 4, "arp": 1, "tags": ["las", "energy", "vehicle", "heavy_ranged", "sponson", "twin_linked"] }, "Lascannon Sponsons": { "attack": { - "standard": 500, - "master_crafted": 600, - "artifact": 750 + "standard": 700, + "master_crafted": 850, + "artifact": 1000 }, "description": "Lascannons are powerful anti-armour weapons that fire highly focused and devastating energy beams capable of penetrating even the toughest armour. This version is mounted onto the sides of vehicles.", "abbreviation": "Lscnns", @@ -1172,15 +1240,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 8, "range": 20, - "spli": 1, + "spli": 2, "arp": 1, "tags": ["las", "energy","heavy_ranged", "vehicle", "sponson"] }, "Hurricane Bolter Sponsons": { "attack": { - "standard": 50, - "master_crafted": 55, - "artifact": 60 + "standard": 600, + "master_crafted": 700, + "artifact": 800 }, "description": "Hurricane Bolters are large hex-mount bolter arrays that are able to deliver a withering hail of anti-infantry fire at short ranges. This version is mounted onto the sides of vehicles.", "abbreviation": "HrcBltrs", @@ -1194,100 +1262,100 @@ global.weapons = { }, "Flamestorm Cannon Sponsons": { "attack": { - "standard": 600, - "master_crafted": 660, - "artifact": 720 + "standard": 750, + "master_crafted": 850, + "artifact": 900 }, "description": "A huge vehicle-mounted flamethrower cannon, the heat produced by this terrifying weapon can melt armoured ceramite.", "abbreviation": "FlmstCnns", "melee_hands": 0, "ranged_hands": 0, "ammo": 6, - "range": 2, - "spli": 3, - "arp": 1, + "range": 4.1, + "spli": 30, + "arp": -2, "tags": ["flame","heavy_ranged", "vehicle", "sponson"] }, "Twin Linked Heavy Flamer Sponsons": { "attack": { - "standard": 500, - "master_crafted": 550, - "artifact": 600 + "standard": 600, + "master_crafted": 750, + "artifact": 900 }, "description": "A twin-linked significantly heavier flamer attached to the sponsons on a vehicle.", "abbreviation": "TwnHvyFlmrs", "melee_hands": 0, "ranged_hands": 0, "ammo": 8, - "range": 2.1, - "spli": 8, + "range": 4.1, + "spli": 40, "arp": -1, "tags": ["flame","heavy_ranged", "vehicle", "dreadnought", "sponson"] }, "Twin Linked Bolters": { "attack": { - "standard": 80, - "master_crafted": 140, - "artifact": 180 + "standard": 225, + "master_crafted": 350, + "artifact": 450 }, "description": "A Twin-linked Bolter consists of two Bolter weapons mounted side by side, typically on a vehicle or a dedicated weapons platform.", "abbreviation": "TwnBltrs", "melee_hands": 1, "ranged_hands": 2, "ammo": 30, - "range": 12, - "spli": 6, + "range": 10, + "spli": 10, "arp": 0, "tags": ["bolt", "vehicle"] }, "Twin Linked Multi-Melta Sponsons": { "abbreviation": "TwnMltMelts", "attack": { - "standard": 800, - "master_crafted": 850, - "artifact": 900 + "standard": 1200, + "master_crafted": 1400, + "artifact": 1650 }, "description": "Though bearing longer range than the Meltagun, this weapon's great size usually restricts it to vehicles. In this case it is mounted to the sponsons on a vehicle.", "melee_hands": 0, "ranged_hands": 0, "ammo": 8, "range": 4.1, - "spli": 2, - "arp": 1, + "spli": 20, + "arp": -2, "tags": ["vehicle","heavy_ranged", "Sponson", "melta"], "maintenance" : 0.05, }, "Twin Linked Volkite Culverin Sponsons": { "abbreviation": "TwnVlkCulvs", "attack": { - "standard": 480, - "master_crafted": 510, - "artifact": 540 + "standard": 950, + "master_crafted": 1150, + "artifact": 1300 }, "description": "An advanced thermal weapon from a bygone era, Volkite Culverins are able to ignite entire formations of enemy forces. In this case it is mounted to the sponsons on a vehicle.", "melee_hands": 0, "ranged_hands": 0, "ammo": 25, "range": 18, - "spli": 9, - "arp": 0, + "spli": 12, + "arp": -2, "tags": ["vehicle","heavy_ranged", "Sponson", "volkite", "ancient"] }, "Heavy Bolter Sponsons": { "abbreviation": "HvyBltrs", "attack": { - "standard": 240, - "master_crafted": 264, - "artifact": 288 + "standard": 450, + "master_crafted": 550, + "artifact": 750 }, "description": "Heavy Bolters are mounted in sponsons. They are known for high rates of fire and effectiveness against infantry and light vehicles.", "melee_hands": 0, "ranged_hands": 0, "ammo": 20, - "range": 16, - "spli": 4, - "arp": 1, - "tags": ["heavy_ranged", "vehicle", "sponson", "bolt"], + "range": 14, + "spli": 28, + "arp": 0, + "tags": ["heavy_ranged", "vehicle", "sponson", "bolt"] }, "Heavy Flamer Sponsons": { "abbreviation": "HvyFlmrs", @@ -1301,8 +1369,8 @@ global.weapons = { "melee_hands": 0, "ranged_hands": 0, "ammo": 8, - "range": 2.1, - "spli": 4, + "range": 4.1, + "spli": 40, "arp": -1, "tags": ["flame","heavy_ranged", "vehicle", "sponson"], "maintenance" : 0.05, @@ -1311,66 +1379,67 @@ global.weapons = { "abbreviation": "VlkClvs", "attack": { "standard": 480, - "master_crafted": 528, - "artifact": 576 + "master_crafted": 600, + "artifact": 750 }, "description": "An advanced thermal weapon from a bygone era, Volkite Culverins are able to ignite entire formations of enemy forces. In this case it is mounted to the sponsons on a vehicle.", "melee_hands": 0, "ranged_hands": 0, "ammo": 25, "range": 18, - "spli": 5, - "arp": 1, + "spli": 6, + "arp": -2, "tags": ["vehicle","heavy_ranged", "Sponson", "volkite", "ancient"] }, "Autocannon Turret": { "abbreviation": "Autocnn", "attack": { - "standard": 380, - "master_crafted": 528, - "artifact": 576 + "standard": 600, + "master_crafted": 700, + "artifact": 850 }, "description": "A Predator-compatible turret mounting a reliable all-purpose autocannon capable of doing effective damage to infantry and lightly armored targets.", "melee_hands": 0, "ranged_hands": 0, - "ammo": 25, + "ammo": 18, "range": 18, "spli": 15, - "arp": 0, + "arp": -1, "tags": ["vehicle","heavy_ranged", "turret"] }, "Storm Bolter": { "abbreviation": "StrmBltr", "attack": { - "standard": 80, - "master_crafted": 88, - "artifact": 96 + "standard": 275, + "master_crafted": 300, + "artifact": 350 }, "description": "Compact and double-barreled, this bolt weapon is inaccurate but grants an enormous amount of firepower. Its psychological effect on the enemy should not be understated.", - "melee_hands": 1.1, - "ranged_hands": 1.1, + "melee_hands": 1, + "ranged_hands": 2, "ammo": 10, - "range": 10, - "spli": 6, + "range": 8, + "spli": 8, "arp": 0, - "tags": ["bolt"], - "maintenance" : 0.03, + "maintenance" : 0.03, + "tags": ["bolt", "boarding 2"] + }, "Hand Flamer": { "abbreviation": "HndFlmr", "attack": { - "standard": 125, - "master_crafted": 190, - "artifact": 210 + "standard": 250, + "master_crafted": 275, + "artifact": 350 }, "description": "Along with using a lower-capacity fuel tank it has much reduced range, which makes it suited for assault and close-combat purposes, incinerating foes at short range. The weapon is often used by assault squads.", "melee_hands": 0, "ranged_hands": 1, - "ammo": 2, - "range": 1.1, - "spli": 2, - "arp": -1, - "tags": ["pistol", "flame"] + "ammo": 4, + "range": 2.1, + "spli": 8, + "arp": 0, + "tags": ["pistol", "flame", "boarding 2"] }, "Flamer": { "abbreviation": "Flmr", @@ -1387,118 +1456,118 @@ global.weapons = { "description": "Blackened at the tip, this weapon unleashes a torrent of burning promethium - all the better to cleanse sin and impurity with.", "melee_hands": 1, "ranged_hands": 2, - "ammo": 4, - "range": 2.1, - "spli": 4, - "arp": -1, - "tags": ["flame"], - "maintenance" : 0.01, + "ammo": 8, + "range": 4.1, + "spli": 14, + "arp": 0, + "maintenance" : 0.01, + "tags": ["flame", "boarding 2"] }, - "Underslung Flamer": { + "Integrated-Flamer": { "attack": { - "standard": 200, - "master_crafted": 220, - "artifact": 240 + "standard": 350, + "master_crafted": 385, + "artifact": 420 }, "description": "", - "abbreviation": "UndrFlmr", + "abbreviation": "IntFlmr", "melee_hands": 0, "ranged_hands": 0, "ammo": 4, - "range": 2.1, + "range": 4.1, "spli": 3, - "arp": -1, + "arp": 0, "tags": ["flame", "attached"] }, "Combiflamer": { "abbreviation": "CmbFlmr", "attack": { - "standard": 100, - "master_crafted": 130, - "artifact": 160 + "standard": 150, + "master_crafted": 175, + "artifact": 200 }, "description": "A standard Bolter with an underbarrel Flamer for expanded tactical utility.", "melee_hands": 1, "ranged_hands": 2, "ammo": 15, "range": 10, - "spli": 3, + "spli": 5, "arp": 0, - "second_profiles": ["Flamer"], - "tags": ["combi", "bolt"] + "second_profiles": ["Integrated-Flamer"], + "tags": ["combi", "bolt", "boarding 2"] }, "Combiplasma": { "abbreviation": "CmbPlsm", "attack": { - "standard": 100, - "master_crafted": 130, - "artifact": 160 + "standard": 150, + "master_crafted": 175, + "artifact": 200 }, "description": "A standard Bolter with an underbarrel Plasma Gun for expanded tactical utility.", "melee_hands": 1, "ranged_hands": 2, - "ammo": 15, + "ammo": 8, "range": 10, - "spli": 3, + "spli": 5, "arp": 0, - "second_profiles": ["Plasma Gun"], + "second_profiles": ["Integrated-Plasma"], "tags": ["combi", "bolt"] }, "Combigrav": { "abbreviation": "CmbGrv", "attack": { - "standard": 100, - "master_crafted": 130, - "artifact": 160 + "standard": 150, + "master_crafted": 175, + "artifact": 200 }, "description": "A standard Bolter with an underbarrel Grav-Gun for expanded tactical utility.", "melee_hands": 1, "ranged_hands": 2, - "ammo": 15, + "ammo": 8, "range": 10, - "spli": 3, + "spli": 5, "arp": 0, - "second_profiles": ["Grav-Gun"], + "second_profiles": ["Integrated-Grav"], "tags": ["combi", "bolt"] }, "Combimelta": { "abbreviation": "CmbMlt", "attack": { - "standard": 100, - "master_crafted": 130, - "artifact": 160 + "standard": 150, + "master_crafted": 175, + "artifact": 200 }, "description": "A standard Bolter with an underbarrel Meltagun for expanded tactical utility.", "melee_hands": 1, "ranged_hands": 2, - "ammo": 15, + "ammo": 8, "range": 10, - "spli": 3, + "spli": 5, "arp": 0, - "second_profiles": ["Meltagun"], - "tags": ["combi", "bolt"] + "second_profiles": ["Integrated-Melta"], + "tags": ["combi", "bolt", "boarding 3"] }, "Incinerator": { "attack": { - "standard": 200, - "master_crafted": 220, - "artifact": 240 + "standard": 500, + "master_crafted": 550, + "artifact": 600 }, "description": "This flamer weapon utilizes psychically-charged promethium and blessed oils concoction to create an azure flame that bypasses psychich protections. It is particularly effective against Daemons and their ilk.", "abbreviation": "Incnrtr", "melee_hands": 1, "ranged_hands": 1, "ammo": 4, - "range": 2.1, - "spli": 3, + "range": 4.1, + "spli": 20, "arp": -1, - "tags": ["flame"] + "tags": ["flame","boarding 3"] }, "Force Staff": { "attack": { - "standard": 200, - "master_crafted": 230, - "artifact": 270 + "standard": 225, + "master_crafted": 270, + "artifact": 350 }, "melee_mod": { "standard": 1, @@ -1511,101 +1580,101 @@ global.weapons = { "ranged_hands": 1, "range": 1, "spli": 5, - "arp": 1, + "arp": -1, "special_description": "Spell Damage +100%", - "tags": ["force" ], - "maintenance" : 0.1, +"maintenance" : 0.1, + "tags": ["force"] }, "Force Sword": { - "abbreviation": "FrcSwrd", "attack": { - "standard": 180, - "master_crafted": 200, - "artifact": 240 + "standard": 225, + "master_crafted": 270, + "artifact": 350 }, "melee_mod": { "standard": 1, "master_crafted": 1.1, "artifact": 1.2 }, + "abbreviation": "FrcSwrd", "description": "The Force Sword is a psychically-attuned close combat weapon that is only fully effective in the hands of a psyker.", "melee_hands": 1, "ranged_hands": 0, "ammo": 0, "range": 1, "spli": 4, - "arp": 1, + "arp": -1, "special_description": "Spell damage +25%", "special_properties": ["Parry"], - "tags": ["force", "sword"], - "maintenance" : 0.1, + "maintenance" : 0.1, + "tags": ["force", "sword", "martial", "boarding 1"], }, "Force Axe": { - "abbreviation": "FrcAxe", "attack": { - "standard": 190, - "master_crafted": 220, - "artifact": 260 + "standard": 200, + "master_crafted": 250, + "artifact": 350 }, "melee_mod": { "standard": 1, "master_crafted": 1.1, "artifact": 1.2 }, + "abbreviation": "FrcAxe", "description": "The Force Axe is a psychically-attuned close combat weapon that is only fully effective in the hands of a psyker.", "melee_hands": 1, "ranged_hands": 0, "ammo": 0, "range": 1, "spli": 5, - "arp": 1, + "arp": -1, "special_description": "Able to be dual-wielded, Spell damage +25%", - "tags": ["force", "axe", "dual"], + "tags": ["force", "axe", "dual", "savage", "boarding 2"], }, "Twin Linked Lascannon Turret": { "attack": { - "standard": 600, - "master_crafted": 700, - "artifact": 900 + "standard": 1000, + "master_crafted": 1100, + "artifact": 1300 }, "abbreviation": "TwnLscnn", "description": "A Predator-compatible turret mounting a twin-linked lascannon.", "arp": 1, "range": 24, "ammo": 5, - "spli": 2, + "spli": 1, "tags": ["las", "energy", "twin_linked","heavy_ranged", "vehicle", "turret"] }, "Twin Linked Assault Cannon Turret": { "abbreviation": "TwnAssCnn", "attack": { - "standard": 240, - "master_crafted": 264, - "artifact": 288 + "standard": 800, + "master_crafted": 900, + "artifact": 1100 }, "description": "A heavy rotary autocannon with a devastating fire rate that can be counted in the hundreds per minute, in a twin mount. It is incredibly effective against infantry and lightly armored targets.", "melee_hands": 2.1, "ranged_hands": 2.25, "ammo": 5, "range": 12, - "spli": 30, - "arp": 1, + "spli": 40, + "arp": 0, "tags": ["heavy_ranged", "twin_linked", "vehicle", "turret"] }, "Flamestorm Cannon Turret": { "abbreviation": "FlmstCnn", "attack": { - "standard": 600, - "master_crafted": 660, - "artifact": 720 + "standard": 700, + "master_crafted": 850, + "artifact": 900 }, "description": "A huge vehicle-mounted flamethrower cannon, the heat produced by this terrifying weapon can melt armoured ceramite.", "melee_hands": 0, "ranged_hands": 0, "ammo": 12, - "range": 2, - "spli": 3, - "arp": 1, + "range": 4.1, + "spli": 25, + "arp": -2, "tags": ["flame","heavy_ranged", "vehicle", "turret"] }, "Magna-Melta Turret": { @@ -1619,25 +1688,25 @@ global.weapons = { "melee_hands": 0, "ranged_hands": 0, "ammo": 6, - "range": 5.1, - "spli": 2, - "arp": 1, + "range": 4.1, + "spli": 20, + "arp": -2, "tags": ["vehicle","heavy_ranged", "turret", "melta"] }, "Plasma Destroyer Turret": { "abbreviation": "PlsmDestr", "attack": { - "standard": 500, - "master_crafted": 600, - "artifact": 750 + "standard": 800, + "master_crafted": 900, + "artifact": 1000 }, "description": "A heavy variant of the plasma gun, its power output is significantly higher and its damage capability shows. However, it is mounted in a tank turret.", "melee_hands": 1, "ranged_hands": 3, "ammo": 16, "range": 14, - "spli": 3, - "arp": 1, + "spli": 12, + "arp": -2, "tags": ["plasma", "energy","heavy_ranged", "vehicle", "turret"] }, "Heavy Conversion Beam Projector": { @@ -1675,9 +1744,9 @@ global.weapons = { "Volkite Saker Turret": { "abbreviation": "VlkSkr", "attack": { - "standard": 300, - "master_crafted": 333, - "artifact": 375 + "standard": 1000, + "master_crafted": 1150, + "artifact": 1400 }, "description": "An advanced thermal weapon from a bygone era, Volkite sakers are optimized for spreading damage across swaths of enemy troops.", "melee_hands": 0, @@ -1685,7 +1754,7 @@ global.weapons = { "ammo": 25, "range": 18, "spli": 30, - "arp": 0, + "arp": -2, "tags": ["vehicle","heavy_ranged", "turret", "volkite", "ancient"] }, // Hireling weapons @@ -1817,7 +1886,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 3, - "arp": 1, + "arp": -1, "special_properties": ["Parry"], "tags": ["power", "sword", "elder", "xenos"], }, From 51b68264de91d9ce23de340c7593e86f681f7ddd Mon Sep 17 00:00:00 2001 From: Da Fist <144086663+KRdaMystic@users.noreply.github.com> Date: Thu, 23 Jan 2025 19:33:03 +0900 Subject: [PATCH 02/47] feat: Combat adjustments p2 (#455) --- objects/obj_enunit/Alarm_1.gml | 384 ++++++++++++++---------- scripts/scr_en_weapon/scr_en_weapon.gml | 194 ++++++------ scripts/scr_shoot/scr_shoot.gml | 8 +- scripts/scr_weapon/scr_weapon.gml | 60 ++-- 4 files changed, 358 insertions(+), 288 deletions(-) diff --git a/objects/obj_enunit/Alarm_1.gml b/objects/obj_enunit/Alarm_1.gml index e1e66d781c..5d74eaac96 100644 --- a/objects/obj_enunit/Alarm_1.gml +++ b/objects/obj_enunit/Alarm_1.gml @@ -349,38 +349,41 @@ if __b__ { repeat(20) { j += 1; if (dudes[j] = "Imperial Guardsman") { - dudes_ac[j] = 20; - dudes_hp[j] = 20; + dudes_ac[j] = 40; + dudes_hp[j] = 5; men += dudes_num[j]; } if (dudes[j] = "Heavy Weapons Team") { scr_en_weapon("Heavy Bolter", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 0; + dudes_ac[j] = 10; dudes_hp[j] = 100; + dudes_dr[j] = 0.1; men += dudes_num[j]; } if (dudes[j] = "Ogryn") { scr_en_weapon("Ripper Gun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Ogryn Melee", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 10; dudes_hp[j] = 120; + dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "Chimera") { scr_en_weapon("Multi-Laster", false, dudes_num[j], dudes[j], j); scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 150; + dudes_ac[j] = 40; + dudes_hp[j] = 200; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Basilisk") { scr_en_weapon("Earthshaker Cannon", false, dudes_num[j], dudes[j], j); scr_en_weapon("Storm Bolter", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; + dudes_ac[j] = 20; dudes_hp[j] = 150; veh += dudes_num[j]; dudes_vehicle[j] = 1; @@ -388,8 +391,9 @@ if __b__ { if (dudes[j] = "Leman Russ Battle Tank") { scr_en_weapon("Battle Cannon", false, dudes_num[j], dudes[j], j); scr_en_weapon("Lascannon", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 45; dudes_hp[j] = 250; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -398,6 +402,7 @@ if __b__ { scr_en_weapon("Lascannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 250; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -405,6 +410,7 @@ if __b__ { scr_en_weapon("Twin-Linked Lascannon", false, dudes_num[j] * 3, dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 300; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -457,17 +463,17 @@ if __b__ { scr_en_weapon("Blessed Weapon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Laser Mace", true, dudes_num[j], dudes[j], j); scr_en_weapon("Infernus Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 35; + dudes_ac[j] = 10; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 200; } men += dudes_num[j]; - dudes_dr[j] = 0.33; + dudes_dr[j] = 0.75; } if (dudes[j] = "Palatine") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 22; + dudes_ac[j] = 10; dudes_hp[j] = 100; men += dudes_num[j]; dudes_dr[j] = 0.5; @@ -475,7 +481,7 @@ if __b__ { if (dudes[j] = "Priest") { scr_en_weapon("Laspistol", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 0; - dudes_hp[j] = 30; + dudes_hp[j] = 50; men += dudes_num[j]; dudes_dr[j] = 0.5; } @@ -485,30 +491,30 @@ if __b__ { dudes_ac[j] = 0; dudes_hp[j] = 150; men += dudes_num[j]; - dudes_dr[j] = 0.65; + dudes_dr[j] = 0.3; } if (dudes[j] = "Celestian") { scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 40; + dudes_ac[j] = 10; + dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.65; + dudes_dr[j] = 0.50; } if (dudes[j] = "Mistress") { scr_en_weapon("Neural Whip", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 40; + dudes_ac[j] = 10; + dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.50; } if (dudes[j] = "Sister Repentia") { scr_en_weapon("Eviscerator", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 30; + dudes_ac[j] = 0; + dudes_hp[j] = 75; men += dudes_num[j]; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; } if (dudes[j] = "Battle Sister") { @@ -520,26 +526,26 @@ if __b__ { scr_en_weapon("Bolter", true, dudes_num[j] - nem, dudes[j], j); } scr_en_weapon("Sarissa", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 40; + dudes_ac[j] = 10; + dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.8; + dudes_dr[j] = 0.25; } if (dudes[j] = "Seraphim") { scr_en_weapon("Seraphim Pistols", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 40; + dudes_ac[j] = 10; + dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.4; } if (dudes[j] = "Dominion") { scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Meltabomb", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 40; + dudes_ac[j] = 10; + dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; } if (dudes[j] = "Retributor") { if (dudes_num[j] <= 3) then scr_en_weapon("Heavy Bolter", true, dudes_num[j], dudes[j], j); @@ -550,50 +556,54 @@ if __b__ { scr_en_weapon("Heavy Bolter", true, dudes_num[j] - nem, dudes[j], j); } scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 40; + dudes_ac[j] = 10; + dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.4; } if (dudes[j] = "Follower") { scr_en_weapon("Laspistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("melee0.5", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 0; - dudes_hp[j] = 20; + dudes_hp[j] = 30; men += dudes_num[j]; } if (dudes[j] = "Rhino") { scr_en_weapon("Storm Bolter", false, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 40; dudes_hp[j] = 200; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Chimera") { scr_en_weapon("Heavy Flamer", false, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 23; + dudes_ac[j] = 40; dudes_hp[j] = 200; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Immolator") { scr_en_weapon("Twin Linked Heavy Flamers", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 200; + dudes_ac[j] = 40; + dudes_hp[j] = 300; + dudes_dr[j] = 0.50; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Exorcist") { scr_en_weapon("Exorcist Missile Launcher", false, dudes_num[j], dudes[j], j); scr_en_weapon("Storm Bolter", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 40; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { - dudes_hp[j] = 300; + dudes_hp[j] = 200; } + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -603,6 +613,7 @@ if __b__ { scr_en_weapon("Heavy Flamer", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 35; dudes_hp[j] = 150; + dudes_dr[j] = 0.50; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -851,7 +862,7 @@ if __b__ { if (dudes[j] = "Wraithlord") { scr_en_weapon("Two Power Fists", false, dudes_num[j], dudes[j], j); scr_en_weapon("Flamer", false, dudes_num[j] * 2, dudes[j], j); - scr_en_weapon("Star Cannon", false, dudes_num[j], dudes[j], j); + scr_en_weapon("Starcannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 200; veh += dudes_num[j]; @@ -880,7 +891,7 @@ if __b__ { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Rokkit Launcha", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 60; + dudes_ac[j] = 12; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 600; } @@ -891,29 +902,32 @@ if __b__ { if (dudes[j] = "Minor Warboss") { scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 10; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 150; + dudes_dr[j] = 0.25; } men += dudes_num[j]; } if (dudes[j] = "Warboss") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Rokkit Launcha", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 50; + dudes_ac[j] = 12; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 200; + dudes_dr[j] = 0.25; } men += dudes_num[j]; } if (dudes[j] = "Big Warboss") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Rokkit Launcha", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 60; + dudes_ac[j] = 12; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 300; + dudes_dr[j] = 0.5; } - veh += dudes_num[j]; + men += dudes_num[j]; } if (dudes[j] = "Gretchin") { @@ -925,81 +939,84 @@ if __b__ { if (dudes[j] = "Slugga Boy") { scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); scr_en_weapon("Slugga", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; - dudes_hp[j] = 50; + dudes_ac[j] = 5; + dudes_hp[j] = 60; men += dudes_num[j]; } if (dudes[j] = "Shoota Boy") { scr_en_weapon("Shoota", true, dudes_num[j], dudes[j], j); scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; - dudes_hp[j] = 50; + dudes_ac[j] = 5; + dudes_hp[j] = 60; men += dudes_num[j]; } if (dudes[j] = "Mekboy") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 60; + dudes_ac[j] = 15; + dudes_hp[j] = 100; + dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "Meganob") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; - dudes_hp[j] = 120; + dudes_ac[j] = 15; + dudes_hp[j] = 150; + dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "Flash Git") { scr_en_weapon("Snazzgun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; - dudes_hp[j] = 65; + dudes_ac[j] = 10; + dudes_hp[j] = 100; men += dudes_num[j]; } if (dudes[j] = "Cybork") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 80; + dudes_ac[j] = 10; + dudes_hp[j] = 100; + dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "Ard Boy") { scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); scr_en_weapon("Slugga", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 70; + dudes_ac[j] = 10; + dudes_hp[j] = 80; men += dudes_num[j]; } if (dudes[j] = "Kommando") { scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); scr_en_weapon("Rokkit Launcha", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; - dudes_hp[j] = 80; + dudes_hp[j] = 150; men += dudes_num[j]; } if (dudes[j] = "Burna Boy") { scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); scr_en_weapon("Burna", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; - dudes_hp[j] = 35; + dudes_ac[j] = 5; + dudes_hp[j] = 80; men += dudes_num[j]; } if (dudes[j] = "Tankbusta") { scr_en_weapon("Rokkit Launcha", true, dudes_num[j], dudes[j], j); scr_en_weapon("Tankbusta Bomb", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; - dudes_hp[j] = 50; + dudes_ac[j] = 5; + dudes_hp[j] = 80; men += dudes_num[j]; } if (dudes[j] = "Stormboy") { scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); scr_en_weapon("Slugga", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; - dudes_hp[j] = 50; + dudes_ac[j] = 5; + dudes_hp[j] = 80; dudes_special[j] = "Jetpack"; men += dudes_num[j]; } @@ -1008,8 +1025,9 @@ if __b__ { scr_en_weapon("Kannon", false, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Rokkit Launcha", false, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 30; dudes_hp[j] = 200; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1017,8 +1035,9 @@ if __b__ { scr_en_weapon("Power Klaw", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Big Shoota", false, dudes_num[j], dudes[j], j); scr_en_weapon("Rokkit Launcha", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 35; - dudes_hp[j] = 150; + dudes_ac[j] = 20; + dudes_hp[j] = 200; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1035,67 +1054,66 @@ if __b__ { scr_en_weapon("Plasma Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Fusion Blaster", true, dudes_num[j], dudes[j], j); scr_en_weapon("Cyclic Ion Blaster", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 150; - medi += dudes_num[j]; - dudes_vehicle[j] = 1; + dudes_ac[j] = 15; + dudes_hp[j] = 300; + dudes_dr[j] = 0.5; + men += dudes_num[j]; } if (dudes[j] = "XV8 Bodyguard") { scr_en_weapon("Plasma Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Burst Rifle", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 100; - medi += dudes_num[j]; - dudes_vehicle[j] = 1; + dudes_ac[j] = 10; + dudes_hp[j] = 200; + dudes_dr[j] = 0.25; + men += dudes_num[j]; } if (dudes[j] = "XV8 Crisis") { scr_en_weapon("Plasma Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Missile Pod", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 75; - medi += dudes_num[j]; - dudes_vehicle[j] = 1; + dudes_ac[j] = 10; + dudes_hp[j] = 150; + dudes_dr[j] = 0.25; + men += dudes_num[j]; } if (dudes[j] = "XV8 (Brightknife)") { scr_en_weapon("Fusion Blaster", true, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 75; - medi += dudes_num[j]; - dudes_vehicle[j] = 1; + dudes_ac[j] = 10; + dudes_hp[j] = 150; + dudes_dr[j] = 0.25; + men += dudes_num[j]; } if (dudes[j] = "Shield Drone") { - dudes_ac[j] = 30; - dudes_hp[j] = 100; - medi += dudes_num[j]; - dudes_vehicle[j] = 1; + dudes_ac[j] = 10; + dudes_hp[j] = 50; + men += dudes_num[j]; } if (dudes[j] = "XV88 Broadside") { scr_en_weapon("Smart Missile System", true, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Small Railgun", true, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 150; - medi += dudes_num[j]; - dudes_vehicle[j] = 1; + dudes_ac[j] = 15; + dudes_hp[j] = 225; + dudes_dr[j] = 0.25; + men += dudes_num[j]; } if (dudes[j] = "XV25 Stealthsuit") { scr_en_weapon("Burst Rifle", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 10; dudes_hp[j] = 50; + dudes_dr[j] = 0.25; men += dudes_num[j]; - dudes_vehicle[j] = 1; } if (dudes[j] = "Fire Warrior") { scr_en_weapon("Pulse Rifle", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 20; + dudes_ac[j] = 10; + dudes_hp[j] = 30; men += dudes_num[j]; } if (dudes[j] = "Pathfinder") { scr_en_weapon("Rail Rifle", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 20; + dudes_ac[j] = 10; + dudes_hp[j] = 30; men += dudes_num[j]; } if (dudes[j] = "Kroot") { @@ -1108,7 +1126,7 @@ if __b__ { if (dudes[j] = "Vespid") { scr_en_weapon("Vespid Crystal", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee2", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 5; dudes_hp[j] = 50; men += dudes_num[j]; } @@ -1117,14 +1135,16 @@ if __b__ { scr_en_weapon("Smart Missile System", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 150; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Hammerhead") { scr_en_weapon("Railgun", false, dudes_num[j], dudes[j], j); scr_en_weapon("Smart Missile System", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; - dudes_hp[j] = 250; + dudes_ac[j] = 30; + dudes_hp[j] = 150; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1141,51 +1161,52 @@ if __b__ { scr_en_weapon("Bonesword", true, dudes_num[j], dudes[j], j); scr_en_weapon("Lashwhip", true, dudes_num[j], dudes[j], j); scr_en_weapon("Heavy Venom Cannon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 35; - dudes_hp[j] = 250; + dudes_ac[j] = 20; + dudes_hp[j] = 400; + dudes_dr[j] = 0.6; men += dudes_num[j]; } if (dudes[j] = "Tyrant Guard") { scr_en_weapon("Crushing Claws", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 100; + dudes_ac[j] = 15; + dudes_hp[j] = 200; + dudes_dr[j] = 0.4; men += dudes_num[j]; } if (dudes[j] = "Tyranid Warrior") { scr_en_weapon("Rending Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Devourer", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 10; dudes_hp[j] = 100; men += dudes_num[j]; } if (dudes[j] = "Zoanthrope") { scr_en_weapon("Zoanthrope Blast", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; - dudes_hp[j] = 200; - dudes_dr[j] = 0.5; - medi += dudes_num[j]; - dudes_vehicle[j] = 1.5; + dudes_ac[j] = 10; + dudes_hp[j] = 300; + dudes_dr[j] = 0.75; + men += dudes_num[j]; } if (dudes[j] = "Carnifex") { scr_en_weapon("Carnifex Claws", false, dudes_num[j], dudes[j], j); scr_en_weapon("Venom Cannon", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 20; dudes_hp[j] = 300; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Termagaunt") { scr_en_weapon("Fleshborer", true, dudes_num[j] / 10, dudes[j], j); - dudes_ac[j] = 0; - dudes_hp[j] = 20; + dudes_ac[j] = 5; + dudes_hp[j] = 25; men += dudes_num[j]; } if (dudes[j] = "Hormagaunt") { scr_en_weapon("Scything Talons", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 0; - dudes_hp[j] = 20; + dudes_ac[j] = 5; + dudes_hp[j] = 25; men += dudes_num[j]; } @@ -1193,20 +1214,20 @@ if __b__ { scr_en_weapon("Autogun", true, dudes_num[j], dudes[j], j); scr_en_weapon("melee0.5", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 0; - dudes_hp[j] = 20; + dudes_hp[j] = 35; men += dudes_num[j]; } if (dudes[j] = "Genestealer") { scr_en_weapon("Genestealer Claws", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; - dudes_hp[j] = 50; + dudes_ac[j] = 5; + dudes_hp[j] = 75; men += dudes_num[j]; } if (dudes[j] = "Genestealer Patriarch") { scr_en_weapon("Genestealer Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Witchfire", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 150; + dudes_ac[j] = 10; + dudes_hp[j] = 300; dudes_dr[j] = 0.75; men += dudes_num[j]; } @@ -1214,18 +1235,19 @@ if __b__ { scr_en_weapon("Autogun", false, dudes_num[j] * 4, dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 150; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Lictor") { scr_en_weapon("Lictor Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Flesh Hooks", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 150; + dudes_ac[j] = 10; + dudes_hp[j] = 300; + dudes_dr[j] = 0.75; men += dudes_num[j]; } - dudes_dr[j] += 0.25; } /* */ @@ -1240,21 +1262,21 @@ if __b__ { if (dudes[j] = "Leader") and(obj_controller.faction_gender[10] = 1) { scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 20; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 300; } men += dudes_num[j]; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.75; } if (dudes[j] = "Leader") and(obj_controller.faction_gender[10] = 2) { scr_en_weapon("Khorne Demon Melee", true, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 44; + dudes_ac[j] = 20; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 300; } men += dudes_num[j]; - dudes_dr[j] = 0.4; + dudes_dr[j] = 0.75; } if (dudes[j] = "Fallen") { @@ -1269,23 +1291,26 @@ if __b__ { if (dudes[j] = "Chaos Lord") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 20; dudes_hp[j] = 150; + dudes_dr[j] = 0.5; men += dudes_num[j]; } if (dudes[j] = "Chaos Sorcerer") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Force Staff", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 25; + dudes_ac[j] = 20; dudes_hp[j] = 100; + dudes_dr[j] = 0.5; men += dudes_num[j]; } if (dudes[j] = "Warpsmith") { scr_en_weapon("Chainfist", true, dudes_num[j], dudes[j], j); scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Flamer", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 20; dudes_hp[j] = 100; + dudes_dr[j] = 0.5; men += dudes_num[j]; } @@ -1296,7 +1321,7 @@ if __b__ { dudes_ac[j] = 40; dudes_hp[j] = 100; men += dudes_num[j]; - dudes_dr[j] = 0.7; + dudes_dr[j] = 0.5; } if (dudes[j] = "Venerable Chaos Terminator") { scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j); @@ -1318,14 +1343,15 @@ if __b__ { if (dudes[j] = "Obliterator") { scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j); scr_en_weapon("Obliterator Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 40; dudes_hp[j] = 200; + dudes_dr[j] = 0.5; men += dudes_num[j]; } if (dudes[j] = "Chaos Chosen") { scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 17; + dudes_ac[j] = 20; dudes_hp[j] = 125; men += dudes_num[j]; } @@ -1335,13 +1361,14 @@ if __b__ { dudes_ac[j] = 20; dudes_hp[j] = 125; men += dudes_num[j]; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; } if (dudes[j] = "Possessed") { scr_en_weapon("Possessed Claws", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 17; dudes_hp[j] = 150; + dudes_dr[j] = 0.5; men += dudes_num[j]; } if (dudes[j] = "Chaos Space Marine") { @@ -1363,6 +1390,7 @@ if __b__ { scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; + dudes_dr[j] = 0.25; dudes_special[j] = "Jump Pack"; men += dudes_num[j]; } @@ -1372,6 +1400,7 @@ if __b__ { scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; + dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "World Eaters Veteran") { @@ -1379,6 +1408,7 @@ if __b__ { scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; + dudes_dr[j] = 0.3; men += dudes_num[j]; } @@ -1387,6 +1417,7 @@ if __b__ { scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; + dudes_dr[j] = 0.35; men += dudes_num[j]; } if (dudes[j] = "Plague Marine") { @@ -1394,6 +1425,7 @@ if __b__ { scr_en_weapon("Poison Chainsword", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 150; + dudes_dr[j] = 0.5; men += dudes_num[j]; } if (dudes[j] = "Noise Marine") { @@ -1401,27 +1433,30 @@ if __b__ { scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; + dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "Rubric Marine") { scr_en_weapon("Rubric Bolter", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 25; + dudes_ac[j] = 20; dudes_hp[j] = 125; + dudes_dr[j] = 0.35; men += dudes_num[j]; } if (dudes[j] = "Rubric Sorcerer") { scr_en_weapon("Witchfire", true, dudes_num[j], dudes[j], j); scr_en_weapon("Force Staff", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 25; + dudes_ac[j] = 20; dudes_hp[j] = 150; + dudes_dr[j] = 0.5; men += dudes_num[j]; } if (dudes[j] = "Cultist") { scr_en_weapon("Autogun", true, dudes_num[j], dudes[j], j); scr_en_weapon("melee0.5", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 0; - dudes_hp[j] = 30; + dudes_ac[j] = 5; + dudes_hp[j] = 35; men += dudes_num[j]; } if (dudes[j] = "Hellbrute") { @@ -1435,39 +1470,44 @@ if __b__ { } if (dudes[j] = "Rhino") { scr_en_weapon("Storm Bolter", false, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 40; dudes_hp[j] = 200; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Predator") { scr_en_weapon("Lascannon", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Twin Linked Lascannon", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 45; dudes_hp[j] = 300; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Vindicator") { scr_en_weapon("Demolisher Cannon", false, dudes_num[j], dudes[j], j); scr_en_weapon("Havoc Launcher", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 45; dudes_hp[j] = 300; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Land Raider") { scr_en_weapon("Twin Linked Heavy Bolters", false, dudes_num[j], dudes[j], j); scr_en_weapon("Twin Linked Lascannon", false, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 50; dudes_hp[j] = 400; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Heldrake") { scr_en_weapon("Baleflame", false, dudes_num[j] * 5, dudes[j], j); - dudes_ac[j] = 25; + dudes_ac[j] = 50; dudes_hp[j] = 400; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1478,6 +1518,7 @@ if __b__ { scr_en_weapon("Flamer", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 300; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1485,16 +1526,16 @@ if __b__ { if (dudes[j] = "Arch Heretic") { scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 30; - dudes_dr[j] = 0.7; + dudes_ac[j] = 10; + dudes_hp[j] = 40; + dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "Cultist Elite") { scr_en_weapon("Lasgun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; - dudes_hp[j] = 20; + dudes_hp[j] = 40; men += dudes_num[j]; } if (dudes[j] = "Mutant") { @@ -1506,14 +1547,14 @@ if __b__ { if (dudes[j] = "Daemonhost") { scr_en_weapon("Daemonhost Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Daemonhost_Powers", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 10; dudes_hp[j] = 300; dudes_dr[j] = 0.5; medi += dudes_num[j]; } if (dudes[j] = "Possessed") { scr_en_weapon("Possessed Claws", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 17; + dudes_ac[j] = 10; dudes_hp[j] = 100; men += dudes_num[j]; } @@ -1530,6 +1571,7 @@ if __b__ { scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 100; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1537,8 +1579,9 @@ if __b__ { if (dudes[j] = "Chaos Leman Russ") { scr_en_weapon("Battle Cannon", false, dudes_num[j], dudes[j], j); scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 45; dudes_hp[j] = 250; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1574,53 +1617,59 @@ if __b__ { scr_en_weapon("Staff of Light", true, dudes_num[j], dudes[j], j); scr_en_weapon("Staff of Light Shooting", true, dudes_num[j], dudes[j], j); if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { - dudes_ac[j] = 25; + dudes_ac[j] = 10; dudes_hp[j] = 300; + dudes_dr[j] = 0.5; } men += dudes_num[j]; } if (dudes[j] = "Lychguard") { scr_en_weapon("Warscythe", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 35; + dudes_ac[j] = 15; dudes_hp[j] = 100; + dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "Flayed One") { scr_en_weapon("Melee5", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 25; + dudes_ac[j] = 10; dudes_hp[j] = 100; + dudes_dr[j] = 0.1; men += dudes_num[j]; } if (dudes[j] = "Necron Warrior") { scr_en_weapon("Gauss Flayer", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee3", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 25; + dudes_ac[j] = 10; dudes_hp[j] = 100; + dudes_dr[j] = 0.1; men += dudes_num[j]; } if (dudes[j] = "Necron Immortal") { scr_en_weapon("Gauss Blaster", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee3", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 25; + dudes_ac[j] = 12; dudes_hp[j] = 100; + dudes_dr[j] = 0.15; men += dudes_num[j]; } if (dudes[j] = "Necron Wraith") { scr_en_weapon("Wraith Claws", true, dudes_num[j], dudes[j], j); if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { - dudes_ac[j] = 25; + dudes_ac[j] = 10; dudes_hp[j] = 200; } men += dudes_num[j]; - dudes_dr[j] = 0.65; + dudes_dr[j] = 0.25; } if (dudes[j] = "Necron Destroyer") { scr_en_weapon("Gauss Cannon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee3", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 25; dudes_hp[j] = 175; + dudes_dr[j] = 0.5; men += dudes_num[j]; } @@ -1629,9 +1678,10 @@ if __b__ { scr_en_weapon("Overcharged Gauss Cannon", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Claws", false, dudes_num[j] * 5, dudes[j], j); if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { - dudes_ac[j] = 30; + dudes_ac[j] = 40; dudes_hp[j] = 600; } + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1641,6 +1691,7 @@ if __b__ { dudes_ac[j] = 30; dudes_hp[j] = 300; } + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1648,14 +1699,16 @@ if __b__ { scr_en_weapon("Melee3", false, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 30; + dudes_dr[j] = 0.25; men += dudes_num[j]; dudes_vehicle[j] = 0; } if (dudes[j] = "Necron Monolith") { scr_en_weapon("Gauss Flux Arc", false, dudes_num[j] * 4, dudes[j], j); scr_en_weapon("Particle Whip", false, dudes_num[j] * 1, dudes[j], j); - dudes_ac[j] = 70; - dudes_hp[j] = 300; + dudes_ac[j] = 50; + dudes_hp[j] = 500; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; // was 50 / 500 @@ -1665,6 +1718,7 @@ if __b__ { scr_en_weapon("Doomsday Cannon", false, dudes_num[j] * 1, dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 150; + dudes_dr[j] = 0.3; veh += dudes_num[j]; dudes_vehicle[j] = 1; } diff --git a/scripts/scr_en_weapon/scr_en_weapon.gml b/scripts/scr_en_weapon/scr_en_weapon.gml index 49c1f41a96..f424ffc980 100644 --- a/scripts/scr_en_weapon/scr_en_weapon.gml +++ b/scripts/scr_en_weapon/scr_en_weapon.gml @@ -36,7 +36,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (name = "Venom Claws") { atta = 200; - arp = 0; + arp = -1; rang = 1; spli = 0; if (obj_ini.preomnor = 1) { @@ -52,19 +52,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Warpsword") { atta = 300; - arp = 1; + arp = -2; rang = 1; spli = 3; } if (name = "Iron Claw") { atta = 400; - arp = 1; + arp = -2; rang = 1; spli = 0; } if (name = "Maulerfiend Claws") { atta = 300; - arp = 300; + arp = 1; rang = 1; spli = 3; } @@ -76,19 +76,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Bloodletter Melee") { atta = 70; - arp = 0; + arp = -1; rang = 1; spli = 3; } if (name = "Daemonette Melee") { atta = 65; - arp = 0; + arp = -1; rang = 1; spli = 3; } if (name = "Plaguebearer Melee") { atta = 60; - arp = 0; + arp = -1; rang = 1; spli = 3; if (obj_ini.preomnor = 1) { @@ -97,13 +97,13 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Khorne Demon Melee") { atta = 350; - arp = 1; + arp = -2; rang = 1; spli = 3; } if (name = "Demon Melee") { atta = 250; - arp = 1; + arp = -2; rang = 1; spli = 3; } @@ -132,7 +132,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 3) { if (name = "Phased Plasma-fusil") { atta = 100; - arp = 1; + arp = -2; rang = 7.1; spli = 3; } @@ -144,7 +144,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Thallax Melee") { atta = 80; - arp = 0; + arp = -1; rang = 1; spli = 3; } @@ -160,19 +160,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Singing Spear") { atta = 120; - arp = 0; + arp = -1; rang = 1; spli = 3; } if (argument0 = "Singing Spear Throw") { atta = 120; - arp = 1; + arp = -1; rang = 2; spli = 3; } if (argument0 = "Witchblade") { atta = 100; - arp = 1; + arp = -1; rang = 1; } if (argument0 = "Psyshock") { @@ -194,43 +194,43 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Ranger Long Rifle") { atta = 60; - arp = 0; + arp = -1; rang = 25; } if (argument0 = "Pathfinder Long Rifle") { atta = 70; - arp = 0; + arp = -1; rang = 25; } if (argument0 = "Shuriken Catapult") { atta = 35; - arp = 0; + arp = -1; rang = 2; } if (argument0 = "Twin Linked Shuriken Catapult") { atta = 50; - arp = 0; + arp = -1; rang = 2; } if (argument0 = "Avenger Shuriken Catapult") { atta = 40; - arp = 0; + arp = -1; rang = 3; } if (argument0 = "Power Weapon") or(argument0 = "Power Blades") { atta = 80; - arp = 0; + arp = -1; rang = 1; spli = 3; } if (argument0 = "Shuriken Pistol") { atta = 25; - arp = 0; + arp = -1; rang = 2.1; } if (argument0 = "Executioner") { atta = 200; - arp = 1; + arp = -2; rang = 1; } if (argument0 = "Scorpion Chainsword") { @@ -246,19 +246,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Biting Blade") { atta = 70; - arp = 0; + arp = -1; rang = 1; spli = 3; } if (argument0 = "Scorpian's Claw") { atta = 150; - arp = 1; + arp = -2; rang = 1; spli = 3; } if (argument0 = "Meltabomb") { - atta = 0; - arp = 200; + atta = 200; + arp = 1; rang = 1; amm = 1; } @@ -274,21 +274,21 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Reaper Launcher") { atta = 150; - arp = 80; + arp = -2; rang = 20; amm = 8; spli = 3; } if (argument0 = "Eldar Missile Launcher") { atta = 200; - arp = 1; + arp = -1; rang = 20; amm = 4; spli = 3; } if (argument0 = "Laser Lance") { atta = 80; - arp = 0; + arp = -2; rang = 2; spli = 3; } @@ -300,7 +300,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Plasma Pistol") { atta = 60; - arp = 1; + arp = -2; rang = 3.1; } if (argument0 = "Harlequin's Kiss") { @@ -316,7 +316,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Pulse Laser") { atta = 80; - arp = 1; + arp = 0; rang = 15; } if (argument0 = "Bright Lance") { @@ -326,7 +326,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Shuriken Cannon") { atta = 65; - arp = 0; + arp = -1; rang = 3; } if (argument0 = "Prism Cannon") { @@ -381,7 +381,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Power Klaw") { atta = 150; - arp = 1; + arp = -1; rang = 1; spli = 3; } @@ -401,21 +401,21 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Big Shoota") { atta = 100; - arp = 0; + arp = -1; rang = 12; amm = 30; spli = 0; } if (argument0 = "Dakkagun") { - atta = 150; - arp = 0; + atta = 200; + arp = -1; rang = 10; amm = 20; spli = 0; } if (argument0 = "Deffgun") { atta = 120; - arp = 0; + arp = -2; rang = 8; amm = 20; spli = 0; @@ -434,7 +434,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Kannon") { atta = 200; - arp = 1; + arp = -1; rang = 10.1; amm = 5; spli = 3; @@ -446,21 +446,21 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Burna") { atta = 140; - arp = 1; + arp = 0; rang = 2; amm = 4; spli = 3; } if (argument0 = "Skorcha") { atta = 160; - arp = 1; + arp = -1; rang = 2; amm = 6; spli = 3; } if (argument0 = "Rokkit Launcha") { atta = 150; - arp = 1; + arp = -1; rang = 15; spli = 3; } @@ -482,56 +482,56 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Plasma Rifle") { atta = 120; - arp = 1; + arp = -2; rang = 10; } if (name = "Cyclic Ion Blaster") { atta = 180; - arp = 0; + arp = -1; rang = 6; spli = 3; } // x6 if (name = "Burst Rifle") { atta = 130; - arp = 0; + arp = -1; rang = 16; spli = 3; } if (name = "Missile Pod") { atta = 160; - arp = 1; + arp = -1; rang = 15; amm = 6; spli = 3; } if (name = "Smart Missile System") { atta = 150; - arp = 1; + arp = -1; rang = 15; } if (name = "Small Railgun") { atta = 150; - arp = 1; + arp = -2; rang = 18; } if (name = "Pulse Rifle") { - atta = 37; + atta = 100; arp = 0; rang = 12; } if (name = "Rail Rifle") { atta = 65; - arp = 0; + arp = 1; rang = 14; } if (name = "Kroot Rifle") { - atta = 25; + atta = 75; arp = 0; rang = 6; } if (name = "Vespid Crystal") { atta = 60; - arp = 0; + arp = -2; rang = 2.1; } if (name = "Railgun") { @@ -545,7 +545,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Bonesword") { atta = 120; - arp = 0; + arp = -2; rang = 1; spli = 3; } @@ -556,11 +556,11 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Heavy Venom Cannon") { atta = 150; - arp = 1; + arp = -2; rang = 8; } if (argument0 = "Crushing Claws") { - atta = 90; + atta = 100; arp = 1; rang = 1; spli = 3; @@ -581,7 +581,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Zoanthrope Blast") { atta = 200; - arp = 1; + arp = -2; rang = 2; } if (argument0 = "Carnifex Claws") { @@ -592,12 +592,12 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Venom Cannon") { atta = 150; - arp = 0; + arp = -2; rang = 5; } if (argument0 = "Deathspitter") { atta = 100; - arp = 0; + arp = -2; rang = 2.1; if (obj_ini.preomnor = 1) { atta = 120; @@ -612,13 +612,13 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } } if (argument0 = "Scything Talons") { - atta = 30; - arp = 0; + atta = 50; + arp = -1; rang = 1; } if (argument0 = "Genestealer Claws") { atta = choose(105, 105, 130); - arp = 1; + arp = -2; rang = 1; } if (argument0 = "Witchfire") { @@ -635,7 +635,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Lictor Claws") { atta = 300; - arp = 0; + arp = -2; rang = 1; } if (argument0 = "Flesh Hooks") { @@ -651,27 +651,27 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Plasma Pistol") { atta = 70; - arp = 1; + arp = -2; rang = 3.1; } if (argument0 = "Power Weapon") { atta = 120; - arp = 0; + arp = -1; rang = 1; } if (argument0 = "Power Sword") { atta = 120; - arp = 0; + arp = -1; rang = 1; } if (argument0 = "Force Weapon") { atta = 400; - arp = 1; + arp = -1; rang = 1; } if (argument0 = "Chainfist") { atta = 300; - arp = 1; + arp = -2; rang = 1; spli = 3; } @@ -690,7 +690,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Heavy Flamer") { atta = 250; - arp = 0; + arp = -1; rang = 2.1; amm = 6; spli = 3; @@ -711,18 +711,18 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } // Bursts if (argument0 = "Power Fist") { atta = 425; - arp = 1; + arp = -2; rang = 1; } if (argument0 = "Possessed Claws") { atta = 250; - arp = 1; + arp = -1; rang = 1; spli = 3; } if (argument0 = "Missile Launcher") { atta = 200; - arp = 1; + arp = -1; rang = 20; amm = 4; spli = 3; @@ -753,19 +753,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Sonic Blaster") { atta = 120; - arp = 0; + arp = -1; rang = 3; spli = 3; } if (argument0 = "Rubric Bolter") { atta = 80; - arp = 0; + arp = -1; rang = 12; amm = 15; } // Bursts if (argument0 = "Witchfire") { atta = 200; - arp = 1; + arp = -2; rang = 5.1; } if (argument0 = "Autogun") { @@ -789,13 +789,13 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Twin Linked Heavy Bolters") { atta = 240; - arp = 0; + arp = -1; rang = 16; spli = 3; } if (argument0 = "Twin-Linked Heavy Bolters") { atta = 240; - arp = 0; + arp = -1; rang = 16; spli = 3; } @@ -811,18 +811,18 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Battle Cannon") { atta = 300; - arp = 1; + arp = -1; rang = 12; } if (argument0 = "Demolisher Cannon") { atta = 500; - arp = 1; + arp = -2; rang = 2; if (instance_exists(obj_nfort)) then rang = 5; } if (argument0 = "Earthshaker Cannon") { atta = 300; - arp = 0; + arp = -1; rang = 12; spli = 3; } @@ -844,7 +844,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Reaper Autocannon") { atta = 320; - arp = 0; + arp = -1; rang = 18; amm = 10; spli = 3; @@ -852,14 +852,14 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (name = "Ripper Gun") { atta = 40; - arp = 0; + arp = -1; rang = 3; amm = 5; spli = 0; } if (name = "Ogryn Melee") { atta = 90; - arp = 0; + arp = -1; rang = 1; } if (name = "Multi-Laser") { @@ -870,18 +870,18 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Blessed Weapon") { atta = 150; - arp = 1; + arp = -2; rang = 1; } if (argument0 = "Electro-Flail") { atta = 125; - arp = 1; + arp = -1; rang = 1; spli = 3; } if (argument0 = "Neural Whip") { atta = 85; - arp = 0; + arp = -1; rang = 1; spli = 3 } @@ -892,18 +892,18 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Seraphim Pistols") { atta = 200; - arp = 1; + arp = -1; rang = 4; } if (argument0 = "Laser Mace") { atta = 200; - arp = 1; + arp = -1; rang = 5.1; amm = 3; } if (argument0 = "Heavy Bolter") { atta = 120; - arp = 0; + arp = -1; rang = 16; spli = 0; } @@ -931,19 +931,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 13) { // Some of these, like the Gauss Particle Cannon and Particle Whip, used to be more than twice as strong. if (name = "Staff of Light") { atta = 200; - arp = 1; + arp = -2; rang = 1; spli = 3; } if (name = "Staff of Light Shooting") { atta = 180; - arp = 0; + arp = -2; rang = 3; spli = 3; } if (name = "Warscythe") { atta = 200; - arp = 1; + arp = -2; rang = 1; spli = 0; } @@ -961,13 +961,13 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Gauss Cannon") { atta = 180; - arp = 1; + arp = -2; rang = 10; spli = 3; } if (name = "Gauss Particle Cannon") { atta = 300; - arp = 1; + arp = -2; rang = 10.1; spli = 3; } @@ -979,31 +979,31 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Wraith Claws") { atta = 80; - arp = 1; + arp = -1; rang = 1; spli = 0; } if (name = "Claws") { atta = 300; - arp = 1; + arp = -1; rang = 1; spli = 0; } if (name = "Gauss Flux Arc") { atta = 180; - arp = 1; + arp = -1; rang = 8; spli = 3; } if (name = "Particle Whip") { atta = 300; - arp = 1; + arp = -1; rang = 4.1; spli = 3; } if (name = "Gauss Flayer Array") { atta = 180; - arp = 1; + arp = 0; rang = 8.1; spli = 3; } diff --git a/scripts/scr_shoot/scr_shoot.gml b/scripts/scr_shoot/scr_shoot.gml index 49c90ac9cd..e1665d5411 100644 --- a/scripts/scr_shoot/scr_shoot.gml +++ b/scripts/scr_shoot/scr_shoot.gml @@ -271,8 +271,8 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat if (armour_pierce = -2) then target_armour_value = target_armour_value * 2; } else { if (armour_pierce = 1) then target_armour_value = 0; - if (armour_pierce = 0) then target_armour_value = target_armour_value * 4; - if (armour_pierce = -1) then target_armour_value = target_armour_value * 3; + if (armour_pierce = 0) then target_armour_value = target_armour_value * 3; + if (armour_pierce = -1) then target_armour_value = target_armour_value * 2; if (armour_pierce = -2) then target_armour_value = target_armour_value * 1.5; } @@ -363,8 +363,8 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat target_armour_value2 = target_object.dudes_ac[godd]; if (target_object.dudes_vehicle[godd] = 0) { if (ap2 = 1) then target_armour_value2 = 0; - if (ap2 = 0) then target_armour_value2 = target_armour_value2 * 4; - if (ap2 = -1) then target_armour_value2 = target_armour_value2 * 3; + if (ap2 = 0) then target_armour_value2 = target_armour_value2 * 3; + if (ap2 = -1) then target_armour_value2 = target_armour_value2 * 2; if (ap2 = -2) then target_armour_value2 = target_armour_value2 * 1.5; } if (target_object.dudes_vehicle[godd] = 1) { diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 2be38fdafb..2876480038 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -281,7 +281,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 2, - "arp": 1, + "arp": -2, "tags": ["power", "axe", "martial"], }, "Power Fist": { @@ -351,7 +351,7 @@ global.weapons = { "range": 1, "spli": 2, "arp": -2, - "second_profiles": ["Integrated Bolter"], + "second_profiles": ["Integrated-Bolter"], "tags": ["power", "fist", "savage", "boarding 2"], }, "Assault Chainfist": { @@ -568,30 +568,30 @@ global.weapons = { "Bolt Pistol": { "abbreviation": "BltPstl", "attack": { - "standard": 100, - "master_crafted": 120, - "artifact": 150 + "standard": 150, + "master_crafted": 175, + "artifact": 200 }, "description": "A smaller, more compact version of the venerable Boltgun. This model is produced in the standard Godwyn pattern.", "melee_hands": 0, "ranged_hands": 1, "ammo": 18, "range": 4.1, - "spli": 3, + "spli": 2, "arp": 0, "tags": ["bolt", "pistol", "boarding 1"], }, "Wrist-Mounted Storm Bolter": { // TODO: Not used outside of this file atm; "abbreviation": "WrstBlt", "attack": { - "standard": 200, - "master_crafted": 240, - "artifact": 300 + "standard": 275, + "master_crafted": 300, + "artifact": 350 }, "description": "A smaller, more compact version of the venerable Boltgun. This model is produced in the standard Godwyn pattern.", "melee_hands": 0, "ranged_hands": 1, - "ammo": 18, + "ammo": 10, "range": 4.1, "spli": 6, "arp": 0, @@ -967,6 +967,22 @@ global.weapons = { "arp": -1, "tags": ["precision", "rifle"] }, + "Needle Sniper Rifle": { + "abbreviation": "SnprRfl", + "attack": { + "standard": 250, + "master_crafted": 300, + "artifact": 350 + }, + "description": "The Sniper Rifle fires a solid shell over long range and boasts powerful telescopic sights to assist, allowing the user to target enemy weak points and distant foes.", + "melee_hands": 1, + "ranged_hands": 2, + "ammo": 20, + "range": 14, + "spli": 1, + "arp": -1, + "tags": ["precision", "rifle"] + }, "Assault Cannon": { "abbreviation": "AssCann", "attack": { @@ -980,7 +996,7 @@ global.weapons = { "ammo": 5, "range": 12, "spli": 20, - "arp": 0, + "arp": -1, "tags": ["heavy_ranged", "dreadnought"] }, "Autocannon": { @@ -1076,7 +1092,7 @@ global.weapons = { "ammo": 20, "range": 16, "spli": 28, - "arp": 0, + "arp": -1, "tags": ["bolt", "heavy_ranged", "vehicle", "dreadnought"] }, "Twin Linked Lascannon": { @@ -1108,7 +1124,7 @@ global.weapons = { "ammo": 10, "range": 14, "spli": 12, - "arp": 0, + "arp": -1, "tags": ["heavy_ranged", "bolt"] }, "Whirlwind Missiles": { @@ -1145,7 +1161,7 @@ global.weapons = { "ammo": 20, "range": 16, "spli": 21, - "arp": 0, + "arp": -1, "tags": ["vehicle", "dreadnought", "heavy_ranged", "bolt"] }, "Twin Linked Lascannon Mount": { @@ -1177,7 +1193,7 @@ global.weapons = { "ammo": 6, "range": 12, "spli": 40, - "arp": 0, + "arp": -1, "tags": ["vehicle","heavy_ranged", "pintle", "dreadnought"] }, "Reaper Autocannon Mount": { @@ -1209,7 +1225,7 @@ global.weapons = { "ammo": 15, "range": 16, "spli": 50, - "arp": 0, + "arp": -1, "tags": ["bolt","heavy_ranged", "vehicle", "sponson"] }, "Twin Linked Lascannon Sponsons": { @@ -1321,7 +1337,7 @@ global.weapons = { "ammo": 8, "range": 4.1, "spli": 20, - "arp": -2, + "arp": 1, "tags": ["vehicle","heavy_ranged", "Sponson", "melta"], "maintenance" : 0.05, }, @@ -1354,7 +1370,7 @@ global.weapons = { "ammo": 20, "range": 14, "spli": 28, - "arp": 0, + "arp": -1, "tags": ["heavy_ranged", "vehicle", "sponson", "bolt"] }, "Heavy Flamer Sponsons": { @@ -1475,7 +1491,7 @@ global.weapons = { "ranged_hands": 0, "ammo": 4, "range": 4.1, - "spli": 3, + "spli": 10, "arp": 0, "tags": ["flame", "attached"] }, @@ -1658,7 +1674,7 @@ global.weapons = { "ammo": 5, "range": 12, "spli": 40, - "arp": 0, + "arp": -1, "tags": ["heavy_ranged", "twin_linked", "vehicle", "turret"] }, "Flamestorm Cannon Turret": { @@ -1690,7 +1706,7 @@ global.weapons = { "ammo": 6, "range": 4.1, "spli": 20, - "arp": -2, + "arp": 1, "tags": ["vehicle","heavy_ranged", "turret", "melta"] }, "Plasma Destroyer Turret": { @@ -1706,7 +1722,7 @@ global.weapons = { "ammo": 16, "range": 14, "spli": 12, - "arp": -2, + "arp": 1, "tags": ["plasma", "energy","heavy_ranged", "vehicle", "turret"] }, "Heavy Conversion Beam Projector": { From a28d065e1de70a730753b942de34d74e3491fcfe Mon Sep 17 00:00:00 2001 From: Nelsonh <81228864+OH296@users.noreply.github.com> Date: Fri, 24 Jan 2025 20:49:41 +0000 Subject: [PATCH 03/47] fix: enemy and player close combat targeting (#457) --- objects/obj_enunit/Alarm_0.gml | 6 +-- objects/obj_enunit/Alarm_1.gml | 6 +-- objects/obj_ncombat/KeyPress_13.gml | 42 ++++++------------- objects/obj_pnunit/Alarm_0.gml | 5 +-- objects/obj_pnunit/Create_0.gml | 2 - scripts/scr_flavor/scr_flavor.gml | 30 ++++++------- .../scr_marine_struct/scr_marine_struct.gml | 4 +- .../scr_player_combat_weapon_stacks.gml | 31 +++++++++++++- scripts/scr_shoot/scr_shoot.gml | 9 ++-- 9 files changed, 68 insertions(+), 67 deletions(-) diff --git a/objects/obj_enunit/Alarm_0.gml b/objects/obj_enunit/Alarm_0.gml index 8c995e9fc8..c12692b733 100644 --- a/objects/obj_enunit/Alarm_0.gml +++ b/objects/obj_enunit/Alarm_0.gml @@ -41,7 +41,7 @@ else if (flank=1){ } //In melee check -engaged = point_distance(x,0,enemy.x,0)<=10 || !position_empty(x+flank?10:-10,y); +engaged = collision_point(x-10, y, obj_pnunit, 0, 1) || collision_point(x+10, y, obj_pnunit, 0, 1); show_debug_message($"enemy is in melee {engaged}") @@ -253,7 +253,7 @@ else if ((engaged || enemy.engaged) and target_block_is_valid( enemy,obj_pnunit) if (apa[i]=0) or (apa[i]0) then _armour_piercing=1;// Determines if it is _armour_piercing or not if (_armour_piercing) and (instance_exists(obj_nfort)) and (!flank){// Huff and puff and blow the wall down @@ -272,7 +272,7 @@ else if ((engaged || enemy.engaged) and target_block_is_valid( enemy,obj_pnunit) if (!good) then _armour_piercing=0;// Fuck it, shoot at infantry } - if (!_armour_piercing) and (target_block_is_valid(enemy)){// Check for men + if (!_armour_piercing) {// Check for men // show_message(string(wep[i])); var enemy2,g=0,good=0; if ((enemy.men)){ diff --git a/objects/obj_enunit/Alarm_1.gml b/objects/obj_enunit/Alarm_1.gml index 5d74eaac96..39f611d6d4 100644 --- a/objects/obj_enunit/Alarm_1.gml +++ b/objects/obj_enunit/Alarm_1.gml @@ -1750,16 +1750,14 @@ if (obj_ncombat.battle_special = "ruins") or(obj_ncombat.battle_special = "ruins */ if (men + veh + medi <= 0) { - instance_destroy(); + instance_destroy(id); exit; } if (obj_ncombat.started = 0) { obj_ncombat.enemy_forces += self.men + self.veh + self.medi; } - -if (!collision_point(x + 10, y, obj_pnunit, 0, 1)) and(!collision_point(x - 10, y, obj_pnunit, 0, 1)) then engaged = 0; -if (collision_point(x + 10, y, obj_pnunit, 0, 1)) or(collision_point(x - 10, y, obj_pnunit, 0, 1)) then engaged = 1; +engaged = (collision_point(x + 12, y, obj_pnunit, 0, 1)) or(collision_point(x - 12, y, obj_pnunit, 0, 1)); if (neww = 1) then neww = 0; diff --git a/objects/obj_ncombat/KeyPress_13.gml b/objects/obj_ncombat/KeyPress_13.gml index 5b81e982d4..f12f939de7 100644 --- a/objects/obj_ncombat/KeyPress_13.gml +++ b/objects/obj_ncombat/KeyPress_13.gml @@ -83,31 +83,21 @@ if (started>0){// This might be causing problems? if (instance_exists(obj_enunit)) then obj_enunit.alarm[8]=8; } -function reset_combat_message_arrays(){ - for (var i=0;i0) then global_perils-=4; if (global_perils<0) then global_perils=0; turns+=1; - four_show=0;click_stall_timer=15; + four_show=0; + click_stall_timer=15; // if (battle_over!=1) then alarm[8]=15; if (enemy!=6){ if (instance_exists(obj_enunit)){ obj_enunit.alarm[1]=1; } - if (instance_exists(obj_pnunit)){ - obj_pnunit.alarm[3]=2; - obj_pnunit.alarm[1]=3; - turn_count++; - obj_pnunit.alarm[0]=4; - } + set_up_player_blocks_turn(); // alarm[9]=5; } @@ -117,13 +107,12 @@ if (timer_stage=1) or (timer_stage=5){ obj_enunit.alarm[0]=3; } if (instance_exists(obj_pnunit)){ - obj_pnunit.alarm[1]=1; + wait_and_execute(1, scr_player_combat_weapon_stacks); turn_count++; } } - messages=0;messages_to_show=8;largest=0;random_messages=0;priority=0;messages_shown=0; - reset_combat_message_arrays(); - timer_stage=2;timer=0;done=0;messages_shown=0; + reset_combat_message_arrays(); + timer_stage=2; } @@ -134,7 +123,9 @@ else if (timer_stage=3){ if (enemy!=6){ if (instance_exists(obj_pnunit)){ - obj_pnunit.alarm[1]=1; + with(obj_pnunit){ + wait_and_execute(1, scr_player_combat_weapon_stacks); + } turn_count++; } if (instance_exists(obj_enunit)){ @@ -143,25 +134,16 @@ else if (timer_stage=3){ obj_enunit.alarm[8]=4; turns+=1; } - var messages=0;messages_to_show=8;largest=0;random_messages=0;priority=0;messages_shown=0; reset_combat_message_arrays(); - timer_stage=4;timer=0;done=0;messages_shown=0; } if (enemy=6){ - if (instance_exists(obj_pnunit)){ - obj_pnunit.alarm[3]=2; - obj_pnunit.alarm[1]=3; - turn_count++; - obj_pnunit.alarm[0]=4; - turns+=1; - } + set_up_player_blocks_turn(); + turns+=1; if (instance_exists(obj_enunit)){ obj_enunit.alarm[1]=1; } // alarm[9]=5; - var i;i=0;messages=0;messages_to_show=8;largest=0;random_messages=0;priority=0;messages_shown=0; reset_combat_message_arrays(); - timer_stage=4;timer=0;done=0;messages_shown=0; } } diff --git a/objects/obj_pnunit/Alarm_0.gml b/objects/obj_pnunit/Alarm_0.gml index 31d67dd0ac..0ce076d874 100644 --- a/objects/obj_pnunit/Alarm_0.gml +++ b/objects/obj_pnunit/Alarm_0.gml @@ -21,10 +21,9 @@ if (obj_ncombat.defending=false) or (obj_ncombat.dropping=1){ } if (!instance_exists(enemy)) then exit; -if (collision_point(x+10,y,obj_enunit,0,1)) or (collision_point(x-10,y,obj_enunit,0,1)) then engaged=1; -if (!collision_point(x+10,y,obj_enunit,0,1)) and (!collision_point(x-10,y,obj_enunit,0,1)) then engaged=0; +engaged = collision_point(x-14, y, obj_enunit, 0, 1) || collision_point(x+14, y, obj_enunit, 0, 1); -var once_only;once_only=0; +var once_only=0; var i=0,dist=999; var range_shoot=""; dist=point_distance(x,y,enemy.x,enemy.y)/10; diff --git a/objects/obj_pnunit/Create_0.gml b/objects/obj_pnunit/Create_0.gml index cb9991e35e..c40be967f7 100644 --- a/objects/obj_pnunit/Create_0.gml +++ b/objects/obj_pnunit/Create_0.gml @@ -110,5 +110,3 @@ hostile_type=0; hostile_splash=0; alarm[1]=4; - -action_set_alarm(1, 3); diff --git a/scripts/scr_flavor/scr_flavor.gml b/scripts/scr_flavor/scr_flavor.gml index dac3b6a7a7..c5b1382f9d 100644 --- a/scripts/scr_flavor/scr_flavor.gml +++ b/scripts/scr_flavor/scr_flavor.gml @@ -32,21 +32,21 @@ function scr_flavor(id_of_attacking_weapons, target, target_type, number_of_shot unit_name = "", cm_kill = 0; - // I don't understand how this part of code works, nor how it should work, but it doesn't seem to be working properly. - // if (id_of_attacking_weapons > 0) { - // if (array_length(wep_solo[id_of_attacking_weapons]) > 0) { - // character_shot = true; - // full_names = wep_solo[id_of_attacking_weapons]; - // if (wep_title[id_of_attacking_weapons] != "") { - // if (array_length(full_names) == 1) { - // unit_name = wep_title[id_of_attacking_weapons] + " " + wep_solo[id_of_attacking_weapons][0]; - // } else { - // unit_name = wep_title[id_of_attacking_weapons] + "'s" - // } - // } - // if (wep_solo[id_of_attacking_weapons][0] == obj_ini.master_name) then cm_kill = 1; - // } - // } + + if (id_of_attacking_weapons > 0) { + if (array_length(wep_solo[id_of_attacking_weapons]) > 0) { + character_shot = true; + full_names = wep_solo[id_of_attacking_weapons]; + if (wep_title[id_of_attacking_weapons] != "") { + if (array_length(full_names) == 1) { + unit_name = wep_title[id_of_attacking_weapons] + " " + wep_solo[id_of_attacking_weapons][0]; + } else { + unit_name = wep_title[id_of_attacking_weapons] + "'s" + } + } + if (wep_solo[id_of_attacking_weapons][0] == obj_ini.master_name) then cm_kill = 1; + } + } if (obj_ncombat.battle_special = "WL10_reveal") or (obj_ncombat.battle_special = "WL10_later") { if (target_name = "Veteran Chaos Terminator") and (target_name > 0) then obj_ncombat.chaos_angry += casulties * 2; diff --git a/scripts/scr_marine_struct/scr_marine_struct.gml b/scripts/scr_marine_struct/scr_marine_struct.gml index 7c7db6ca23..91f4c84a46 100644 --- a/scripts/scr_marine_struct/scr_marine_struct.gml +++ b/scripts/scr_marine_struct/scr_marine_struct.gml @@ -1437,8 +1437,7 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data={}) primary_weapon=new EquipmentStruct({},"");//create blank weapon struct primary_weapon.attack=strength/3;//calculate damage from player fists primary_weapon.name="fists"; - primary_weapon.range = 1; - primary_weapon.ammo = -1; + primary_weapon.range = 1; } else { if (!valid1 && valid2){ primary_weapon=_wep2; @@ -1580,7 +1579,6 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data={}) wrath.attack=(strength*2) +(0.5*weapon_skill); wrath.name = "hammer_of_wrath"; wrath.range = 1; - wrath.ammo = -1; return wrath; } diff --git a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml index c76c1a3fa2..f07e194a71 100644 --- a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml +++ b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml @@ -122,7 +122,7 @@ function scr_player_combat_weapon_stacks() { if (marine_casting[g]>=0) then marine_casting[g]=0; if (marine_casting[g]<0) then marine_casting[g]+=1;//timer for libs to be able to cast - if (unit.hp()>0) then marine_dead[g]=0; + if (unit.hp()>0) then marine_dead[g]=false; if (unit.hp()>0 && marine_dead[g]!=true){ var head_role = unit.IsSpecialist(); var armour_data = unit.get_armour_data(); @@ -151,7 +151,6 @@ function scr_player_combat_weapon_stacks() { var stack_index = find_stack_index("hammer_of_wrath", head_role, unit); if (stack_index > -1){ add_data_to_stack(stack_index, unit.hammer_of_wrath(), false, head_role, unit); - ammo[stack_index] = -1; if (head_role){ player_head_role_stack(stack_index, unit); } @@ -302,6 +301,34 @@ function scr_player_combat_weapon_stacks() { } } +function set_up_player_blocks_turn(){ + if (instance_exists(obj_pnunit)){ + with (obj_pnunit){ + alarm[3]=2; + wait_and_execute(3, scr_player_combat_weapon_stacks); + alarm[0]=4; + } + } + turn_count++; +} + +function reset_combat_message_arrays(){ + messages=0; + messages_to_show=8; + largest=0; + random_messages=0; + priority=0; + messages_shown=0; + for (var i=0;i ((target_object.veh + target_object.dreads) * 5)) { doom = ((target_object.veh + target_object.dreads) * 5) / shots_fired; @@ -133,9 +135,6 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat damage_per_weapon = floor((doom * damage_per_weapon)); hit_number = floor(hit_number * doom); } - if (melee_or_ranged != "wall") { - shots_fired *= attack_count_mod; - } if (damage_per_weapon = 0) then damage_per_weapon = shots_fired * doom; @@ -202,7 +201,7 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat } if (weapon_index_position >= 0) { - if (ammo[weapon_index_position] = 0) then stop = 1; + if (ammo[weapon_index_position] == 0) then stop = 1; if (ammo[weapon_index_position] > 0) then ammo[weapon_index_position] -= 1; } if (wep[weapon_index_position] == "Missile Silo") then obj_ncombat.player_silos -= min(obj_ncombat.player_silos, 30); From d6533da4156813634053a098ea698ad94bc8fd0f Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Mon, 10 Feb 2025 16:40:59 +0900 Subject: [PATCH 04/47] drop maint. value changes --- datafiles/main/chapters/8.JSON | 2 +- .../scr_equipment_struct.gml | 4 +- .../scr_initialize_custom.gml | 50 ++++++------- scripts/scr_weapon/scr_weapon.gml | 73 ++++++++++++++----- 4 files changed, 83 insertions(+), 46 deletions(-) diff --git a/datafiles/main/chapters/8.JSON b/datafiles/main/chapters/8.JSON index 5a53582dbf..cfccd20ae1 100644 --- a/datafiles/main/chapters/8.JSON +++ b/datafiles/main/chapters/8.JSON @@ -226,7 +226,7 @@ "custom_roles": { "veteran": { "name": "Firedrake", - "wep1": "Power Sword" + "wep2": "Power Sword" }, "veteran_sergeant": { "name": "Firedrake Master" diff --git a/scripts/scr_equipment_struct/scr_equipment_struct.gml b/scripts/scr_equipment_struct/scr_equipment_struct.gml index 61f4a19bb3..29ca8eca82 100644 --- a/scripts/scr_equipment_struct/scr_equipment_struct.gml +++ b/scripts/scr_equipment_struct/scr_equipment_struct.gml @@ -49,7 +49,7 @@ function EquipmentStruct(item_data, core_type,quality="none") constructor{ if (maintenance == 0){ if (has_tags(["heavy_ranged","power", "plasma", "melta"])){ - maintenance = 0.05; + maintenance += 0.05; } } static item_tooltip_desc_gen = function(){ @@ -295,7 +295,7 @@ function EquipmentStruct(item_data, core_type,quality="none") constructor{ if (obj_controller.stc_bonus[2]>0 && obj_controller.stc_bonus[2]<3){ if (obj_controller.stc_bonus[1]==1 && has_tag("fist")){ attack*=1.1; - } else if (obj_controller.stc_bonus[1]==2 && has_tag("Plasma")){ + } else if (obj_controller.stc_bonus[1]==2 && has_tag("plasma")){ attack*=1.1; } } diff --git a/scripts/scr_initialize_custom/scr_initialize_custom.gml b/scripts/scr_initialize_custom/scr_initialize_custom.gml index 14f3a9698a..4cf2d0b0f6 100644 --- a/scripts/scr_initialize_custom/scr_initialize_custom.gml +++ b/scripts/scr_initialize_custom/scr_initialize_custom.gml @@ -1340,20 +1340,24 @@ function scr_initialize_custom() { } var weapon_lists = { - heavy_weapons: ["Heavy Bolter", "Heavy Bolter", "Heavy Bolter", "Heavy Bolter", "Missile Launcher", "Missile Launcher", "Multi-Melta", "Lascannon"], - special_weapons: ["Flamer", "Flamer", "Flamer", "Meltagun", "Meltagun", "Plasma Gun"], - melee_weapons: ["Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Power Sword", "Power Sword", "Power Sword", "Lightning Claw", "Lightning Claw", "Lightning Claw", "Power Fist", "Power Fist"], - ranged_weapons: ["Bolter", "Bolter", "Bolter", "Bolter", "Bolter", "Bolter", "Storm Bolter", "Storm Bolter", "Storm Bolter", "Combiflamer", "Combiflamer", "Plasma Pistol"], - pistols: ["Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Plasma Pistol"], + heavy_weapons: ["Heavy Bolter", "Heavy Bolter", "Missile Launcher", "Missile Launcher", "Multi-Melta", "Lascannon","Plasma Cannon","Grav Cannon"], + melee_weapons: ["Chainsword", "Chainsword", "Chainsword", "Chainaxe", "Chainaxe"], + special_melee_weapons: [ "Eviscerator", "Eviscerator", "Power Sword", "Power Sword", "Power Axe", "Power Axe", "Lightning Claw", "Lightning Claw", "Lightning Claw", "Power Fist", "Power Fist"], + ranged_weapons: ["Bolter", "Bolter", "Storm Bolter", "Storm Bolter", "Stalker Pattern Bolter", "Stalker Pattern Bolter" ], + special_ranged_weapons: ["Flamer", "Flamer", "Meltagun", "Meltagun", "Plasma Gun", "Grav-Gun"], + combi_weapons: ["Combiflamer","Combiplasma","Combigrav","Combimelta"], + pistols: ["Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Hand Flamer", "Hand Flamer", "Plasma Pistol", "Plasma Pistol", "Grav-Pistol"], one_hand_melee: ["Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Power Sword", "Power Sword", "Power Sword", "Lightning Claw", "Lightning Claw", "Lightning Claw", "Power Fist", "Power Fist", "Thunder Hammer"], } var weapon_weighted_lists = { - heavy_weapons: [["Heavy Bolter", 4], ["Missile Launcher", 3], ["Multi-Melta", 2], ["Lascannon", 1]], - special_weapons: [["Flamer", 3], ["Meltagun", 2], ["Plasma Gun", 1]], - melee_weapons: [["Chainsword", 5], ["Power Sword", 4], ["Lightning Claw", 3], ["Power Fist", 2], ["Thunder Hammer", 1]], - ranged_weapons: [["Bolter", 10], ["Storm Bolter", 3], ["Combiflamer", 2], ["Plasma Pistol", 1]], - pistols: [["Bolt Pistol", 5], ["Plasma Pistol", 1]], + heavy_weapons: [["Heavy Bolter", 3], ["Missile Launcher", 3], ["Multi-Melta", 1], ["Lascannon", 1], ["Plasma Cannon", 1], ["Grav Cannon", 1]], + ranged_weapons: [["Bolter", 4], ["Storm Bolter", 2],["Stalker Pattern Bolter", 2]], + special_ranged_weapons: [["Flamer", 2], ["Meltagun", 2], ["Plasma Gun", 1], ["Grav-Gun", 1]], + melee_weapons: [["Chainsword", 3], ["Chainaxe", 2]], + special_melee_weapons: [["Power Sword", 3], ["Power Axe", 3], ["Lightning Claw", 2], ["Power Fist", 2], ["Thunder Hammer", 1]], + combi_weapons: [["Combiflamer", 1], ["Combiplasma", 1], ["Combigrav", 1], ["Combimelta", 1]], + pistols: [["Bolt Pistol", 4],["Hand Flamer", 2], ["Plasma Pistol", 2], ["Grav-Pistol", 1]], } /* squad guidance @@ -1536,13 +1540,13 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - ["Bolter", "Stalker Pattern Bolter", "Storm Bolter"], 5 + weapon_lists.ranged_weapons, 3 ], [ - ["Combiflamer"], 2 + weapon_lists.combi_weapons, 4 ], [ - weapon_lists.special_weapons, 1 + weapon_lists.special_ranged_weapons, 1 ], [ weapon_lists.heavy_weapons, 1 @@ -1584,13 +1588,7 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - ["Chainsword", "Power Sword", "Power Axe", "Lightning Claw"], 6 - ], - [ - ["Power Fist"], 2 - ], - [ - ["Thunder Hammer"], 1 + weapon_lists.special_melee_weapons, 9 ], ], "wep2": [ @@ -1598,7 +1596,7 @@ function scr_initialize_custom() { ["Storm Shield"], 2, ], [ - ["Plasma Pistol"], 3 + weapon_lists.pistols, 3 ], ] } @@ -1686,7 +1684,7 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - weapon_lists.special_weapons, 1 + weapon_lists.special_ranged_weapons, 1 ], [ weapon_lists.heavy_weapons, 1, { @@ -1742,7 +1740,7 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - weapon_lists.melee_weapons, 2, + "Eviscerator", 2, ], ], "wep2": [ @@ -1855,7 +1853,7 @@ function scr_initialize_custom() { "min": 1, "loadout": { "required": { - "wep1": ["Sniper Rifle", 1], + "wep1": ["Needle Sniper Rifle", 1], "wep2": ["Combat Knife", 1] }, }, @@ -1965,7 +1963,7 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - weapon_lists.special_weapons, 3 + weapon_lists.special_ranged_weapons, 3 ], ], "wep2": [ @@ -2020,7 +2018,7 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - weapon_lists.special_weapons, 1 + weapon_lists.special_ranged_weapons, 1 ], [ weapon_lists.heavy_weapons, 1, { diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 2876480038..25066829b7 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -211,15 +211,15 @@ global.weapons = { "Lascutter": { "abbreviation": "Lasct", "attack": { - "standard": 100, - "master_crafted": 150, - "artifact": 200 + "standard": 250, + "master_crafted": 300, + "artifact": 425 }, - "description": "Origonally industrial tools used for breaking through bulkheads, this laser weapon is devastating in close combat.", + "description": "Originally industrial tools used for breaking through bulkheads, this laser weapon is devastating in close combat.", "melee_hands": 1, "range": 1, "arp": 1, - "tags": ["las","boarding", "siege"], + "tags": ["las","boarding 3", "siege"], }, "Power Weapon": { "abbreviation": "PwrWpn", @@ -239,7 +239,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 3, - "arp": -2, + "arp": -1, "tags": ["power"], }, "Power Axe": { @@ -263,6 +263,27 @@ global.weapons = { "arp": -1, "tags": ["power", "axe", "dual","savage", "boarding 2"], }, + "Omnissian Axe": { + "abbreviation": "OmnAxe", + "attack": { + "standard": 400, + "master_crafted": 450, + "artifact": 550 + }, + "melee_mod": { + "standard": 1, + "master_crafted": 1.1, + "artifact": 1.2 + }, + "description": "A symbol that is equally weapon and holy icon given only to those trained by the Adeptus Mechanicus and have shown their devotion to the Omnissiah in battle.", + "melee_hands": 1, + "ranged_hands": 0, + "ammo": 0, + "range": 1, + "spli": 5, + "arp": -1, + "tags": ["power", "axe", "savage", "boarding 3"], + }, "Executioner Power Axe": { "abbreviation": "ExPwrAxe", "attack": { @@ -280,7 +301,7 @@ global.weapons = { "ranged_hands": 2, "ammo": 0, "range": 1, - "spli": 2, + "spli": 5, "arp": -2, "tags": ["power", "axe", "martial"], }, @@ -368,7 +389,7 @@ global.weapons = { "spli": 2, "arp": -2, "second_profiles": ["Assault Cannon"], - "tags": ["power","boarding", "chain", "fist", "dual", "siege"], + "tags": ["power","boarding 3", "chain", "fist", "dual", "siege"], }, "Lightning Claw": { "abbreviation": "LghtClw", @@ -389,9 +410,9 @@ global.weapons = { "Dreadnought Lightning Claw": { "abbreviation": "LghtClw", "attack": { - "standard": 300, - "master_crafted": 400, - "artifact": 600 + "standard": 600, + "master_crafted": 700, + "artifact": 850 }, "melee_mod": { "standard": 1.2, @@ -452,7 +473,7 @@ global.weapons = { "spli": 15, "maintenance" : 0.1, "req_exp": 100, - "tags": ["heavy_melee", "power", "hammer", "siege", "savage"], + "tags": ["heavy_melee", "power", "hammer", "siege", "savage"], }, "Power Mace": { "abbreviation": "PwrMace", @@ -593,7 +614,7 @@ global.weapons = { "ranged_hands": 1, "ammo": 10, "range": 4.1, - "spli": 6, + "spli": 8, "arp": 0, "tags": ["bolt", "pistol", "boarding 2"], }, @@ -678,7 +699,7 @@ global.weapons = { "range": 6, "spli": 6, "arp": 1, - "tags": ["grav", "heavy_weapon"], + "tags": ["grav", "heavy_ranged"], "maintenance" : 0.2, }, "Underslung Bolter": { @@ -980,7 +1001,7 @@ global.weapons = { "ammo": 20, "range": 14, "spli": 1, - "arp": -1, + "arp": -2, "tags": ["precision", "rifle"] }, "Assault Cannon": { @@ -1014,6 +1035,7 @@ global.weapons = { "spli": 12, "arp": -1, "tags": ["heavy_ranged", "dreadnought"] + "tags": ["heavy_ranged","explosive", "dreadnought"] }, "Missile Launcher": { "abbreviation": "MsslLnch", @@ -1029,7 +1051,24 @@ global.weapons = { "range": 15, "spli": 10, "arp": -1, - "tags": ["heavy_ranged", "dreadnought"] + + "tags": ["heavy_ranged","explosive", "dreadnought"] + }, + "Cyclone Missile Launcher": { + "abbreviation": "CycLnch", + "attack": { + "standard": 600, + "master_crafted": 700, + "artifact": 950 + }, + "description": "This power pack mounted weapon is capable of unleashing a hail of either armor-piercing or fragmentation rockets. It's ammunition is limited by what the bearer has carried with them.", + "melee_hands": 1, + "ranged_hands": 2, + "ammo": 6, + "range": 15, + "spli": 20, + "arp": -1, + "tags": ["heavy_ranged","explosive"] }, "Lascannon": { "abbreviation": "Lascnn", @@ -1421,7 +1460,7 @@ global.weapons = { "range": 18, "spli": 15, "arp": -1, - "tags": ["vehicle","heavy_ranged", "turret"] + "tags": ["vehicle","heavy_ranged","explosive", "turret"] }, "Storm Bolter": { "abbreviation": "StrmBltr", From 7d6ea4430440b7a20ab57b96e26daf8f70aa498c Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Mon, 10 Feb 2025 16:55:20 +0900 Subject: [PATCH 05/47] grav tag maint values --- scripts/scr_weapon/scr_weapon.gml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 25066829b7..ed87e96076 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -648,9 +648,8 @@ global.weapons = { "range": 4.1, "spli": 1, "arp": 1, - "maintenance" : 0.8, + "maintenance" : 0.2, "tags": ["grav", "pistol"], - "maintenance" : 0.8, }, "Integrated-Grav": { "abbreviation": "IntGrv", @@ -683,7 +682,7 @@ global.weapons = { "spli": 3, "arp": 1, "tags": ["grav"], - "maintenance" : 0.1, + "maintenance" : 0.5, }, "Grav-Cannon": { "abbreviation": "GrvCan", @@ -700,7 +699,7 @@ global.weapons = { "spli": 6, "arp": 1, "tags": ["grav", "heavy_ranged"], - "maintenance" : 0.2, + "maintenance" : 0.8, }, "Underslung Bolter": { "abbreviation": "UndBltr", From 62f15dee23e0da8d338b89d54c31d40fc0ae49ec Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Mon, 10 Feb 2025 19:47:01 +0900 Subject: [PATCH 06/47] Shop/forge adds --- objects/obj_shop/Create_0.gml | 12 ++++++++++++ scripts/scr_weapon/scr_weapon.gml | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/objects/obj_shop/Create_0.gml b/objects/obj_shop/Create_0.gml index 49d3fef414..c100c2cab7 100644 --- a/objects/obj_shop/Create_0.gml +++ b/objects/obj_shop/Create_0.gml @@ -380,6 +380,13 @@ if (shop = "equipment") { item_cost[i] = 0; } i += 1; + item[i] = "Wrist-Mounted Storm Bolter"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 80; + forge_cost[i] = 300; + if (research.bolt[0]<2) then forge_cost[i] = 0; + nobuy[i] = 1; + i += 1; item[i] = "Hand Flamer"; forge_cost[i] = 75; if (research.flame[0]<1) then forge_cost[i] = 0; @@ -508,6 +515,11 @@ if (shop = "equipment") { item_stocked[i] = scr_item_count(item[i]); item_cost[i] = 70; i += 1; + item[i] = "Cyclone Missile Launcher"; + forge_cost[i] = 350; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 150; + i += 1; item[i] = "Lascannon"; item_stocked[i] = scr_item_count(item[i]); forge_cost[i] = 500; diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index ed87e96076..286501e800 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -602,7 +602,7 @@ global.weapons = { "arp": 0, "tags": ["bolt", "pistol", "boarding 1"], }, - "Wrist-Mounted Storm Bolter": { // TODO: Not used outside of this file atm; + "Wrist-Mounted Storm Bolter": { "abbreviation": "WrstBlt", "attack": { "standard": 275, @@ -616,6 +616,7 @@ global.weapons = { "range": 4.1, "spli": 8, "arp": 0, + "maintenance" : 0.1, "tags": ["bolt", "pistol", "boarding 2"], }, "Webber": { @@ -1033,7 +1034,6 @@ global.weapons = { "range": 14, "spli": 12, "arp": -1, - "tags": ["heavy_ranged", "dreadnought"] "tags": ["heavy_ranged","explosive", "dreadnought"] }, "Missile Launcher": { From 8b69603eae4f225d34545a5ca6ab9ec5b26ee3b3 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Mon, 10 Feb 2025 19:47:48 +0900 Subject: [PATCH 07/47] Librarian power buffs --- scripts/scr_powers/scr_powers.gml | 44 +++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/scripts/scr_powers/scr_powers.gml b/scripts/scr_powers/scr_powers.gml index ff446f714b..86bf9be2b8 100644 --- a/scripts/scr_powers/scr_powers.gml +++ b/scripts/scr_powers/scr_powers.gml @@ -236,17 +236,17 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { // Chaos powers here - if (power_name="Wave of Entropy"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=220;p_arp=0;p_duration=0; + if (power_name="Wave of Entropy"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=250;p_arp=-1;p_duration=0; flavour_text2="- a putrid cone of warp energy splashes outward, "; if (obj_ncombat.enemy=9) then flavour_text2+="twisting and rusting everything it touches. "; if (obj_ncombat.enemy!=9) then flavour_text2+="boiling and putrifying flesh. "; if (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Wave of Change"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=220;p_arp=0;p_duration=0; + if (power_name="Wave of Change"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=300;p_arp=-2;p_duration=0; flavour_text2="- a wispy cone of warp energy reaches outward, twisting and morphing all that it touches. "; if (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Insect Swarm"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=500;p_arp=1;p_duration=0; + if (power_name="Insect Swarm"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=500;p_arp=-1;p_duration=0; var rah;rah=choose(1,2); if (rah=1) then flavour_text2="- a massive, black cloud of insects spew from his body. At once they begin burrowing into your foes. "; if (rah=2) then flavour_text2="- rank, ichory insects spew forth from his body at your foes. They begin burrowing through flesh and armour alike. "; @@ -259,13 +259,13 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { marine_attack[unit_id]+=2;marine_ranged[unit_id]=0; if (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Putrid Vomit"){p_type="attack";p_rang=2.1;p_tar=3;p_spli=1;p_att=600;p_arp=0;p_duration=0; + if (power_name="Putrid Vomit"){p_type="attack";p_rang=2.1;p_tar=3;p_spli=1;p_att=600;p_arp=-2;p_duration=0; var rah;rah=choose(1,2); flavour_text2="- from in front of their mouth a stream of rancid, acidic vomit spews forth at tremendous pressure, splashing over his foes. "; if (obj_ncombat.enemy=9) then p_att=450; if (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Warp Bolts"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=300;p_arp=0;p_duration=0; + if (power_name="Warp Bolts"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=450;p_arp=1;p_duration=0; var rah;rah=choose(1,2,3); if (rah=1) then flavour_text2="- several bolts of purple warp energy appear and are flung at the enemy. "; if (rah=2) then flavour_text2="- he launches a series of rapid warp bolts at the enemy. "; @@ -320,11 +320,11 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { // target 0: self 1: ally 2: ally vehicle 3: enemy 4: enemy vehicle - if (power_name="Minor Smite"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=160;p_arp=0;p_duration=0; + if (power_name="Minor Smite"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=250;p_arp=-2;p_duration=0; flavour_text2="- a coil of warp energy lashes out at the enemy. "; if (binders=true) then flavour_text2="- a green, sickly coil of energy lashes out at the enemy. "; } - if (power_name="Smite"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=260;p_arp=0;p_duration=0; + if (power_name="Smite"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=350;p_arp=-2;p_duration=0; var rah;rah=choose(1,2,3); if (rah=1) then flavour_text2="- a blast of warp energy smashes into the enemy. "; if (rah=2) then flavour_text2="- warp lightning crackles and leaps to the enemy. "; @@ -337,10 +337,10 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { if (binders=true) then flavour_text2=". An oozing, shifting dome of sorcerous energy appears, covering your forces."; if (binders=true) and (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Machine Curse"){p_type="attack";p_rang=5;p_tar=4;p_spli=0;p_att=300;p_arp=1;p_duration=0; + if (power_name="Machine Curse"){p_type="attack";p_rang=5;p_tar=4;p_spli=0;p_att=400;p_arp=1;p_duration=0; flavour_text2="- the machine spirit within an enemy vehicle is roused. "; } - if (power_name="Avenge"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=500;p_arp=0;p_duration=0; + if (power_name="Avenge"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=500;p_arp=-2;p_duration=0; var rah;rah=choose(1,2); if (rah=1) then flavour_text2="- a destructive avatar of rolling flame crashes into the enemy. "; if (rah=2) then flavour_text2="- a massive conflagration rises up and then crashes down upon the enemy. "; @@ -353,14 +353,14 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { if (power_name="Might of the Ancients"){p_type="buff";p_rang=0;p_tar=0;p_spli=0;p_att=0;p_arp=0;p_duration=3; flavour_text2=". His physical power and might is increased to unimaginable levels."; } - if (power_name="Vortex of Doom"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=800;p_arp=1;p_duration=0; + if (power_name="Vortex of Doom"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=800;p_arp=-2;p_duration=0; flavour_text2="- a hole between real and warp space is torn open with deadly effect. "; if (binders=true) then flavour_text2="- a hole bewteen realspace and the warp is torn, unleashing a myriad of sorcerous energies. "; if (binders=true) and (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Breathe Fire"){p_type="attack";p_rang=3;p_tar=3;p_spli=0;p_att=200;p_arp=-1;p_duration=0; + if (power_name="Breathe Fire"){p_type="attack";p_rang=3;p_tar=3;p_spli=0;p_att=300;p_arp=-1;p_duration=0; flavour_text2="- a bright jet of flame shoots forth at the enemy. "; if (binders=true) then flavour_text2="- a greenish, eery jet of flame shoots forth at the enemy. "; } @@ -372,14 +372,14 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { flavour_text2=". Orange sheets of fire shimmer around your forces, protecting them. "; if (binders=true) then flavour_text2="- Purple sheets of warp fire shimmer around your forces, protecting them. "; } - if (power_name="Inferno"){p_type="attack";p_rang=4;p_tar=3;p_spli=1;p_att=600;p_arp=0;p_duration=0; + if (power_name="Inferno"){p_type="attack";p_rang=4;p_tar=3;p_spli=1;p_att=600;p_arp=-1;p_duration=0; var rah;rah=choose(1,2); if (rah=1) then flavour_text2="- a massive conflagration rises up and then crashes down upon the enemy. "; if (rah=2) then flavour_text2="- after breathing deeply a massive jet of flame is unleashed. Smoke billows into the sky. "; if (binders=true) and (rah=1) then flavour_text2="- a hideous being of rolling flame crashes into the enemy. "; if (binders=true) and (rah=2) then flavour_text2="- a massive conflagration rises up and then crashes down upon the enemy. "; } - if (power_name="Sun Burst"){p_type="attack";p_rang=8;p_tar=4;p_spli=1;p_att=200;p_arp=1;p_duration=0; + if (power_name="Sun Burst"){p_type="attack";p_rang=8;p_tar=4;p_spli=1;p_att=400;p_arp=1;p_duration=0; flavour_text2="- a crackling, hissing beam of purple-red flame shoots from him. "; if (binders=true) then flavour_text2="- a crackling, hissing beam of purple warp shoots from him. "; if (binders=true) and (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; @@ -390,7 +390,7 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { if (binders=true) and (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Blood Boil"){p_type="attack";p_rang=3;p_tar=3;p_spli=0;p_att=220;p_arp=0;p_duration=0; + if (power_name="Blood Boil"){p_type="attack";p_rang=3;p_tar=3;p_spli=0;p_att=250;p_arp=1;p_duration=0; flavour_text2="- accelerating the pulse and blood pressure of his foes. "; } if (power_name="Iron Arm"){p_type="buff";p_rang=0;p_tar=0;p_spli=0;p_att=0;p_arp=0;p_duration=3; @@ -402,14 +402,14 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { if (power_name="Regenerate"){p_type="buff";p_rang=0;p_tar=0;p_spli=0;p_att=0;p_arp=0;p_duration=0; flavour_text2=". His flesh shimmers and twists back together, sealing up wounds and damage. "; } - if (power_name="Haemorrhage"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=800;p_arp=0;p_duration=0; + if (power_name="Haemorrhage"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=800;p_arp=-2;p_duration=0; flavour_text2="- reaching inside of his foes and lighting their flesh aflame. "; } - if (power_name="Crush"){p_type="attack";p_rang=4;p_tar=3;p_spli=0;p_att=190;p_arp=0;p_duration=0; + if (power_name="Crush"){p_type="attack";p_rang=4;p_tar=4;p_spli=0;p_att=300;p_arp=1;p_duration=0; flavour_text2="- his foes are entraped in a crushing mass of force. "; } - if (power_name="Shockwave"){p_type="attack";p_rang=4;p_tar=3;p_spli=1;p_att=280;p_arp=0;p_duration=0; + if (power_name="Shockwave"){p_type="attack";p_rang=4;p_tar=3;p_spli=1;p_att=300;p_arp=0;p_duration=0; var rah;rah=choose(1,2,3); flavour_text2="- a massive wave of force smashes aside his foes. "; } @@ -421,22 +421,22 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { } - if (power_name="Living Lightning"){p_type="attack";p_rang=5;p_tar=3;p_spli=0;p_att=160;p_arp=0;p_duration=0; + if (power_name="Living Lightning"){p_type="attack";p_rang=5;p_tar=3;p_spli=0;p_att=300;p_arp=0;p_duration=0; flavour_text2="- arcs of lightning shoot from hand and strike his foes. "; } if (power_name="Stormbringer"){p_type="buff";p_rang=1;p_tar=1;p_spli=0;p_att=0;p_arp=0;p_duration=2; flavour_text2=". A vortex of ice and winds crackle into existance, covering your forces."; } - if (power_name="Murderous Hurricane"){p_type="attack";p_rang=4;p_tar=3;p_spli=1;p_att=320;p_arp=0;p_duration=0; + if (power_name="Murderous Hurricane"){p_type="attack";p_rang=4;p_tar=3;p_spli=1;p_att=450;p_arp=-1;p_duration=0; var rah;rah=choose(1,2,3); flavour_text2="- a mighty winter gale billows forth, shredding and freezing flesh. "; } - if (power_name="Fury of the Wolf Spirits"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=440;p_arp=0;p_duration=0; + if (power_name="Fury of the Wolf Spirits"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=440;p_arp=-2;p_duration=0; var rah;rah=choose(1,2); if (rah=1) then flavour_text2="- a pair of Thunderwolf revenants sprint outward, running down and overwhelming foes. "; if (rah=2) then flavour_text2="- ghostly visages of Freki and Geri launch into his foes, overwhelming them. "; } - if (power_name="Thunderclap"){p_type="attack";p_rang=1.1;p_tar=3;p_spli=1;p_att=600;p_arp=0;p_duration=0; + if (power_name="Thunderclap"){p_type="attack";p_rang=1.1;p_tar=3;p_spli=1;p_att=600;p_arp=-2;p_duration=0; flavour_text2="- smashing his gauntlets together and unleashing a mighty shockwave. "; } if (power_name="Jaws of the World Wolf"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=800;p_arp=1;p_duration=0; @@ -445,7 +445,7 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { - if (power_name="Avenge"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=500;p_arp=0;p_duration=0; + if (power_name="Avenge"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=500;p_arp=-1;p_duration=0; var rah;rah=choose(1,2); if (rah=1) then flavour_text2="- a destructive avatar of rolling flame crashes into the enemy. "; if (rah=2) then flavour_text2="- a massive conflagration rises up and then crashes down upon the enemy. "; From cde88c280d7c74d998a7a5603ce7c8929d71cac9 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Mon, 10 Feb 2025 19:48:06 +0900 Subject: [PATCH 08/47] list distribution adj --- scripts/scr_initialize_custom/scr_initialize_custom.gml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/scr_initialize_custom/scr_initialize_custom.gml b/scripts/scr_initialize_custom/scr_initialize_custom.gml index 4cf2d0b0f6..8f29b7521d 100644 --- a/scripts/scr_initialize_custom/scr_initialize_custom.gml +++ b/scripts/scr_initialize_custom/scr_initialize_custom.gml @@ -1346,7 +1346,7 @@ function scr_initialize_custom() { ranged_weapons: ["Bolter", "Bolter", "Storm Bolter", "Storm Bolter", "Stalker Pattern Bolter", "Stalker Pattern Bolter" ], special_ranged_weapons: ["Flamer", "Flamer", "Meltagun", "Meltagun", "Plasma Gun", "Grav-Gun"], combi_weapons: ["Combiflamer","Combiplasma","Combigrav","Combimelta"], - pistols: ["Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Hand Flamer", "Hand Flamer", "Plasma Pistol", "Plasma Pistol", "Grav-Pistol"], + pistols: ["Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Hand Flamer", "Hand Flamer", "Plasma Pistol", "Plasma Pistol", "Grav-Pistol"], one_hand_melee: ["Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Power Sword", "Power Sword", "Power Sword", "Lightning Claw", "Lightning Claw", "Lightning Claw", "Power Fist", "Power Fist", "Thunder Hammer"], } @@ -1745,7 +1745,7 @@ function scr_initialize_custom() { ], "wep2": [ [ - ["Plasma Pistol", "Flamer"], 2 + weapon_lists.pistols, 2 ] ] } @@ -1814,7 +1814,7 @@ function scr_initialize_custom() { ], "wep2": [ [ - ["Power Sword", "Chainsword", "Power Axe"], 1 + weapon_lists.melee_weapons, 1 ] ] } @@ -1841,7 +1841,7 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - ["Missile Launcher"], 1 + ["Missile Launcher","Needle Sniper Rifle"], 1 ] ], } From c968d93c49468f4acaac91fccb23503197f7608f Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Mon, 10 Feb 2025 20:14:07 +0900 Subject: [PATCH 09/47] Lib arp patch --- ChapterMaster.yyp | 7 +++---- scripts/scr_powers/scr_powers.gml | 7 +++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ChapterMaster.yyp b/ChapterMaster.yyp index f7db82a09a..5eb9780ea5 100644 --- a/ChapterMaster.yyp +++ b/ChapterMaster.yyp @@ -185,7 +185,6 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"daemon7.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"daemon8.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"daemon9.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"diplomacy_icons.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"diplomacy10.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"diplomacy11.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"diplomacy12.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, @@ -447,10 +446,10 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"eldar.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"genestealercult.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"hulk.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"imperial_ship.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"imperial.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ork_ship.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"imperial_ship.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ork.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ork_ship.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"sector.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"space_marine.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"star.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, @@ -1525,6 +1524,6 @@ ], "templateType": null, "TextureGroups": [ - {"resourceType":"GMTextureGroup","resourceVersion":"1.3","name":"Default","autocrop":true,"border":2,"compressFormat":"bz2","directory":"","groupParent":null,"isScaled":false,"loadType":"default","mipsToGenerate":0,"targets":-1,}, + {"resourceType":"GMTextureGroup","resourceVersion":"1.3","name":"Default","autocrop":true,"border":2,"compressFormat":"bz2","customOptions":"","directory":"","groupParent":null,"isScaled":false,"loadType":"default","mipsToGenerate":0,"targets":-1,}, ], } \ No newline at end of file diff --git a/scripts/scr_powers/scr_powers.gml b/scripts/scr_powers/scr_powers.gml index 86bf9be2b8..fa4e5f8485 100644 --- a/scripts/scr_powers/scr_powers.gml +++ b/scripts/scr_powers/scr_powers.gml @@ -864,12 +864,15 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { if (enemy5.dudes_vehicle[good2]=0){ if (p_arp=1) then eac=0; - if (p_arp=-1) then eac=eac*6; + if (p_arp=0) then eac=eac*3; + if (p_arp=-1) then eac=eac*2; + if (p_arp=-2) then eac=eac*1.5; } if (enemy5.dudes_vehicle[good2]=1){ if (p_arp=-1) then eac=a; if (p_arp=0) then eac=eac*6; - if (p_arp=-1) then eac=a; + if (p_arp=-1) then eac=eac*4; + if (p_arp=-2) then eac=eac*2; } b=a-eac;if (b<=0) then b=0; From 99eff3992e1aebe07931cfe61af8f42e6afa632f Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Fri, 14 Feb 2025 22:56:07 +0900 Subject: [PATCH 10/47] assault loadout adjustment --- scripts/scr_initialize_custom/scr_initialize_custom.gml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/scr_initialize_custom/scr_initialize_custom.gml b/scripts/scr_initialize_custom/scr_initialize_custom.gml index 8f29b7521d..6444eb3f77 100644 --- a/scripts/scr_initialize_custom/scr_initialize_custom.gml +++ b/scripts/scr_initialize_custom/scr_initialize_custom.gml @@ -1745,7 +1745,7 @@ function scr_initialize_custom() { ], "wep2": [ [ - weapon_lists.pistols, 2 + ["Plasma Pistol", "Flamer"], 2 ] ] } From a7675a8edacc02c476ec4058d8550c9974a45489 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Fri, 14 Feb 2025 23:15:58 +0900 Subject: [PATCH 11/47] enemy damage reduc inversion Inverts values so Damage reduction works as intended --- objects/obj_enunit/Alarm_1.gml | 225 +++++++++++++++++---------------- 1 file changed, 116 insertions(+), 109 deletions(-) diff --git a/objects/obj_enunit/Alarm_1.gml b/objects/obj_enunit/Alarm_1.gml index 39f611d6d4..e94f21dc83 100644 --- a/objects/obj_enunit/Alarm_1.gml +++ b/objects/obj_enunit/Alarm_1.gml @@ -134,31 +134,31 @@ repeat(20) { if (dudes[j] = "Bloodletter") { scr_en_weapon("Bloodletter Melee", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; - dudes_hp[j] = 120; + dudes_ac[j] = 10; + dudes_hp[j] = 150; men += dudes_num[j]; - dudes_dr[j] = 0.7; + dudes_dr[j] = 0.5; } if (dudes[j] = "Daemonette") { scr_en_weapon("Daemonette Melee", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; + dudes_ac[j] = 8; dudes_hp[j] = 100; men += dudes_num[j]; - dudes_dr[j] = 0.7; + dudes_dr[j] = 0.25; } if (dudes[j] = "Pink Horror") { scr_en_weapon("Eldritch Fire", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; - dudes_hp[j] = 100; + dudes_ac[j] = 8; + dudes_hp[j] = 80; men += dudes_num[j]; - dudes_dr[j] = 0.8; + dudes_dr[j] = 0.2; } if (dudes[j] = "Plaguebearer") { scr_en_weapon("Plaguebearer Melee", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; - dudes_hp[j] = 145; + dudes_ac[j] = 8; + dudes_hp[j] = 200; men += dudes_num[j]; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.25; } if (dudes[j] = "Helbrute") { @@ -168,7 +168,7 @@ repeat(20) { dudes_hp[j] = 100; veh += dudes_num[j]; dudes_vehicle[j] = 1; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; } if (dudes[j] = "Soul Grinder") { scr_en_weapon("Warpsword", false, dudes_num[j], dudes[j], j); @@ -178,7 +178,7 @@ repeat(20) { dudes_hp[j] = 350; veh += dudes_num[j]; dudes_vehicle[j] = 1; - dudes_dr[j] = 1; + dudes_dr[j] = 0.75; } if (dudes[j] = "Maulerfiend") { scr_en_weapon("Maulerfiend Claws", false, dudes_num[j], dudes[j], j); @@ -186,7 +186,7 @@ repeat(20) { dudes_hp[j] = 250; veh += dudes_num[j]; dudes_vehicle[j] = 1; - dudes_dr[j] = 1; + dudes_dr[j] = 0.75; } } @@ -358,7 +358,7 @@ if __b__ { scr_en_weapon("Heavy Bolter", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 100; - dudes_dr[j] = 0.1; + dudes_dr[j] = 0.9; men += dudes_num[j]; } @@ -367,7 +367,7 @@ if __b__ { scr_en_weapon("Ogryn Melee", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 120; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; } @@ -376,7 +376,7 @@ if __b__ { scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 200; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -393,7 +393,7 @@ if __b__ { scr_en_weapon("Lascannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 45; dudes_hp[j] = 250; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -402,7 +402,7 @@ if __b__ { scr_en_weapon("Lascannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 250; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -410,7 +410,7 @@ if __b__ { scr_en_weapon("Twin-Linked Lascannon", false, dudes_num[j] * 3, dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 300; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -468,7 +468,7 @@ if __b__ { dudes_hp[j] = 200; } men += dudes_num[j]; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; } if (dudes[j] = "Palatine") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); @@ -491,7 +491,7 @@ if __b__ { dudes_ac[j] = 0; dudes_hp[j] = 150; men += dudes_num[j]; - dudes_dr[j] = 0.3; + dudes_dr[j] = 0.7; } if (dudes[j] = "Celestian") { @@ -514,7 +514,7 @@ if __b__ { dudes_ac[j] = 0; dudes_hp[j] = 75; men += dudes_num[j]; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; } if (dudes[j] = "Battle Sister") { @@ -529,7 +529,7 @@ if __b__ { dudes_ac[j] = 10; dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; } if (dudes[j] = "Seraphim") { scr_en_weapon("Seraphim Pistols", true, dudes_num[j], dudes[j], j); @@ -537,7 +537,7 @@ if __b__ { dudes_ac[j] = 10; dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.4; + dudes_dr[j] = 0.6; } if (dudes[j] = "Dominion") { scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); @@ -545,7 +545,7 @@ if __b__ { dudes_ac[j] = 10; dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; } if (dudes[j] = "Retributor") { if (dudes_num[j] <= 3) then scr_en_weapon("Heavy Bolter", true, dudes_num[j], dudes[j], j); @@ -559,7 +559,7 @@ if __b__ { dudes_ac[j] = 10; dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.4; + dudes_dr[j] = 0.6; } if (dudes[j] = "Follower") { @@ -574,7 +574,7 @@ if __b__ { scr_en_weapon("Storm Bolter", false, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 200; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -583,7 +583,7 @@ if __b__ { scr_en_weapon("Heavy Flamer", false, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 200; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -592,7 +592,7 @@ if __b__ { scr_en_weapon("Twin Linked Heavy Flamers", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 300; - dudes_dr[j] = 0.50; + dudes_dr[j] = 0.35; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -603,7 +603,7 @@ if __b__ { if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 200; } - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.55; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -902,10 +902,10 @@ if __b__ { if (dudes[j] = "Minor Warboss") { scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 150; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; } men += dudes_num[j]; } @@ -915,7 +915,7 @@ if __b__ { dudes_ac[j] = 12; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 200; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; } men += dudes_num[j]; } @@ -954,47 +954,49 @@ if __b__ { if (dudes[j] = "Mekboy") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; + dudes_ac[j] = 12; dudes_hp[j] = 100; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Meganob") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; + dudes_ac[j] = 12; dudes_hp[j] = 150; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.6; men += dudes_num[j]; } if (dudes[j] = "Flash Git") { scr_en_weapon("Snazzgun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 100; men += dudes_num[j]; } if (dudes[j] = "Cybork") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; - dudes_hp[j] = 100; - dudes_dr[j] = 0.25; + dudes_ac[j] = 8; + dudes_hp[j] = 125; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Ard Boy") { scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); scr_en_weapon("Slugga", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 80; + dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Kommando") { scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); scr_en_weapon("Rokkit Launcha", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; - dudes_hp[j] = 150; + dudes_hp[j] = 125; + dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Burna Boy") { @@ -1037,7 +1039,7 @@ if __b__ { scr_en_weapon("Rokkit Launcha", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 200; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1054,7 +1056,7 @@ if __b__ { scr_en_weapon("Plasma Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Fusion Blaster", true, dudes_num[j], dudes[j], j); scr_en_weapon("Cyclic Ion Blaster", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; + dudes_ac[j] = 12; dudes_hp[j] = 300; dudes_dr[j] = 0.5; men += dudes_num[j]; @@ -1064,7 +1066,7 @@ if __b__ { scr_en_weapon("Burst Rifle", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 200; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "XV8 Crisis") { @@ -1072,18 +1074,18 @@ if __b__ { scr_en_weapon("Missile Pod", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 150; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "XV8 (Brightknife)") { scr_en_weapon("Fusion Blaster", true, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 150; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Shield Drone") { - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 50; men += dudes_num[j]; } @@ -1091,28 +1093,28 @@ if __b__ { if (dudes[j] = "XV88 Broadside") { scr_en_weapon("Smart Missile System", true, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Small Railgun", true, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 15; + dudes_ac[j] = 12; dudes_hp[j] = 225; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "XV25 Stealthsuit") { scr_en_weapon("Burst Rifle", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 50; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Fire Warrior") { scr_en_weapon("Pulse Rifle", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 30; men += dudes_num[j]; } if (dudes[j] = "Pathfinder") { scr_en_weapon("Rail Rifle", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 30; men += dudes_num[j]; } @@ -1135,7 +1137,7 @@ if __b__ { scr_en_weapon("Smart Missile System", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 150; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1144,7 +1146,7 @@ if __b__ { scr_en_weapon("Smart Missile System", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 150; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1163,29 +1165,30 @@ if __b__ { scr_en_weapon("Heavy Venom Cannon", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 400; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.5; men += dudes_num[j]; } if (dudes[j] = "Tyrant Guard") { scr_en_weapon("Crushing Claws", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; + dudes_ac[j] = 12; dudes_hp[j] = 200; - dudes_dr[j] = 0.4; + dudes_dr[j] = 0.6; men += dudes_num[j]; } if (dudes[j] = "Tyranid Warrior") { scr_en_weapon("Rending Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Devourer", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 100; + dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Zoanthrope") { scr_en_weapon("Zoanthrope Blast", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 300; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "Carnifex") { @@ -1226,25 +1229,25 @@ if __b__ { if (dudes[j] = "Genestealer Patriarch") { scr_en_weapon("Genestealer Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Witchfire", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 300; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.60; men += dudes_num[j]; } if (dudes[j] = "Armoured Limousine") { scr_en_weapon("Autogun", false, dudes_num[j] * 4, dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 150; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Lictor") { scr_en_weapon("Lictor Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Flesh Hooks", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 300; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.60; men += dudes_num[j]; } @@ -1330,7 +1333,7 @@ if __b__ { dudes_ac[j] = 40; dudes_hp[j] = 120; men += dudes_num[j]; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.4; } if (dudes[j] = "World Eaters Terminator") { scr_en_weapon("Power Fist", true, dudes_num[j] * 2, dudes[j], j); @@ -1338,7 +1341,7 @@ if __b__ { dudes_ac[j] = 40; dudes_hp[j] = 120; men += dudes_num[j]; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.4; } if (dudes[j] = "Obliterator") { scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j); @@ -1353,6 +1356,7 @@ if __b__ { scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 125; + dudes_dr[j] = 0.85; men += dudes_num[j]; } if (dudes[j] = "Venerable Chaos Chosen") { @@ -1361,7 +1365,7 @@ if __b__ { dudes_ac[j] = 20; dudes_hp[j] = 125; men += dudes_num[j]; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; } if (dudes[j] = "Possessed") { @@ -1376,6 +1380,7 @@ if __b__ { scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; + dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Havoc") { @@ -1383,6 +1388,7 @@ if __b__ { scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; + dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Raptor") { @@ -1390,7 +1396,7 @@ if __b__ { scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; dudes_special[j] = "Jump Pack"; men += dudes_num[j]; } @@ -1400,7 +1406,7 @@ if __b__ { scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "World Eaters Veteran") { @@ -1408,7 +1414,7 @@ if __b__ { scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; - dudes_dr[j] = 0.3; + dudes_dr[j] = 0.7; men += dudes_num[j]; } @@ -1417,7 +1423,7 @@ if __b__ { scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; - dudes_dr[j] = 0.35; + dudes_dr[j] = 0.65; men += dudes_num[j]; } if (dudes[j] = "Plague Marine") { @@ -1433,7 +1439,7 @@ if __b__ { scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 100; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Rubric Marine") { @@ -1441,7 +1447,7 @@ if __b__ { scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 125; - dudes_dr[j] = 0.35; + dudes_dr[j] = 0.65; men += dudes_num[j]; } if (dudes[j] = "Rubric Sorcerer") { @@ -1472,7 +1478,7 @@ if __b__ { scr_en_weapon("Storm Bolter", false, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 200; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1499,7 +1505,7 @@ if __b__ { scr_en_weapon("Twin Linked Lascannon", false, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 50; dudes_hp[j] = 400; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1507,7 +1513,7 @@ if __b__ { scr_en_weapon("Baleflame", false, dudes_num[j] * 5, dudes[j], j); dudes_ac[j] = 50; dudes_hp[j] = 400; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1526,16 +1532,17 @@ if __b__ { if (dudes[j] = "Arch Heretic") { scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 40; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Cultist Elite") { scr_en_weapon("Lasgun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 40; + dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Mutant") { @@ -1547,15 +1554,16 @@ if __b__ { if (dudes[j] = "Daemonhost") { scr_en_weapon("Daemonhost Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Daemonhost_Powers", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 300; dudes_dr[j] = 0.5; medi += dudes_num[j]; } if (dudes[j] = "Possessed") { scr_en_weapon("Possessed Claws", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 100; + dudes_dr[j] = 0.75; men += dudes_num[j]; } @@ -1571,7 +1579,7 @@ if __b__ { scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 100; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1581,7 +1589,7 @@ if __b__ { scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 45; dudes_hp[j] = 250; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1617,7 +1625,7 @@ if __b__ { scr_en_weapon("Staff of Light", true, dudes_num[j], dudes[j], j); scr_en_weapon("Staff of Light Shooting", true, dudes_num[j], dudes[j], j); if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { - dudes_ac[j] = 10; + dudes_ac[j] = 12; dudes_hp[j] = 300; dudes_dr[j] = 0.5; } @@ -1625,33 +1633,33 @@ if __b__ { } if (dudes[j] = "Lychguard") { scr_en_weapon("Warscythe", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; + dudes_ac[j] = 12; dudes_hp[j] = 100; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Flayed One") { scr_en_weapon("Melee5", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; - dudes_hp[j] = 100; - dudes_dr[j] = 0.1; + dudes_ac[j] = 8; + dudes_hp[j] = 75; + dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Necron Warrior") { scr_en_weapon("Gauss Flayer", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee3", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; - dudes_hp[j] = 100; - dudes_dr[j] = 0.1; + dudes_ac[j] = 8; + dudes_hp[j] = 75; + dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Necron Immortal") { scr_en_weapon("Gauss Blaster", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee3", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; - dudes_hp[j] = 100; - dudes_dr[j] = 0.15; + dudes_ac[j] = 8; + dudes_hp[j] = 75; + dudes_dr[j] = 0.85; men += dudes_num[j]; } @@ -1662,7 +1670,7 @@ if __b__ { dudes_hp[j] = 200; } men += dudes_num[j]; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; } if (dudes[j] = "Necron Destroyer") { scr_en_weapon("Gauss Cannon", true, dudes_num[j], dudes[j], j); @@ -1691,15 +1699,15 @@ if __b__ { dudes_ac[j] = 30; dudes_hp[j] = 300; } - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Canoptek Scarab") { scr_en_weapon("Melee3", false, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 30; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; men += dudes_num[j]; dudes_vehicle[j] = 0; } @@ -1708,17 +1716,16 @@ if __b__ { scr_en_weapon("Particle Whip", false, dudes_num[j] * 1, dudes[j], j); dudes_ac[j] = 50; dudes_hp[j] = 500; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; - // was 50 / 500 } if (dudes[j] = "Doomsday Arc") { scr_en_weapon("Gauss Flayer Array", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Doomsday Cannon", false, dudes_num[j] * 1, dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 150; - dudes_dr[j] = 0.3; + dudes_ac[j] = 40; + dudes_hp[j] = 350; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } From bf5658b25f20d6d5ab31fff761e54d096582284a Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Sat, 15 Feb 2025 00:50:33 +0900 Subject: [PATCH 12/47] Eldar Durability --- objects/obj_enunit/Alarm_1.gml | 117 ++++++++++++++++++++------------- 1 file changed, 70 insertions(+), 47 deletions(-) diff --git a/objects/obj_enunit/Alarm_1.gml b/objects/obj_enunit/Alarm_1.gml index e94f21dc83..8b935e419e 100644 --- a/objects/obj_enunit/Alarm_1.gml +++ b/objects/obj_enunit/Alarm_1.gml @@ -640,8 +640,8 @@ if __b__ { if (dudes[j] = "Leader") { scr_en_weapon("Singing Spear", true, dudes_num[j], dudes[j], j); scr_en_weapon("Singing Spear Throw", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 300; + dudes_ac[j] = 10; + dudes_hp[j] = 150; men += dudes_num[j]; dudes_dr[j] = 0.5; } @@ -649,22 +649,25 @@ if __b__ { if (dudes[j] = "Autarch") { scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Fusion Gun", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 12; dudes_hp[j] = 150; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Farseer") { scr_en_weapon("Singing Spear", true, dudes_num[j], dudes[j], j); scr_en_weapon("Singing Spear Throw", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 150; + dudes_ac[j] = 10; + dudes_hp[j] = 120; + dudes_dr[j] = 0.6; men += dudes_num[j]; } if (dudes[j] = "Warlock") { scr_en_weapon("Witchblade", true, dudes_num[j], dudes[j], j); scr_en_weapon("Psyshock", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 100; + dudes_ac[j] = 10; + dudes_hp[j] = 80; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Avatar") { @@ -672,159 +675,173 @@ if __b__ { scr_en_weapon("Avatar Smite", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 300; + dudes_dr[j] = 0.55; veh += dudes_num[j]; } if (dudes[j] = "Mighty Avatar") { scr_en_weapon("Wailing Doom", true, dudes_num[j], dudes[j], j); scr_en_weapon("Avatar Smite", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 55; + dudes_ac[j] = 50; dudes_hp[j] = 450; + dudes_dr[j] = 0.5; veh += dudes_num[j]; } if (dudes[j] = "Godly Avatar") { scr_en_weapon("Wailing Doom", true, dudes_num[j], dudes[j], j); scr_en_weapon("Avatar Smite", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 70; + dudes_ac[j] = 60; dudes_hp[j] = 600; + dudes_dr[j] = 0.40; veh += dudes_num[j]; } if (dudes[j] = "Ranger") { scr_en_weapon("Ranger Long Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Shuriken Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; - dudes_hp[j] = 30; + dudes_ac[j] = 8; + dudes_hp[j] = 40; + dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Pathfinder") { scr_en_weapon("Pathfinder Long Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 8; dudes_hp[j] = 60; + dudes_dr[j] = 0.8; men += dudes_num[j]; } if (dudes[j] = "Dire Avenger") { scr_en_weapon("Avenger Shuriken Catapult", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; - dudes_hp[j] = 30; + dudes_ac[j] = 10; + dudes_hp[j] = 40; men += dudes_num[j]; } if (dudes[j] = "Dire Avenger Exarch") { scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 50; // Shimmershield + dudes_ac[j] = 10; + dudes_hp[j] = 70; // Shimmershield men += dudes_num[j]; } if (dudes[j] = "Howling Banshee") { scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Shuriken Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; - dudes_hp[j] = 30; + dudes_ac[j] = 8; + dudes_hp[j] = 40; + dudes_dr[j] = 0.8; men += dudes_num[j]; } if (dudes[j] = "Howling Banshee Exarch") { scr_en_weapon("Executioner", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 50; + dudes_ac[j] = 10; + dudes_hp[j] = 60; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Striking Scorpion") { scr_en_weapon("Scorpion Chainsword", true, dudes_num[j], dudes[j], j); scr_en_weapon("Shuriken Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Mandiblaster", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 30; + dudes_ac[j] = 8; + dudes_hp[j] = 60; men += dudes_num[j]; } if (dudes[j] = "Striking Scorpion Exarch") { scr_en_weapon("Biting Blade", true, dudes_num[j], dudes[j], j); scr_en_weapon("Scorpion's Claw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Mandiblaster", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 50; + dudes_ac[j] = 10; + dudes_hp[j] = 80; men += dudes_num[j]; } if (dudes[j] = "Fire Dragon") { scr_en_weapon("Fusion Gun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Meltabomb", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; - dudes_hp[j] = 30; + dudes_ac[j] = 12; + dudes_hp[j] = 40; men += dudes_num[j]; } if (dudes[j] = "Fire Dragon Exarch") { scr_en_weapon("Firepike", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 50; + dudes_ac[j] = 12; + dudes_hp[j] = 60; men += dudes_num[j]; } if (dudes[j] = "Warp Spider") { scr_en_weapon("Deathspinner", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; - dudes_hp[j] = 30; + dudes_ac[j] = 8; + dudes_hp[j] = 40; + dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Warp Spider Exarch") { scr_en_weapon("Dual Deathspinners", true, dudes_num[j], dudes[j], j); scr_en_weapon("Powerblades", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 50; + dudes_ac[j] = 10; + dudes_hp[j] = 60; + dudes_dr[j] = 0.8; men += dudes_num[j]; } if (dudes[j] = "Dark Reaper") { scr_en_weapon("Reaper Launcher", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 30; + dudes_ac[j] = 10; + dudes_hp[j] = 40; men += dudes_num[j]; } if (dudes[j] = "Dark Reaper Exarch") { - scr_en_weapon("Eldar Missile Launcher", true, dudes_num[j], dudes[j], j); + scr_en_weapon("Tempest Launcher", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 10; dudes_hp[j] = 50; men += dudes_num[j]; } if (dudes[j] = "Shining Spear") { scr_en_weapon("Laser Lance", true, dudes_num[j], dudes[j], j); scr_en_weapon("Twin Linked Shuriken Catapult", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 30; - men += dudes_num[j]; + dudes_ac[j] = 10; + dudes_hp[j] = 75; + dudes_dr[j] = 0.8; + veh += dudes_num[j]; + dudes_vehicle[j] = 1; } if (dudes[j] = "Guardian") { scr_en_weapon("Shuriken Catapult", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; + dudes_ac[j] = 8; dudes_hp[j] = 30; men += dudes_num[j]; } if (dudes[j] = "Grav Platform") { scr_en_weapon("Pulse Laser", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; - dudes_hp[j] = 70; + dudes_ac[j] = 10; + dudes_hp[j] = 60; men += dudes_num[j]; } if (dudes[j] = "Trouper") { scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Fusion Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 8; dudes_hp[j] = 50; + dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "Athair") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Harlequin's Kiss", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 8; dudes_hp[j] = 75; + dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "Wraithguard") { scr_en_weapon("Wraithcannon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 80; + dudes_ac[j] = 15; + dudes_hp[j] = 125; + dudes_dr[j] = 0.70; men += dudes_num[j]; } if (dudes[j] = "Vyper") { @@ -832,6 +849,7 @@ if __b__ { scr_en_weapon("Pulse Laser", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 100; + dudes_dr[j] = 0.8; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -841,6 +859,7 @@ if __b__ { scr_en_weapon("Bright Lance", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 200; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -849,13 +868,15 @@ if __b__ { scr_en_weapon("Prism Cannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 200; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Nightspinner") { scr_en_weapon("Twin Linked Doomweaver", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; - dudes_hp[j] = 170; + dudes_hp[j] = 200; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -865,6 +886,7 @@ if __b__ { scr_en_weapon("Starcannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 200; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -874,6 +896,7 @@ if __b__ { scr_en_weapon("Titan Starcannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 50; dudes_hp[j] = 800; + dudes_dr[j] = 0.35; veh += dudes_num[j]; dudes_vehicle[j] = 1; } From c82af0ab4fe848519474658fdfc342f5d5e57cc5 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Sat, 15 Feb 2025 00:50:49 +0900 Subject: [PATCH 13/47] Eldar weapon --- scripts/scr_en_weapon/scr_en_weapon.gml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/scripts/scr_en_weapon/scr_en_weapon.gml b/scripts/scr_en_weapon/scr_en_weapon.gml index f424ffc980..f830b93a35 100644 --- a/scripts/scr_en_weapon/scr_en_weapon.gml +++ b/scripts/scr_en_weapon/scr_en_weapon.gml @@ -152,12 +152,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 6) { - if (argument0 = "Fusion Gun") or(argument0 = "Firepike") { + if (argument0 = "Fusion Gun"){ atta = 200; arp = 1; rang = 2; amm = 4; } + + if (argument0 = "Firepike") { + atta = 300; + arp = 1; + rang = 4; + amm = 4; + } if (argument0 = "Singing Spear") { atta = 120; arp = -1; @@ -268,7 +275,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 2; } if (argument0 = "Dual Deathspinner") { - atta = 80; + atta = 100; arp = 0; rang = 2; } @@ -279,12 +286,12 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { amm = 8; spli = 3; } - if (argument0 = "Eldar Missile Launcher") { + if (argument0 = "Tempest Launcher") { atta = 200; arp = -1; rang = 20; - amm = 4; - spli = 3; + amm = 8; + spli = 9; } if (argument0 = "Laser Lance") { atta = 80; From bdccc770db26bd4d1ad98cbe636be707be5bfec3 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Sat, 15 Feb 2025 01:22:47 +0900 Subject: [PATCH 14/47] Daemons Durability --- objects/obj_enunit/Alarm_1.gml | 56 ++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/objects/obj_enunit/Alarm_1.gml b/objects/obj_enunit/Alarm_1.gml index 8b935e419e..25e9ac8929 100644 --- a/objects/obj_enunit/Alarm_1.gml +++ b/objects/obj_enunit/Alarm_1.gml @@ -85,8 +85,8 @@ repeat(20) { if ((obj_ncombat.started = 0) or(neww = 1)) or(dudes_num[j] > 1) { if (dudes[j] = "Greater Daemon of Khorne") { - dudes_ac[j] = 18; - dudes_hp[j] = 600; + dudes_ac[j] = 12; + dudes_hp[j] = 700; } } if (dudes[j] = "Greater Daemon of Khorne") { @@ -97,20 +97,22 @@ repeat(20) { } if ((obj_ncombat.started = 0) or(neww = 1)) or(dudes_num[j] > 1) { if (dudes[j] = "Greater Daemon of Slaanesh") { - dudes_ac[j] = 18; - dudes_hp[j] = 500; + dudes_ac[j] = 10; + dudes_hp[j] = 500; + dudes_dr[j] = 0.25; } } if (dudes[j] = "Greater Daemon of Slaanesh") { scr_en_weapon("Demon Melee", true, dudes_num[j], dudes[j], j); scr_en_weapon("Lash Whip", true, dudes_num[j], dudes[j], j); - dudes_dr[j] = 0.7; + dudes_dr[j] = 0.25; medi += dudes_num[j]; } if ((obj_ncombat.started = 0) or(neww = 1)) or(dudes_num[j] > 1) { if (dudes[j] = "Greater Daemon of Nurgle") { - dudes_ac[j] = 25; - dudes_hp[j] = 700; + dudes_ac[j] = 8; + dudes_hp[j] = 900; + dudes_dr[j] = 0.2; } } if (dudes[j] = "Greater Daemon of Nurgle") { @@ -121,54 +123,54 @@ repeat(20) { } if ((obj_ncombat.started = 0) or(neww = 1)) or(dudes_num[j] > 1) { if (dudes[j] = "Greater Daemon of Tzeentch") { - dudes_ac[j] = 18; - dudes_hp[j] = 500; + dudes_ac[j] = 10; + dudes_hp[j] = 600; } } if (dudes[j] = "Greater Daemon of Tzeentch") { scr_en_weapon("Demon Melee", true, dudes_num[j], dudes[j], j); scr_en_weapon("Witchfire", true, dudes_num[j], dudes[j], j); - dudes_dr[j] = 0.7; + dudes_dr[j] = 0.75; medi += dudes_num[j]; } if (dudes[j] = "Bloodletter") { scr_en_weapon("Bloodletter Melee", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; - dudes_hp[j] = 150; + dudes_hp[j] = 200; men += dudes_num[j]; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.4; } if (dudes[j] = "Daemonette") { scr_en_weapon("Daemonette Melee", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 8; - dudes_hp[j] = 100; + dudes_hp[j] = 150; men += dudes_num[j]; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.3; } if (dudes[j] = "Pink Horror") { scr_en_weapon("Eldritch Fire", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 8; - dudes_hp[j] = 80; + dudes_hp[j] = 100; men += dudes_num[j]; - dudes_dr[j] = 0.2; + dudes_dr[j] = 0.5; } if (dudes[j] = "Plaguebearer") { scr_en_weapon("Plaguebearer Melee", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; - dudes_hp[j] = 200; + dudes_ac[j] = 5; + dudes_hp[j] = 300; men += dudes_num[j]; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.4; } if (dudes[j] = "Helbrute") { scr_en_weapon("Power Fist", false, dudes_num[j], dudes[j], j); scr_en_weapon("Multi-Melta", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; - dudes_hp[j] = 100; + dudes_hp[j] = 300; veh += dudes_num[j]; dudes_vehicle[j] = 1; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.5; } if (dudes[j] = "Soul Grinder") { scr_en_weapon("Warpsword", false, dudes_num[j], dudes[j], j); @@ -178,15 +180,15 @@ repeat(20) { dudes_hp[j] = 350; veh += dudes_num[j]; dudes_vehicle[j] = 1; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.5; } if (dudes[j] = "Maulerfiend") { scr_en_weapon("Maulerfiend Claws", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 30; dudes_hp[j] = 250; veh += dudes_num[j]; dudes_vehicle[j] = 1; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.5; } } @@ -1219,7 +1221,7 @@ if __b__ { scr_en_weapon("Venom Cannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 300; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1492,8 +1494,8 @@ if __b__ { scr_en_weapon("Power Fist", false, dudes_num[j], dudes[j], j); scr_en_weapon("Meltagun", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; - dudes_hp[j] = 200; - dudes_dr[j] = 0.75; + dudes_hp[j] = 300; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } From 0d4d624f99a95b240b840445d5eefc049ef8206c Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Sat, 15 Feb 2025 16:02:06 +0900 Subject: [PATCH 15/47] display weapon finished --- objects/obj_shop/Create_0.gml | 6 +++++- scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/objects/obj_shop/Create_0.gml b/objects/obj_shop/Create_0.gml index c100c2cab7..f7dfc69c38 100644 --- a/objects/obj_shop/Create_0.gml +++ b/objects/obj_shop/Create_0.gml @@ -508,7 +508,11 @@ if (shop = "equipment") { forge_cost[i] = 200; item_stocked[i] = scr_item_count(item[i]); item_cost[i] = 10; - + i += 1; + item[i] = "Needle Sniper Rifle"; + forge_cost[i] = 500; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 200; i += 1; item[i] = "Missile Launcher"; forge_cost[i] = 300; diff --git a/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml b/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml index 3a1fe35450..963e5ba064 100644 --- a/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml +++ b/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml @@ -68,6 +68,7 @@ function scr_ui_display_weapons(left_or_right, current_armor, equiped_weapon, cu "Infernus Pistol":spr_weapon_inferno, "Bolter":spr_weapon_bolter, "Storm Bolter":spr_weapon_sbolter, + "Wrist-Mounted Storm Bolter":spr_weapon_sbolter, "Plasma Pistol":spr_weapon_plasp, "Plasma Gun":spr_weapon_plasg, "Flamer":spr_weapon_flamer, @@ -127,6 +128,7 @@ function scr_ui_display_weapons(left_or_right, current_armor, equiped_weapon, cu "Power Spear":spr_weapon_powspear, "Thunder Hammer":spr_weapon_thhammer, "Power Axe":spr_weapon_powaxe, + "Omnissian Axe":spr_weapon_powaxe, "Crozius Arcanum":spr_weapon_crozarc, "Chainaxe":spr_weapon_chaxe, "Force Staff":spr_weapon_frcstaff, @@ -189,6 +191,7 @@ function scr_ui_display_weapons(left_or_right, current_armor, equiped_weapon, cu if (!sprite_found){ var special_ranged ={ "Sniper Rifle":spr_weapon_sniper, + "Needle Sniper Rifle":spr_weapon_sniper, "Autocannon":spr_weapon_autocannon2, } var special_ranged_names=struct_get_names(special_ranged); @@ -324,7 +327,7 @@ function scr_ui_display_weapons(left_or_right, current_armor, equiped_weapon, cu hand_variant[left_or_right] = 3; } - if (array_contains(["Sniper Rifle", "Force Staff", "Power Sword", "Thunder Hammer", "Autocannon", "Combat Knife", "Power Spear", "Chainsword", "Force Sword"], equiped_weapon)) { + if (array_contains(["Sniper Rifle", "Needle Sniper Rifle", "Force Staff", "Power Sword", "Thunder Hammer", "Autocannon", "Combat Knife", "Power Spear", "Chainsword", "Force Sword"], equiped_weapon)) { hand_variant[left_or_right] = 2; hand_on_top[left_or_right] = true; } From c6b426a440efdb379ecd4039c7b814240d55f9ec Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Sat, 15 Feb 2025 16:14:32 +0900 Subject: [PATCH 16/47] libs revisit --- scripts/scr_powers/scr_powers.gml | 48 +++++++++++++++---------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/scripts/scr_powers/scr_powers.gml b/scripts/scr_powers/scr_powers.gml index fa4e5f8485..f4ad97b7a1 100644 --- a/scripts/scr_powers/scr_powers.gml +++ b/scripts/scr_powers/scr_powers.gml @@ -236,17 +236,17 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { // Chaos powers here - if (power_name="Wave of Entropy"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=250;p_arp=-1;p_duration=0; + if (power_name="Wave of Entropy"){p_type="attack";p_rang=3;p_tar=3;p_spli=10;p_att=250;p_arp=-1;p_duration=0; flavour_text2="- a putrid cone of warp energy splashes outward, "; if (obj_ncombat.enemy=9) then flavour_text2+="twisting and rusting everything it touches. "; if (obj_ncombat.enemy!=9) then flavour_text2+="boiling and putrifying flesh. "; if (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Wave of Change"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=300;p_arp=-2;p_duration=0; + if (power_name="Wave of Change"){p_type="attack";p_rang=3;p_tar=3;p_spli=10;p_att=300;p_arp=-2;p_duration=0; flavour_text2="- a wispy cone of warp energy reaches outward, twisting and morphing all that it touches. "; if (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Insect Swarm"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=500;p_arp=-1;p_duration=0; + if (power_name="Insect Swarm"){p_type="attack";p_rang=3;p_tar=3;p_spli=8;p_att=500;p_arp=-1;p_duration=0; var rah;rah=choose(1,2); if (rah=1) then flavour_text2="- a massive, black cloud of insects spew from his body. At once they begin burrowing into your foes. "; if (rah=2) then flavour_text2="- rank, ichory insects spew forth from his body at your foes. They begin burrowing through flesh and armour alike. "; @@ -259,24 +259,24 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { marine_attack[unit_id]+=2;marine_ranged[unit_id]=0; if (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Putrid Vomit"){p_type="attack";p_rang=2.1;p_tar=3;p_spli=1;p_att=600;p_arp=-2;p_duration=0; + if (power_name="Putrid Vomit"){p_type="attack";p_rang=2.1;p_tar=3;p_spli=15;p_att=600;p_arp=-2;p_duration=0; var rah;rah=choose(1,2); flavour_text2="- from in front of their mouth a stream of rancid, acidic vomit spews forth at tremendous pressure, splashing over his foes. "; if (obj_ncombat.enemy=9) then p_att=450; if (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Warp Bolts"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=450;p_arp=1;p_duration=0; + if (power_name="Warp Bolts"){p_type="attack";p_rang=5;p_tar=3;p_spli=8;p_att=450;p_arp=1;p_duration=0; var rah;rah=choose(1,2,3); if (rah=1) then flavour_text2="- several bolts of purple warp energy appear and are flung at the enemy. "; if (rah=2) then flavour_text2="- he launches a series of rapid warp bolts at the enemy. "; if (rah=3) then flavour_text2="- three oozing, shifting bolts of warp energy fly outward from his palms. "; if (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Warp Beam"){p_type="attack";p_rang=8;p_tar=4;p_spli=1;p_att=600;p_arp=1;p_duration=0; + if (power_name="Warp Beam"){p_type="attack";p_rang=8;p_tar=4;p_spli=4;p_att=600;p_arp=1;p_duration=0; flavour_text2="- a massive beam of purple warp energy shoots forth. All that it touches is consumed. "; if (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Rainbow Beam"){p_type="attack";p_rang=10;p_tar=3;p_spli=1;p_att=500;p_arp=1;p_duration=0; + if (power_name="Rainbow Beam"){p_type="attack";p_rang=10;p_tar=3;p_spli=8;p_att=750;p_arp=1;p_duration=0; flavour_text2="- a massive beam of warp energy hisses at the enemy, the crackling energy shifting through every color imaginable sickeningly fast. "; if (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } @@ -320,11 +320,11 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { // target 0: self 1: ally 2: ally vehicle 3: enemy 4: enemy vehicle - if (power_name="Minor Smite"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=250;p_arp=-2;p_duration=0; + if (power_name="Minor Smite"){p_type="attack";p_rang=5;p_tar=3;p_spli=10;p_att=250;p_arp=-2;p_duration=0; flavour_text2="- a coil of warp energy lashes out at the enemy. "; if (binders=true) then flavour_text2="- a green, sickly coil of energy lashes out at the enemy. "; } - if (power_name="Smite"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=350;p_arp=-2;p_duration=0; + if (power_name="Smite"){p_type="attack";p_rang=5;p_tar=3;p_spli=15;p_att=350;p_arp=-2;p_duration=0; var rah;rah=choose(1,2,3); if (rah=1) then flavour_text2="- a blast of warp energy smashes into the enemy. "; if (rah=2) then flavour_text2="- warp lightning crackles and leaps to the enemy. "; @@ -340,7 +340,7 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { if (power_name="Machine Curse"){p_type="attack";p_rang=5;p_tar=4;p_spli=0;p_att=400;p_arp=1;p_duration=0; flavour_text2="- the machine spirit within an enemy vehicle is roused. "; } - if (power_name="Avenge"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=500;p_arp=-2;p_duration=0; + if (power_name="Avenge"){p_type="attack";p_rang=8;p_tar=3;p_spli=12;p_att=500;p_arp=-2;p_duration=0; var rah;rah=choose(1,2); if (rah=1) then flavour_text2="- a destructive avatar of rolling flame crashes into the enemy. "; if (rah=2) then flavour_text2="- a massive conflagration rises up and then crashes down upon the enemy. "; @@ -360,7 +360,7 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { } - if (power_name="Breathe Fire"){p_type="attack";p_rang=3;p_tar=3;p_spli=0;p_att=300;p_arp=-1;p_duration=0; + if (power_name="Breathe Fire"){p_type="attack";p_rang=3;p_tar=3;p_spli=12;p_att=300;p_arp=-1;p_duration=0; flavour_text2="- a bright jet of flame shoots forth at the enemy. "; if (binders=true) then flavour_text2="- a greenish, eery jet of flame shoots forth at the enemy. "; } @@ -372,25 +372,25 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { flavour_text2=". Orange sheets of fire shimmer around your forces, protecting them. "; if (binders=true) then flavour_text2="- Purple sheets of warp fire shimmer around your forces, protecting them. "; } - if (power_name="Inferno"){p_type="attack";p_rang=4;p_tar=3;p_spli=1;p_att=600;p_arp=-1;p_duration=0; + if (power_name="Inferno"){p_type="attack";p_rang=4;p_tar=3;p_spli=20;p_att=600;p_arp=-1;p_duration=0; var rah;rah=choose(1,2); if (rah=1) then flavour_text2="- a massive conflagration rises up and then crashes down upon the enemy. "; if (rah=2) then flavour_text2="- after breathing deeply a massive jet of flame is unleashed. Smoke billows into the sky. "; if (binders=true) and (rah=1) then flavour_text2="- a hideous being of rolling flame crashes into the enemy. "; if (binders=true) and (rah=2) then flavour_text2="- a massive conflagration rises up and then crashes down upon the enemy. "; } - if (power_name="Sun Burst"){p_type="attack";p_rang=8;p_tar=4;p_spli=1;p_att=400;p_arp=1;p_duration=0; + if (power_name="Sun Burst"){p_type="attack";p_rang=8;p_tar=4;p_spli=2;p_att=400;p_arp=1;p_duration=0; flavour_text2="- a crackling, hissing beam of purple-red flame shoots from him. "; if (binders=true) then flavour_text2="- a crackling, hissing beam of purple warp shoots from him. "; if (binders=true) and (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Molten Beam"){p_type="attack";p_rang=8;p_tar=4;p_spli=1;p_att=600;p_arp=1;p_duration=0; + if (power_name="Molten Beam"){p_type="attack";p_rang=8;p_tar=4;p_spli=4;p_att=600;p_arp=1;p_duration=0; flavour_text2="- a white-blue beam, blinding to behold, shoots forth. All that it touches turns to slag. "; if (binders=true) then flavour_text2="- a massive beam of purple warp energy shoots forth. All that it touches is consumed. "; if (binders=true) and (obj_ncombat.sorcery_seen<2) and (obj_ncombat.present_inquisitor=1) then obj_ncombat.sorcery_seen=1; } - if (power_name="Blood Boil"){p_type="attack";p_rang=3;p_tar=3;p_spli=0;p_att=250;p_arp=1;p_duration=0; + if (power_name="Blood Boil"){p_type="attack";p_rang=3;p_tar=3;p_spli=6;p_att=250;p_arp=1;p_duration=0; flavour_text2="- accelerating the pulse and blood pressure of his foes. "; } if (power_name="Iron Arm"){p_type="buff";p_rang=0;p_tar=0;p_spli=0;p_att=0;p_arp=0;p_duration=3; @@ -402,14 +402,14 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { if (power_name="Regenerate"){p_type="buff";p_rang=0;p_tar=0;p_spli=0;p_att=0;p_arp=0;p_duration=0; flavour_text2=". His flesh shimmers and twists back together, sealing up wounds and damage. "; } - if (power_name="Haemorrhage"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=800;p_arp=-2;p_duration=0; + if (power_name="Haemorrhage"){p_type="attack";p_rang=3;p_tar=3;p_spli=3;p_att=800;p_arp=-2;p_duration=0; flavour_text2="- reaching inside of his foes and lighting their flesh aflame. "; } - if (power_name="Crush"){p_type="attack";p_rang=4;p_tar=4;p_spli=0;p_att=300;p_arp=1;p_duration=0; + if (power_name="Crush"){p_type="attack";p_rang=8;p_tar=4;p_spli=2;p_att=300;p_arp=1;p_duration=0; flavour_text2="- his foes are entraped in a crushing mass of force. "; } - if (power_name="Shockwave"){p_type="attack";p_rang=4;p_tar=3;p_spli=1;p_att=300;p_arp=0;p_duration=0; + if (power_name="Shockwave"){p_type="attack";p_rang=6;p_tar=3;p_spli=6;p_att=300;p_arp=-1;p_duration=0; var rah;rah=choose(1,2,3); flavour_text2="- a massive wave of force smashes aside his foes. "; } @@ -421,31 +421,31 @@ function scr_powers(power_set, power_count, enemy_target, unit_id) { } - if (power_name="Living Lightning"){p_type="attack";p_rang=5;p_tar=3;p_spli=0;p_att=300;p_arp=0;p_duration=0; + if (power_name="Living Lightning"){p_type="attack";p_rang=5;p_tar=3;p_spli=12;p_att=300;p_arp=-1;p_duration=0; flavour_text2="- arcs of lightning shoot from hand and strike his foes. "; } if (power_name="Stormbringer"){p_type="buff";p_rang=1;p_tar=1;p_spli=0;p_att=0;p_arp=0;p_duration=2; flavour_text2=". A vortex of ice and winds crackle into existance, covering your forces."; } - if (power_name="Murderous Hurricane"){p_type="attack";p_rang=4;p_tar=3;p_spli=1;p_att=450;p_arp=-1;p_duration=0; + if (power_name="Murderous Hurricane"){p_type="attack";p_rang=8;p_tar=3;p_spli=10;p_att=450;p_arp=-1;p_duration=0; var rah;rah=choose(1,2,3); flavour_text2="- a mighty winter gale billows forth, shredding and freezing flesh. "; } - if (power_name="Fury of the Wolf Spirits"){p_type="attack";p_rang=3;p_tar=3;p_spli=1;p_att=440;p_arp=-2;p_duration=0; + if (power_name="Fury of the Wolf Spirits"){p_type="attack";p_rang=5;p_tar=3;p_spli=8;p_att=440;p_arp=-2;p_duration=0; var rah;rah=choose(1,2); if (rah=1) then flavour_text2="- a pair of Thunderwolf revenants sprint outward, running down and overwhelming foes. "; if (rah=2) then flavour_text2="- ghostly visages of Freki and Geri launch into his foes, overwhelming them. "; } - if (power_name="Thunderclap"){p_type="attack";p_rang=1.1;p_tar=3;p_spli=1;p_att=600;p_arp=-2;p_duration=0; + if (power_name="Thunderclap"){p_type="attack";p_rang=2.1;p_tar=3;p_spli=1;p_att=600;p_arp=-2;p_duration=0; flavour_text2="- smashing his gauntlets together and unleashing a mighty shockwave. "; } - if (power_name="Jaws of the World Wolf"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=800;p_arp=1;p_duration=0; + if (power_name="Jaws of the World Wolf"){p_type="attack";p_rang=5;p_tar=3;p_spli=20;p_att=800;p_arp=1;p_duration=0; flavour_text2="- chasms open up beneath his foes, swallowing them down and crushing them. "; } - if (power_name="Avenge"){p_type="attack";p_rang=5;p_tar=3;p_spli=1;p_att=500;p_arp=-1;p_duration=0; + if (power_name="Avenge"){p_type="attack";p_rang=8;p_tar=3;p_spli=12;p_att=500;p_arp=-2;p_duration=0; var rah;rah=choose(1,2); if (rah=1) then flavour_text2="- a destructive avatar of rolling flame crashes into the enemy. "; if (rah=2) then flavour_text2="- a massive conflagration rises up and then crashes down upon the enemy. "; From ed940b66968b2f5b51d9f9295f2d0afd917b1156 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Tue, 18 Feb 2025 23:22:51 +0900 Subject: [PATCH 17/47] needle snipe description and abbreviation --- scripts/scr_weapon/scr_weapon.gml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 286501e800..87a4bb4d46 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -989,13 +989,13 @@ global.weapons = { "tags": ["precision", "rifle"] }, "Needle Sniper Rifle": { - "abbreviation": "SnprRfl", + "abbreviation": "NdlSnpr", "attack": { "standard": 250, "master_crafted": 300, "artifact": 350 }, - "description": "The Sniper Rifle fires a solid shell over long range and boasts powerful telescopic sights to assist, allowing the user to target enemy weak points and distant foes.", + "description": "The Needle Sniper Rifle is a deadly weapon that uses both directed lasers and crystallised neurotoxic needles to dispatch enemies, commonly favoured by assasins and Astartes Scouts .", "melee_hands": 1, "ranged_hands": 2, "ammo": 20, From aeae47d1981feb8a2ed94c276d6e17c4b9c8c2fa Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Wed, 19 Feb 2025 00:24:23 +0900 Subject: [PATCH 18/47] grav-cannon typo fix --- scripts/scr_initialize_custom/scr_initialize_custom.gml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/scr_initialize_custom/scr_initialize_custom.gml b/scripts/scr_initialize_custom/scr_initialize_custom.gml index 6444eb3f77..04c399c0a8 100644 --- a/scripts/scr_initialize_custom/scr_initialize_custom.gml +++ b/scripts/scr_initialize_custom/scr_initialize_custom.gml @@ -1340,7 +1340,7 @@ function scr_initialize_custom() { } var weapon_lists = { - heavy_weapons: ["Heavy Bolter", "Heavy Bolter", "Missile Launcher", "Missile Launcher", "Multi-Melta", "Lascannon","Plasma Cannon","Grav Cannon"], + heavy_weapons: ["Heavy Bolter", "Heavy Bolter", "Missile Launcher", "Missile Launcher", "Multi-Melta", "Lascannon","Plasma Cannon","Grav-Cannon"], melee_weapons: ["Chainsword", "Chainsword", "Chainsword", "Chainaxe", "Chainaxe"], special_melee_weapons: [ "Eviscerator", "Eviscerator", "Power Sword", "Power Sword", "Power Axe", "Power Axe", "Lightning Claw", "Lightning Claw", "Lightning Claw", "Power Fist", "Power Fist"], ranged_weapons: ["Bolter", "Bolter", "Storm Bolter", "Storm Bolter", "Stalker Pattern Bolter", "Stalker Pattern Bolter" ], @@ -1351,7 +1351,7 @@ function scr_initialize_custom() { } var weapon_weighted_lists = { - heavy_weapons: [["Heavy Bolter", 3], ["Missile Launcher", 3], ["Multi-Melta", 1], ["Lascannon", 1], ["Plasma Cannon", 1], ["Grav Cannon", 1]], + heavy_weapons: [["Heavy Bolter", 3], ["Missile Launcher", 3], ["Multi-Melta", 1], ["Lascannon", 1], ["Plasma Cannon", 1], ["Grav-Cannon", 1]], ranged_weapons: [["Bolter", 4], ["Storm Bolter", 2],["Stalker Pattern Bolter", 2]], special_ranged_weapons: [["Flamer", 2], ["Meltagun", 2], ["Plasma Gun", 1], ["Grav-Gun", 1]], melee_weapons: [["Chainsword", 3], ["Chainaxe", 2]], From 768e212cd33afa2bbde55f1831f516cb9f4a6f44 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Sat, 22 Mar 2025 22:08:04 +0300 Subject: [PATCH 19/47] Discard changes to ChapterMaster.yyp --- ChapterMaster.yyp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ChapterMaster.yyp b/ChapterMaster.yyp index d516caad1b..de2b304055 100644 --- a/ChapterMaster.yyp +++ b/ChapterMaster.yyp @@ -186,6 +186,7 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"daemon7.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"daemon8.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"daemon9.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"diplomacy_icons.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"diplomacy10.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"diplomacy11.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"diplomacy12.png","CopyToMask":-1,"filePath":"datafiles/images/diplomacy",}, @@ -447,10 +448,10 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"eldar.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"genestealercult.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"hulk.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"imperial.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"imperial_ship.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ork.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"imperial.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ork_ship.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ork.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"sector.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"space_marine.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"star.json","CopyToMask":-1,"filePath":"datafiles/main/names",}, @@ -1528,6 +1529,6 @@ ], "templateType": null, "TextureGroups": [ - {"resourceType":"GMTextureGroup","resourceVersion":"1.3","name":"Default","autocrop":true,"border":2,"compressFormat":"bz2","customOptions":"","directory":"","groupParent":null,"isScaled":false,"loadType":"default","mipsToGenerate":0,"targets":-1,}, + {"resourceType":"GMTextureGroup","resourceVersion":"1.3","name":"Default","autocrop":true,"border":2,"compressFormat":"bz2","directory":"","groupParent":null,"isScaled":false,"loadType":"default","mipsToGenerate":0,"targets":-1,}, ], } \ No newline at end of file From 20991ae243810c2e6a4f7f7860c4facf20633493 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Sat, 29 Mar 2025 16:18:32 +0900 Subject: [PATCH 20/47] Armors and Vehicle Adjustments --- scripts/scr_roster/scr_roster.gml | 22 +-- scripts/scr_weapon/scr_weapon.gml | 237 ++++++++++++++++++++++-------- 2 files changed, 187 insertions(+), 72 deletions(-) diff --git a/scripts/scr_roster/scr_roster.gml b/scripts/scr_roster/scr_roster.gml index 8599c017a2..494881af80 100644 --- a/scripts/scr_roster/scr_roster.gml +++ b/scripts/scr_roster/scr_roster.gml @@ -717,23 +717,23 @@ function add_vehicle_to_battle(company, veh_index, is_local){ if (obj_ini.veh_role[company][v] = "Land Speeder") { - targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 3; - targ.veh_hp_multiplier[targ.veh] = 3; - targ.veh_ac[targ.veh] = 30; + targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 2.5; + targ.veh_hp_multiplier[targ.veh] = 2.5; + targ.veh_ac[targ.veh] = 20; } else if (obj_ini.veh_role[company][v] = "Rhino") or(obj_ini.veh_role[company][v] = "Whirlwind") { - targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 5; - targ.veh_hp_multiplier[targ.veh] = 5; - targ.veh_ac[targ.veh] = 40; + targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 3; + targ.veh_hp_multiplier[targ.veh] = 3; + targ.veh_ac[targ.veh] = 35; } else if (obj_ini.veh_role[company][v] = "Predator") { - targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 6; - targ.veh_hp_multiplier[targ.veh] = 6; - targ.veh_ac[targ.veh] = 45; + targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 3; + targ.veh_hp_multiplier[targ.veh] = 3; + targ.veh_ac[targ.veh] = 40; } else if (obj_ini.veh_role[company][v] = "Land Raider") { - targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 8; - targ.veh_hp_multiplier[targ.veh] = 8; + targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 5; + targ.veh_hp_multiplier[targ.veh] = 5; targ.veh_ac[targ.veh] = 50; } diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 87a4bb4d46..bd4c81dfd6 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -1960,9 +1960,9 @@ global.weapons = { "Snazzgun": { "abbreviation": "Snazz", "attack": { - "standard": 80, - "master_crafted": 92, - "artifact": 104 + "standard": 200, + "master_crafted": 230, + "artifact": 280 }, "ranged_hands": 1, "ammo": 20, @@ -1998,18 +1998,28 @@ global.gear = { "abbreviation": "Artfcr", "armour_value": { "standard": 30, - "master_crafted": 34, - "artifact": 38 + "master_crafted": 30, // This is already a custom suit of armor shouldnt Master crafted be its base state? + "artifact": 30 }, "ranged_mod": { - "standard": 5, - "master_crafted": 10, - "artifact": 15 + "standard": 15, + "master_crafted": 20, + "artifact": 25 }, "melee_mod": { - "standard": 10, - "master_crafted": 15, - "artifact": 20 + "standard": 15, + "master_crafted": 20, + "artifact": 25 + }, + "hp_mod":{ + "standard": 15, + "master_crafted": 20, + "artifact": 25 + }, + "damage_resistance_mod": { + "standard": 15, + "master_crafted": 20, + "artifact": 25 }, "description": "A custom suit of power armored created by master artificiers and decorated without compare, this ancient Power Armour is beyond priceless. This suit's history is ancient and its users many.", "tags": ["power_armour"], @@ -2017,7 +2027,7 @@ global.gear = { "Terminator Armour": { "abbreviation": "Indmts", "armour_value": { - "standard": 42, + "standard": 40, "master_crafted": 46, "artifact": 50 }, @@ -2027,9 +2037,19 @@ global.gear = { "artifact": 0 }, "melee_mod": { - "standard": 20, - "master_crafted": 25, - "artifact": 30 + "standard": 10, + "master_crafted": 15, + "artifact": 20 + }, + "hp_mod":{ + "standard": 10, + "master_crafted": 15, + "artifact": 20 + }, + "damage_resistance_mod": { + "standard": 0, + "master_crafted": 5, + "artifact": 10 }, "melee_hands": 2, "ranged_hands": 2, @@ -2041,19 +2061,29 @@ global.gear = { "Dreadnought": { "abbreviation": "Drdnght", "armour_value": { - "standard": 50, + "standard": 30, "master_crafted": 55, "artifact": 60 }, "ranged_mod": { - "standard": 0, - "master_crafted": 5, // Augmented - "artifact": 10 // Augmented + "standard": -10, + "master_crafted": 0, + "artifact": 10 }, "melee_mod": { - "standard": 0, - "master_crafted": 5, // Augmented - "artifact": 10 // Augmented + "standard": -10, + "master_crafted": 0, + "artifact": 10 + }, + "hp_mod":{ + "standard": 30, + "master_crafted": 35, + "artifact": 60 + }, + "damage_resistance_mod": { + "standard": -30, + "master_crafted": -25, + "artifact": -20 }, "melee_hands": 8, "ranged_hands": 8, @@ -2064,19 +2094,24 @@ global.gear = { "Tartaros": { "abbreviation": "Tartrs", "armour_value": { - "standard": 42, + "standard": 40, "master_crafted": 46, "artifact": 50 }, "ranged_mod": { - "standard": 0, - "master_crafted": 5, // Augmented - "artifact": 10 // Augmented + "standard": 10, + "master_crafted": 15, // Augmented + "artifact": 20 // Augmented }, "melee_mod": { - "standard": 20, - "master_crafted": 25, - "artifact": 30 + "standard": 10, + "master_crafted": 20, + "artifact": 25 + }, + "hp_mod":{ + "standard": 5, + "master_crafted": 10, + "artifact": 15 }, "melee_hands": 2, "ranged_hands": 2, @@ -2093,14 +2128,24 @@ global.gear = { "artifact": 50 }, "ranged_mod": { - "standard": 0, - "master_crafted": 5, // Augmented - "artifact": 10 // Augmented + "standard": -5, + "master_crafted": 0, + "artifact": 5 }, "melee_mod": { - "standard": 20, - "master_crafted": 25, - "artifact": 30, + "standard": -5, + "master_crafted": 0, + "artifact": 5 + }, + "hp_mod":{ + "standard": 10, + "master_crafted": 15, + "artifact": 20 + }, + "damage_resistance_mod": { + "standard": 10, + "master_crafted": 15, + "artifact": 20 }, "melee_hands": 2, "ranged_hands": 2, @@ -2117,23 +2162,33 @@ global.gear = { "artifact": 14 }, "ranged_mod": { - "standard": 15, - "master_crafted": 20, // Augmented - "artifact": 25 // Augmented + "standard": 10, + "master_crafted": 15, // Augmented + "artifact": 20 // Augmented }, "melee_mod": { "standard": 0, "master_crafted": 5, // Augmented "artifact": 10 // Augmented }, + "hp_mod":{ + "standard": 0, + "master_crafted": 10, + "artifact": 0 + }, + "damage_resistance_mod": { + "standard": 0, + "master_crafted": 10, + "artifact": 0 + }, "description": "A non-powered suit made up of carapace armour and ballistic nylon. Includes biohazard shielding, nutrient feed, and camouflage." }, "MK3 Iron Armour": { "abbreviation": "MK3", "armour_value": { - "standard": 26, - "master_crafted": 29, - "artifact": 32 + "standard": 22, + "master_crafted": 24, + "artifact": 28 }, "ranged_mod": { "standard": -10, @@ -2141,9 +2196,19 @@ global.gear = { "artifact": 0 }, "melee_mod": { + "standard": 10, + "master_crafted": 10, // Augmented + "artifact": 15 // Augmented + }, + "hp_mod":{ + "standard": 10, + "master_crafted": 15, + "artifact": 20 + }, + "damage_resistance_mod": { "standard": 0, - "master_crafted": 5, // Augmented - "artifact": 10 // Augmented + "master_crafted": 5, + "artifact": 10 }, "description": "An ancient set of Power Armor dating back to the early Great Crusade. The Mark III has heavier armor plating but is far heavier then its contemporaries.", "tags": ["power_armour"], @@ -2152,19 +2217,29 @@ global.gear = { "MK4 Maximus": { "abbreviation": "MK4", "armour_value": { - "standard": 22, - "master_crafted": 25, - "artifact": 28 + "standard": 17, + "master_crafted": 19, + "artifact": 23 }, "ranged_mod": { - "standard": 5, - "master_crafted": 10, - "artifact": 15 + "standard": 10, + "master_crafted": 15, + "artifact": 20 }, "melee_mod": { - "standard": 5, - "master_crafted": 10, // Augmented - "artifact": 15 // Augmented + "standard": 10, + "master_crafted": 15, // Augmented + "artifact": 20 // Augmented + }, + "hp_mod":{ + "standard": 0, + "master_crafted": 5, + "artifact": 10 + }, + "damage_resistance_mod": { + "standard": 0, + "master_crafted": 10, + "artifact": 0 }, "description": "Power Armor dating back to the end of the Great Crusade. It is considered the pinnacle of Power Armor by some Astartes. However, the components are no longer reproducible, the knowledge having been lost to time.", "tags": ["power_armour"], @@ -2187,6 +2262,16 @@ global.gear = { "master_crafted": 25, "artifact": 30 }, + "hp_mod":{ + "standard": 0, + "master_crafted": 5, + "artifact": 10 + }, + "damage_resistance_mod": { + "standard": -5, + "master_crafted": 0, + "artifact": 5 + }, "description": "A hastily assembled Power Armor that first started appearing during the Horus Heresy to act as a stopgap while new suits were produced and sent to loyalist legions. It excels in close combat but it has limited sensors for ranged combat.", "tags": ["power_armour"], "maintenance" : 0.05, @@ -2196,18 +2281,28 @@ global.gear = { "armour_value": { "standard": 15, "master_crafted": 17, - "artifact": 19 + "artifact": 21 }, "ranged_mod": { - "standard": 15, - "master_crafted": 20, // Augmented - "artifact": 25 // Augmented + "standard": 10, + "master_crafted": 15, // Augmented + "artifact": 30 // Augmented }, "melee_mod": { "standard": 0, "master_crafted": 5, // Augmented "artifact": 10 // Augmented }, + "hp_mod":{ + "standard": -5, + "master_crafted": 0, + "artifact": 5 + }, + "damage_resistance_mod": { + "standard": 0, + "master_crafted": 5, + "artifact": 5 + }, "description": "A suit dating back to the Horus Heresy, first tested by the Raven Guard. It contains boosted olfactory and auditory sensors that increase the ranged accuracy of the wearer. This however makes it more fragile to an extent.", "tags": ["power_armour"], "maintenance" : 0.05, @@ -2215,9 +2310,9 @@ global.gear = { "MK7 Aquila": { "abbreviation": "MK7", "armour_value": { - "standard": 17, - "master_crafted": 19, - "artifact": 21 + "standard": 18, + "master_crafted": 20, + "artifact": 24 }, "ranged_mod": { "standard": 0, @@ -2229,6 +2324,16 @@ global.gear = { "master_crafted": 5, // Augmented "artifact": 10 // Augmented }, + "hp_mod":{ + "standard": 0, + "master_crafted": 5, + "artifact": 10 + }, + "damage_resistance_mod": { + "standard": 0, + "master_crafted": 5, + "artifact": 10 + }, "description": "The most common power armour of the Adeptus Astartes and the only power armour still widely manufactured by the Imperium.", "tags": ["power_armour"], "maintenance" : 0.01, @@ -2236,8 +2341,8 @@ global.gear = { "MK8 Errant": { "abbreviation": "MK8", "armour_value": { - "standard": 22, - "master_crafted": 24, + "standard": 20, + "master_crafted": 22, "artifact": 26 }, "ranged_mod": { @@ -2250,6 +2355,16 @@ global.gear = { "master_crafted": 5, // Augmented "artifact": 10 // Augmented }, + "hp_mod":{ + "standard": 0, + "master_crafted": 5, + "artifact": 10 + }, + "damage_resistance_mod": { + "standard": 0, + "master_crafted": 5, + "artifact": 10 + }, "description": "The newest and most advanced of the standard mark power armours as such production has not yet reached maximum capacity creating a supply shortage while chapters rush to get access to them.", "tags": ["power_armour"], "maintenance" : 0.02, From e02bbba61804404627b16f3ec6994c37852ec990 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Mon, 31 Mar 2025 08:27:55 +0900 Subject: [PATCH 21/47] Weapons again :( --- scripts/scr_en_weapon/scr_en_weapon.gml | 220 +++++++++--------- scripts/scr_weapon/scr_weapon.gml | 282 +++++++++++++----------- 2 files changed, 263 insertions(+), 239 deletions(-) diff --git a/scripts/scr_en_weapon/scr_en_weapon.gml b/scripts/scr_en_weapon/scr_en_weapon.gml index f830b93a35..ecb18114d5 100644 --- a/scripts/scr_en_weapon/scr_en_weapon.gml +++ b/scripts/scr_en_weapon/scr_en_weapon.gml @@ -138,7 +138,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Lightning Gun") { atta = choose(80, 80, 80, 150); - arp = 0; + arp = -1; rang = 5; spli = 0; } @@ -210,7 +210,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 25; } if (argument0 = "Shuriken Catapult") { - atta = 35; + atta = 70; arp = -1; rang = 2; } @@ -225,13 +225,13 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 3; } if (argument0 = "Power Weapon") or(argument0 = "Power Blades") { - atta = 80; + atta = 100; arp = -1; rang = 1; spli = 3; } if (argument0 = "Shuriken Pistol") { - atta = 25; + atta = 50; arp = -1; rang = 2.1; } @@ -241,18 +241,18 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 1; } if (argument0 = "Scorpion Chainsword") { - atta = 40; + atta = 100; arp = 0; rang = 1; spli = 3; } if (argument0 = "Mandiblaster") { - atta = 20; + atta = 60; arp = 0; rang = 1; } if (argument0 = "Biting Blade") { - atta = 70; + atta = 150; arp = -1; rang = 1; spli = 3; @@ -270,105 +270,108 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { amm = 1; } if (argument0 = "Deathspinner") { - atta = 50; + atta = 125; arp = 0; rang = 2; } if (argument0 = "Dual Deathspinner") { - atta = 100; + atta = 250; arp = 0; rang = 2; } if (argument0 = "Reaper Launcher") { - atta = 150; + atta = 200; arp = -2; rang = 20; amm = 8; spli = 3; } if (argument0 = "Tempest Launcher") { - atta = 200; + atta = 350; arp = -1; - rang = 20; + rang = 15; amm = 8; spli = 9; } if (argument0 = "Laser Lance") { - atta = 80; + atta = 180; arp = -2; rang = 2; spli = 3; } if (argument0 = "Fusion Pistol") { - atta = 100; + atta = 125; arp = 1; rang = 1.1; amm = 4; } if (argument0 = "Plasma Pistol") { - atta = 60; + atta = 100; arp = -2; rang = 3.1; } if (argument0 = "Harlequin's Kiss") { atta = 350; - arp = 0; + arp = 1; rang = 1; amm = 1; } if (argument0 = "Wraithcannon") { - atta = 80; + atta = 200; arp = 1; rang = 2.1; } if (argument0 = "Pulse Laser") { - atta = 80; - arp = 0; + atta = 150; + arp = -1; rang = 15; } if (argument0 = "Bright Lance") { - atta = 100; + atta = 200; arp = 1; rang = 8; } if (argument0 = "Shuriken Cannon") { - atta = 65; + atta = 300; arp = -1; rang = 3; } if (argument0 = "Prism Cannon") { - atta = 250; + atta = 400; arp = 1; rang = 20; + spli = 1; } if (argument0 = "Twin Linked Doomweaver") { - atta = 100; - arp = 0; + atta = 400; + arp = 1; rang = 2; + spli = 2; } // Also create difficult terrain? if (argument0 = "Starcannon") { - atta = 140; - arp = 1; - rang = 3; - spli = 3; + atta = 250; + arp = -2; + rang = 8; + spli = 4; } if (argument0 = "Two Power Fists") { atta = 300; arp = 1; rang = 1; + spli = 2; } if (argument0 = "Flamer") { - atta = 100; + atta = 200; arp = 0; rang = 2; amm = 4; spli = 3; } if (argument0 = "Titan Starcannon") { - atta = 220; + atta = 500; arp = 1; rang = 4; - spli = 3; + spli = 8; } if (argument0 = "Phantom Pulsar") { atta = 500; @@ -381,60 +384,60 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 7) { if (argument0 = "Choppa") { - atta = 28; + atta = 140; arp = 0; rang = 1; spli = 3; } if (argument0 = "Power Klaw") { - atta = 150; - arp = -1; + atta = 300; + arp = -2; rang = 1; spli = 3; } if (argument0 = "Slugga") { - atta = 27; + atta = 120; arp = 0; rang = 3.1; amm = 4; spli = 3; } if (argument0 = "Tankbusta Bomb") { - atta = 264; + atta = 400; arp = 1; rang = 1; amm = 1; - spli = 0; + spli = 1; } if (argument0 = "Big Shoota") { - atta = 100; + atta = 110; arp = -1; - rang = 12; + rang = 6; amm = 30; - spli = 0; + spli = 5; } if (argument0 = "Dakkagun") { - atta = 200; + atta = 220; arp = -1; - rang = 10; + rang = 8; amm = 20; - spli = 0; + spli = 10; } if (argument0 = "Deffgun") { - atta = 120; + atta = 250; arp = -2; rang = 8; amm = 20; - spli = 0; + spli = 1; } if (argument0 = "Snazzgun") { - atta = 80; - arp = 0; - rang = 10; + atta = 200; + arp = -1; + rang = 5; spli = 0; } if (argument0 = "Grot Blasta") { - atta = 12; + atta = 50; arp = 0; rang = 2; amm = 6; @@ -447,27 +450,27 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; } if (argument0 = "Shoota") { - atta = 30; + atta = 80; arp = 0; - rang = 6; + rang = 5; } if (argument0 = "Burna") { atta = 140; - arp = 0; + arp = -1; rang = 2; amm = 4; spli = 3; } if (argument0 = "Skorcha") { - atta = 160; - arp = -1; + atta = 250; + arp = -2; rang = 2; amm = 6; spli = 3; } if (argument0 = "Rokkit Launcha") { - atta = 150; - arp = -1; + atta = 300; + arp = 1; rang = 15; spli = 3; } @@ -520,24 +523,25 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { atta = 150; arp = -2; rang = 18; + spli = 1; } if (name = "Pulse Rifle") { - atta = 100; - arp = 0; + atta = 80; + arp = -1; rang = 12; } if (name = "Rail Rifle") { - atta = 65; + atta = 80; arp = 1; rang = 14; } if (name = "Kroot Rifle") { - atta = 75; + atta = 100; arp = 0; rang = 6; } if (name = "Vespid Crystal") { - atta = 60; + atta = 100; arp = -2; rang = 2.1; } @@ -552,22 +556,22 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Bonesword") { atta = 120; - arp = -2; + arp = 1; rang = 1; spli = 3; } if (argument0 = "Lash Whip") { - atta = 80; + atta = 100; arp = 0; rang = 2; } if (argument0 = "Heavy Venom Cannon") { - atta = 150; - arp = -2; + atta = 200; + arp = 1; rang = 8; } if (argument0 = "Crushing Claws") { - atta = 100; + atta = 150; arp = 1; rang = 1; spli = 3; @@ -579,17 +583,17 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; } if (argument0 = "Devourer") { - atta = choose(40, 60, 80, 100); + atta = 150; arp = 0; rang = 5; if (obj_ini.preomnor = 1) { - atta = choose(48, 72, 96, 120); + atta = 180; } } if (argument0 = "Zoanthrope Blast") { - atta = 200; - arp = -2; - rang = 2; + atta = 400; + arp = 1; + rang = 6; } if (argument0 = "Carnifex Claws") { atta = 300; @@ -598,8 +602,8 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; } if (argument0 = "Venom Cannon") { - atta = 150; - arp = -2; + atta = 200; + arp = 1; rang = 5; } if (argument0 = "Deathspitter") { @@ -607,11 +611,11 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { arp = -2; rang = 2.1; if (obj_ini.preomnor = 1) { - atta = 120; + atta = 150; } } if (argument0 = "Fleshborer") { - atta = 15; + atta = 80; arp = 0; rang = 2.1; if (obj_ini.preomnor = 1) { @@ -624,7 +628,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 1; } if (argument0 = "Genestealer Claws") { - atta = choose(105, 105, 130); + atta = 90; arp = -2; rang = 1; } @@ -710,11 +714,11 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; } if (argument0 = "Bolter") { - atta = 45; + atta = 120; arp = 0; rang = 12; amm = 15; - if (obj_ncombat.enemy = 5) then atta = 35; + if (obj_ncombat.enemy = 5) then atta = 120; } // Bursts if (argument0 = "Power Fist") { atta = 425; @@ -735,37 +739,37 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; } if (argument0 = "Chainsword") { - atta = 45; + atta = 120; arp = 0; rang = 1; } if (argument0 = "Bolt Pistol") { - atta = 35; + atta = 100; arp = 0; rang = 3.1; amm = 18; } if (argument0 = "Chainaxe") { - atta = 55; + atta = 140; arp = 0; rang = 1; } if (argument0 = "Poisoned Chainsword") { - atta = 90; + atta = 150; arp = 0; rang = 1; if (obj_ini.preomnor = 1) { - atta = 130; + atta = 180; } } if (argument0 = "Sonic Blaster") { - atta = 120; + atta = 150; arp = -1; rang = 3; spli = 3; } if (argument0 = "Rubric Bolter") { - atta = 80; + atta = 150; arp = -1; rang = 12; amm = 15; @@ -776,20 +780,20 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 5.1; } if (argument0 = "Autogun") { - atta = 20; + atta = 60; arp = 0; rang = 6; amm = 12; } if (argument0 = "Storm Bolter") { - atta = 65; + atta = 180; arp = 0; rang = 8; amm = 10; spli = 3; } if (argument0 = "Lascannon") { - atta = 200; + atta = 300; arp = 1; rang = 20; amm = 8; @@ -807,14 +811,16 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; } if (argument0 = "Twin Linked Lascannon") { - atta = 300; + atta = 600; arp = 1; rang = 20; + spli = 2; } if (argument0 = "Twin-Linked Lascannon") { - atta = 300; + atta = 600; arp = 1; rang = 20; + spli = 2; } if (argument0 = "Battle Cannon") { atta = 300; @@ -825,27 +831,29 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { atta = 500; arp = -2; rang = 2; + spli = 8; if (instance_exists(obj_nfort)) then rang = 5; } if (argument0 = "Earthshaker Cannon") { - atta = 300; + atta = 250; arp = -1; rang = 12; - spli = 3; + spli = 8; } if (argument0 = "Havoc Launcher") { - atta = 100; + atta = 300; arp = 0; rang = 12; + spli = 12; } if (argument0 = "Baleflame") { - atta = 120; - arp = 0; + atta = 350; + arp = -2; rang = 2; } if (argument0 = "Defiler Claws") { atta = 350; - arp = 1; + arp = -2; rang = 1; spli = 3; } @@ -858,20 +866,20 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Ripper Gun") { - atta = 40; + atta = 120; arp = -1; rang = 3; amm = 5; spli = 0; } if (name = "Ogryn Melee") { - atta = 90; - arp = -1; + atta = 150; + arp = -2; rang = 1; } if (name = "Multi-Laser") { - atta = choose(60, 75, 90, 105); - arp = 0; + atta = 150; + arp = -1; rang = 10; } @@ -916,7 +924,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Lasgun") { - atta = 20; + atta = 80; arp = 0; rang = 6; amm = 30; @@ -955,14 +963,14 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 0; } if (name = "Gauss Flayer") { - atta = choose(50, 50, 50, 50, 50, 70); - atta = choose(30, 30, 30, 30, 30, 70); + atta = 70; + arp = -1; rang = 6.1; spli = 0; } if (name = "Gauss Blaster") { - atta = choose(70, 70, 70, 70, 70, 100); - arp = choose(0, 0, 0, 0, 0, 1); + atta = 120; + arp = -1; rang = 6.1; spli = 0; } diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index bd4c81dfd6..45d9e8ac21 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -14,7 +14,7 @@ global.weapons = { }, "melee_hands": 0.9, "ranged_hands": 1, - "tags": ["shield"], + "tags": ["shield","boarding 2"], "hp_mod": { "standard": 30, "master_crafted": 35, @@ -30,7 +30,7 @@ global.weapons = { "artifact": 6 }, "melee_hands": 0.9, - "tags": ["shield","boarding"], + "tags": ["shield","boarding 3"], "hp_mod": { "standard": 15, "master_crafted": 17.5, @@ -58,25 +58,25 @@ global.weapons = { "Combat Knife": { "abbreviation": "CbKnf", "attack": { - "standard": 50, - "master_crafted": 75, - "artifact": 100 + "standard": 100, + "master_crafted": 125, + "artifact": 150 }, "description": "More of a sword than a knife, this tough and thick blade becomes a deadly weapon in the hand of an Astartes.", "melee_hands": 0, "ranged_hands": 0, "ammo": 0, "range": 1, - "spli": 1, + "spli": 2, "arp": 0, "tags": ["knife"], }, "Chainsword": { "abbreviation": "ChSwrd", "attack": { - "standard": 130, - "master_crafted": 150, - "artifact": 200 + "standard": 150, + "master_crafted": 180, + "artifact": 250 }, "description": "A standard Chainsword. It is popular among Assault Marines due to their raw power while maintaining speed.", "melee_hands": 1, @@ -90,9 +90,9 @@ global.weapons = { "Chainaxe": { "abbreviation": "ChAxe", "attack": { - "standard": 110, - "master_crafted": 130, - "artifact": 150 + "standard": 175, + "master_crafted": 225, + "artifact": 275 }, "melee_mod": { "standard": 5, @@ -104,7 +104,7 @@ global.weapons = { "ranged_hands": 0, "ammo": 0, "range": 1, - "spli": 6, + "spli": 3, "arp": 0, "tags": ["chain", "axe", "dual", "savage", "boarding 2"], }, @@ -131,9 +131,9 @@ global.weapons = { "Eviscerator": { "abbreviation": "Evisc", "attack": { - "standard": 260, - "master_crafted": 290, - "artifact": 330 + "standard": 250, + "master_crafted": 300, + "artifact": 350 }, "melee_mod": { "standard": 2, @@ -153,8 +153,8 @@ global.weapons = { "abbreviation": "PwrSwrd", "attack": { "standard": 225, - "master_crafted": 260, - "artifact": 300 + "master_crafted": 275, + "artifact": 325 }, "melee_mod": { "standard": 1, @@ -188,7 +188,7 @@ global.weapons = { "ranged_hands": 0, "ammo": 0, "range": 1, - "spli": 6, + "spli": 3, "arp": -1, "special_properties": ["Parry"], "tags": ["power", "spear", "martial"], @@ -196,8 +196,8 @@ global.weapons = { "Chainfist": { "abbreviation": "ChFst", "attack": { - "standard": 550, - "master_crafted": 600, + "standard": 400, + "master_crafted": 550, "artifact": 700 }, "description": "Created by mounting a chainsword to a power fist, this weapon is easily able to carve through armoured bulkheads.", @@ -205,7 +205,7 @@ global.weapons = { "ranged_hands": 0, "range": 1, "spli": 4, - "tags": ["power","boarding 3", "chain", "fist", "dual", "siege", "savage"], + "tags": ["power","boarding 3", "chain", "fist", "siege", "savage"], "arp": -2, }, "Lascutter": { @@ -245,9 +245,9 @@ global.weapons = { "Power Axe": { "abbreviation": "PwrAxe", "attack": { - "standard": 200, - "master_crafted": 225, - "artifact": 300 + "standard": 250, + "master_crafted": 300, + "artifact": 350 }, "melee_mod": { "standard": 1, @@ -259,7 +259,7 @@ global.weapons = { "ranged_hands": 0, "ammo": 0, "range": 1, - "spli": 5, + "spli": 3, "arp": -1, "tags": ["power", "axe", "dual","savage", "boarding 2"], }, @@ -276,12 +276,12 @@ global.weapons = { "artifact": 1.2 }, "description": "A symbol that is equally weapon and holy icon given only to those trained by the Adeptus Mechanicus and have shown their devotion to the Omnissiah in battle.", - "melee_hands": 1, + "melee_hands": 1.5, "ranged_hands": 0, "ammo": 0, "range": 1, "spli": 5, - "arp": -1, + "arp": -2, "tags": ["power", "axe", "savage", "boarding 3"], }, "Executioner Power Axe": { @@ -308,8 +308,8 @@ global.weapons = { "Power Fist": { "abbreviation": "PwrFst", "attack": { - "standard": 450, - "master_crafted": 500, + "standard": 400, + "master_crafted": 450, "artifact": 600 }, "melee_mod": { @@ -329,8 +329,8 @@ global.weapons = { "Power Fists": { "abbreviation": "PwrFsts", "attack": { - "standard": 900, - "master_crafted": 1000, + "standard": 800, + "master_crafted": 900, "artifact": 1200 }, "description": "A large, ceramite clad gauntlets surrounded by power energy fields. Though cumbersome to use, they dish out tremendous damage to enemies, leaving very little behind.", @@ -361,8 +361,8 @@ global.weapons = { "Boltstorm Gauntlet": { "abbreviation": "BlstGnt", "attack": { - "standard": 450, - "master_crafted": 500, + "standard": 400, + "master_crafted": 450, "artifact": 600 }, "description": "The Boltstorm Gauntlet is a Power Fists with an Integrated Bolter, so aside from being reinforced with a crackling power field and able to crush armour, bone and even thick vehicle plating, it is also capable of firing bolts at an astonishing rate", @@ -378,8 +378,8 @@ global.weapons = { "Assault Chainfist": { "abbreviation": "AssltChFst", "attack": { - "standard": 550, - "master_crafted": 600, + "standard": 400, + "master_crafted": 550, "artifact": 700 }, "description": "Created by mounting a chainsword to a power fist, this weapon is easily able to carve through armoured bulkheads. Contains an integrated Assault Cannon", @@ -394,9 +394,9 @@ global.weapons = { "Lightning Claw": { "abbreviation": "LghtClw", "attack": { - "standard": 450, - "master_crafted": 500, - "artifact": 600 + "standard": 375, + "master_crafted": 425, + "artifact": 575 }, "description": "Lightning claws are specialized close combat weapons with built-in disruptor fields. These lethal claws rip into infantry like butter, bringing terror to the foe.", "melee_hands": 1.1, @@ -432,9 +432,9 @@ global.weapons = { "Thunder Hammer": { "abbreviation": "ThndHmr", "attack": { - "standard": 650, - "master_crafted": 750, - "artifact": 900 + "standard": 500, + "master_crafted": 600, + "artifact": 750 }, "melee_mod": { "standard": 1.3, @@ -446,7 +446,7 @@ global.weapons = { "ranged_hands": 1, "ammo": 0, "range": 1, - "spli": 10, + "spli": 3, "arp": -2, "maintenance" : 0.1, "req_exp": 100, @@ -455,9 +455,9 @@ global.weapons = { "Heavy Thunder Hammer": { "abbreviation": "HvyThndHmr", "attack": { - "standard": 800, - "master_crafted": 950, - "artifact": 1100, + "standard": 700, + "master_crafted": 850, + "artifact": 1000, }, "melee_mod": { "standard": 1.3, @@ -470,17 +470,17 @@ global.weapons = { "ammo": 0, "range": 1, "arp": -2, - "spli": 15, - "maintenance" : 0.1, + "spli": 4, + "maintenance" : 0.1, "req_exp": 100, "tags": ["heavy_melee", "power", "hammer", "siege", "savage"], }, "Power Mace": { "abbreviation": "PwrMace", "attack": { - "standard": 600, - "master_crafted": 700, - "artifact": 800 + "standard": 400, + "master_crafted": 450, + "artifact": 600 }, "melee_mod": { "standard": 1.3, @@ -493,16 +493,16 @@ global.weapons = { "ammo": 0, "range": 1, "arp": -2, - "spli": 10, + "spli": 6, "tags": ["power", "mace", "siege", "savage"], "req_exp": 100, }, "Mace of Absolution": { "abbreviation": "AbsltMace", "attack": { - "standard": 600, - "master_crafted": 700, - "artifact": 800 + "standard": 400, + "master_crafted": 450, + "artifact": 600 }, "melee_mod": { "standard": 1.3, @@ -515,7 +515,7 @@ global.weapons = { "ranged_hands": 2, "ammo": 0, "range": 1, - "spli": 10, + "spli": 6, "arp": -2, "tags": ["power", "mace", "siege", "pious", "savage"], "req_exp": 100, @@ -544,9 +544,9 @@ global.weapons = { "Crozius Arcanum": { "abbreviation": "Crzus", "attack": { - "standard": 200, - "master_crafted": 250, - "artifact": 325 + "standard": 250, + "master_crafted": 300, + "artifact": 400 }, "melee_mod": { "standard": 1, @@ -565,9 +565,9 @@ global.weapons = { "Relic Blade": { "abbreviation": "RlcBld", "attack": { - "standard": 850, - "master_crafted": 950, - "artifact": 1100 + "standard": 600, + "master_crafted": 750, + "artifact": 900 }, "melee_mod": { "standard": 1, @@ -619,6 +619,23 @@ global.weapons = { "maintenance" : 0.1, "tags": ["bolt", "pistol", "boarding 2"], }, + "Shotgun": { + "abbreviation": "Shotgun", + "attack": { + "standard": 250, + "master_crafted": 300, + "artifact": 350 + }, + "description": "An Astartes Shotgun capable of firing slug and other specialist munitions deadly up close but loses effectiveness at range.", + "melee_hands": 0, + "ranged_hands": 1, + "ammo": 10, + "range": 4.1, + "spli": 8, + "arp": 0, + "maintenance" : 0.1, + "tags": ["bolt", "pistol", "boarding 2"], + }, "Webber": { "abbreviation": "Webbr", "attack": { @@ -638,8 +655,8 @@ global.weapons = { "Grav-Pistol": { "abbreviation": "GrvPstl", "attack": { - "standard": 300, - "master_crafted": 350, + "standard": 250, + "master_crafted": 300, "artifact": 425 }, "description": "A smaller version of the Grav-Gun which utilises the gravitic reaction principle most commonly seen powering grav-vehicles such as the Land Speeder.", @@ -655,9 +672,9 @@ global.weapons = { "Integrated-Grav": { "abbreviation": "IntGrv", "attack": { - "standard": 500, - "master_crafted": 550, - "artifact": 625 + "standard": 400, + "master_crafted": 450, + "artifact": 600 }, "description": "", "melee_hands": 0, @@ -671,9 +688,9 @@ global.weapons = { "Grav-Gun": { "abbreviation": "GrvGn", "attack": { - "standard": 500, - "master_crafted": 550, - "artifact": 625 + "standard": 400, + "master_crafted": 450, + "artifact": 600 }, "description": "A medium-sized weapon which utilises the gravitic reaction principle most commonly seen powering grav-vehicles such as the Land Speeder.", "melee_hands": 1, @@ -688,9 +705,9 @@ global.weapons = { "Grav-Cannon": { "abbreviation": "GrvCan", "attack": { - "standard": 800, - "master_crafted": 850, - "artifact": 960 + "standard": 600, + "master_crafted": 700, + "artifact": 850 }, "description": "A bigger version of the Grav-Gun which utilises the gravitic reaction principle most commonly seen powering grav-vehicles such as the Land Speeder.", "melee_hands": 1, @@ -705,16 +722,16 @@ global.weapons = { "Underslung Bolter": { "abbreviation": "UndBltr", "attack": { - "standard": 100, - "master_crafted": 125, - "artifact": 150 + "standard": 150, + "master_crafted": 200, + "artifact": 300 }, "description": "A compact, secondary Bolter weapon often attached under the barrel of a larger firearm. It allows for rapid fire in close quarters combat.", "melee_hands": 0, "ranged_hands": 1, "ammo": 0, "range": 10, - "spli": 2, + "spli": 3, "arp": 0, "tags": ["bolt", "attached"] }, @@ -722,8 +739,8 @@ global.weapons = { "abbreviation": "StlkBltr", "attack": { "standard": 180, - "master_crafted": 200, - "artifact": 240 + "master_crafted": 250, + "artifact": 380 }, "description": "The Stalker Bolter is a scoped long-range variant of the standard Bolter. Depending on the specific modifications made by the wielder, the Stalker Bolter can serve as a precision battle rifle or a high-powered sniper weapon.", "melee_hands": 0, @@ -731,7 +748,7 @@ global.weapons = { "ammo": 20, "range": 16, "spli": 3, - "arp": -1, + "arp": 0, "tags": ["bolt", "precision"] }, "Bolter": { @@ -761,7 +778,7 @@ global.weapons = { "melee_hands": 1, "ranged_hands": 2.25, "ammo": 8, - "range": 2, + "range": 4, "spli": 20, "arp": -1, "tags": ["flame", "heavy_ranged", "boarding 3"] @@ -839,7 +856,7 @@ global.weapons = { "melee_hands": 0, "ranged_hands": 0, "ammo": 5, - "range": 2.1, + "range": 3.1, "spli": 1, "arp": 1, "tags": ["melta"] @@ -847,9 +864,9 @@ global.weapons = { "Meltagun": { "abbreviation": "Mltgn", "attack": { - "standard": 400, - "master_crafted": 475, - "artifact": 600 + "standard": 350, + "master_crafted": 425, + "artifact": 550 }, "description": "A loud weapon that roars with fury, this gun vaporizes flesh and armor alike. Due to heat dissipation, it has only a short range.", "melee_hands": 1, @@ -863,9 +880,9 @@ global.weapons = { "Multi-Melta": { "abbreviation": "MltMelt", "attack": { - "standard": 700, - "master_crafted": 800, - "artifact": 950 + "standard": 500, + "master_crafted": 600, + "artifact": 700 }, "description": "Though bearing longer range than the Meltagun, this weapon's great size usually restricts it to vehicles though those with Power Armor can carry this cumbersome weapon into battle.", "melee_hands": 1, @@ -879,8 +896,8 @@ global.weapons = { "Plasma Pistol": { "abbreviation": "PlsmPstl", "attack": { - "standard": 250, - "master_crafted": 290, + "standard": 220, + "master_crafted": 270, "artifact": 320 }, "description": "A pistol variant of the plasma gun, this dangerous-to-use weapon has exceptional armor-piercing capabilities.", @@ -895,9 +912,9 @@ global.weapons = { "Plasma Cutter": { // Basically a dual-linked plasma pistol "abbreviation": "PlsmCt", "attack": { - "standard": 230, - "master_crafted": 260, - "artifact": 300 + "standard": 220, + "master_crafted": 270, + "artifact": 320 }, "description": "While actually intended to be used on the battlefield as a tool to repair damaged war machines, the Plasma Cutter is equally adept at slicing through even terminator armour with its intense, constant beam of superheated plasma.", "melee_hands": 0, @@ -927,41 +944,41 @@ global.weapons = { "Integrated-Plasma": { "abbreviation": "IntPls", "attack": { - "standard": 350, - "master_crafted": 400, - "artifact": 475 + "standard": 300, + "master_crafted": 350, + "artifact": 450 }, "description": "", "melee_hands": 0, "ranged_hands": 0, "ammo": 6, "range": 10, - "spli": 2, - "arp": -1, - "tags": ["plasma"] + "spli": 4, + "arp": -2, + "tags": ["plasma","energy"] }, "Plasma Gun": { "abbreviation": "PlsmGn", "attack": { - "standard": 350, - "master_crafted": 400, - "artifact": 475 + "standard": 300, + "master_crafted": 350, + "artifact": 450 }, "description": "A two-handed weapon that launches blobs of plasma at the target. They are considered both sacred and dangerous, overheating through rapid firing of the weapon. Overheating can result in detonation of the weapon, killing the wielder.", "melee_hands": 0, "ranged_hands": 2, "ammo": 16, "range": 10, - "spli": 3, + "spli": 4, "arp": -2, "tags": ["plasma", "energy", "boarding 1"] }, "Plasma Cannon": { "abbreviation": "PlsmCan", "attack": { - "standard": 700, - "master_crafted": 800, - "artifact": 900 + "standard": 450, + "master_crafted": 550, + "artifact": 750 }, "description": "A heavy variant of the plasma gun, its power output is significantly higher and its damage capability shows. However, it maintains the overheating risk of the Plasma Gun", "melee_hands": 1, @@ -975,9 +992,9 @@ global.weapons = { "Sniper Rifle": { "abbreviation": "SnprRfl", "attack": { - "standard": 120, - "master_crafted": 150, - "artifact": 200 + "standard": 180, + "master_crafted": 220, + "artifact": 320 }, "description": "The Sniper Rifle fires a solid shell over long range and boasts powerful telescopic sights to assist, allowing the user to target enemy weak points and distant foes.", "melee_hands": 1, @@ -985,7 +1002,7 @@ global.weapons = { "ammo": 20, "range": 14, "spli": 1, - "arp": -1, + "arp": 0, "tags": ["precision", "rifle"] }, "Needle Sniper Rifle": { @@ -1001,7 +1018,7 @@ global.weapons = { "ammo": 20, "range": 14, "spli": 1, - "arp": -2, + "arp": -1, "tags": ["precision", "rifle"] }, "Assault Cannon": { @@ -1047,7 +1064,7 @@ global.weapons = { "melee_hands": 1, "ranged_hands": 2, "ammo": 6, - "range": 15, + "range": 12, "spli": 10, "arp": -1, @@ -1064,7 +1081,7 @@ global.weapons = { "melee_hands": 1, "ranged_hands": 2, "ammo": 6, - "range": 15, + "range": 8, "spli": 20, "arp": -1, "tags": ["heavy_ranged","explosive"] @@ -1072,8 +1089,8 @@ global.weapons = { "Lascannon": { "abbreviation": "Lascnn", "attack": { - "standard": 600, - "master_crafted": 700, + "standard": 450, + "master_crafted": 600, "artifact": 900 }, "description": "A formidable laser weapon, the lascannon can pierce most vehicles or power armored targets from a tremendous range. The weapon is known for its reliability in combat.", @@ -1105,15 +1122,15 @@ global.weapons = { "abbreviation": "IntgBltr", "attack": { "standard": 150, - "master_crafted": 175, - "artifact": 200 + "master_crafted": 200, + "artifact": 300 }, "description": "A Bolter that can be built directly into the structure of the vehicle, armor, another weapon or Dreadnought. When used as a weapon, it leaves both hands free, allowing to use any, even a twohanded weapon, efficiently.", "melee_hands": 0, "ranged_hands": 0, "ammo": 8, - "range": 12, - "spli": 4, + "range": 10, + "spli": 5, "arp": 0, "tags": ["bolt"] }, @@ -1152,9 +1169,9 @@ global.weapons = { "Heavy Bolter": { "abbreviation": "HvyBltr", "attack": { - "standard": 300, - "master_crafted": 350, - "artifact": 390 + "standard": 250, + "master_crafted": 300, + "artifact": 450 }, "description": "The Heavy Bolter is a heavy weapon that fires larger and more powerful bolt shells compared to the standard Bolter.", "melee_hands": 1, @@ -1348,7 +1365,7 @@ global.weapons = { }, "Twin Linked Bolters": { "attack": { - "standard": 225, + "standard": 275, "master_crafted": 350, "artifact": 450 }, @@ -1483,14 +1500,14 @@ global.weapons = { "abbreviation": "HndFlmr", "attack": { "standard": 250, - "master_crafted": 275, - "artifact": 350 + "master_crafted": 300, + "artifact": 450 }, "description": "Along with using a lower-capacity fuel tank it has much reduced range, which makes it suited for assault and close-combat purposes, incinerating foes at short range. The weapon is often used by assault squads.", "melee_hands": 0, "ranged_hands": 1, "ammo": 4, - "range": 2.1, + "range": 3.1, "spli": 8, "arp": 0, "tags": ["pistol", "flame", "boarding 2"] @@ -1636,7 +1653,7 @@ global.weapons = { "spli": 5, "arp": -1, "special_description": "Spell Damage +100%", -"maintenance" : 0.1, + "maintenance" : 0.1, "tags": ["force"] }, "Force Sword": { @@ -1658,16 +1675,15 @@ global.weapons = { "range": 1, "spli": 4, "arp": -1, - "special_description": "Spell damage +25%", "special_properties": ["Parry"], - "maintenance" : 0.1, + "maintenance" : 0.1, "tags": ["force", "sword", "martial", "boarding 1"], }, "Force Axe": { "attack": { - "standard": 200, - "master_crafted": 250, - "artifact": 350 + "standard": 250, + "master_crafted": 300, + "artifact": 375 }, "melee_mod": { "standard": 1, @@ -1680,7 +1696,7 @@ global.weapons = { "ranged_hands": 0, "ammo": 0, "range": 1, - "spli": 5, + "spli": 3, "arp": -1, "special_description": "Able to be dual-wielded, Spell damage +25%", "tags": ["force", "axe", "dual", "savage", "boarding 2"], From d4c7107018ba17f47392ad78baeeb9994e507bad Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Mon, 31 Mar 2025 08:28:23 +0900 Subject: [PATCH 22/47] Enemy Artificer armor --- objects/obj_enunit/Alarm_1.gml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/objects/obj_enunit/Alarm_1.gml b/objects/obj_enunit/Alarm_1.gml index 25e9ac8929..023bbe60eb 100644 --- a/objects/obj_enunit/Alarm_1.gml +++ b/objects/obj_enunit/Alarm_1.gml @@ -1290,7 +1290,7 @@ if __b__ { if (dudes[j] = "Leader") and(obj_controller.faction_gender[10] = 1) { scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 30; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 300; } @@ -1299,7 +1299,7 @@ if __b__ { } if (dudes[j] = "Leader") and(obj_controller.faction_gender[10] = 2) { scr_en_weapon("Khorne Demon Melee", true, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 30; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 300; } @@ -1310,7 +1310,7 @@ if __b__ { if (dudes[j] = "Fallen") { scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 30; dudes_hp[j] = 120; men += dudes_num[j]; dudes_dr[j] = 0.5; @@ -1319,7 +1319,7 @@ if __b__ { if (dudes[j] = "Chaos Lord") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 30; dudes_hp[j] = 150; dudes_dr[j] = 0.5; men += dudes_num[j]; @@ -1327,7 +1327,7 @@ if __b__ { if (dudes[j] = "Chaos Sorcerer") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Force Staff", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 30; dudes_hp[j] = 100; dudes_dr[j] = 0.5; men += dudes_num[j]; @@ -1336,7 +1336,7 @@ if __b__ { scr_en_weapon("Chainfist", true, dudes_num[j], dudes[j], j); scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Flamer", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 30; dudes_hp[j] = 100; dudes_dr[j] = 0.5; men += dudes_num[j]; @@ -1511,7 +1511,7 @@ if __b__ { scr_en_weapon("Lascannon", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Twin Linked Lascannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 45; - dudes_hp[j] = 300; + dudes_hp[j] = 350; dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; From ff1c6ab8d5f38674d907916abcca81160ca3a633 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Tue, 1 Apr 2025 19:02:37 +0900 Subject: [PATCH 23/47] Armors revisited --- scripts/scr_weapon/scr_weapon.gml | 35 +++++++++++++------------------ 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 45d9e8ac21..074e1b5225 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -1964,9 +1964,9 @@ global.weapons = { "Choppa": { "abbreviation": "Chop", "attack": { - "standard": 28, - "master_crafted": 32, - "artifact": 36 + "standard": 100, + "master_crafted": 125, + "artifact": 200 }, "melee_hands": 1, "range": 1, @@ -2043,9 +2043,9 @@ global.gear = { "Terminator Armour": { "abbreviation": "Indmts", "armour_value": { - "standard": 40, - "master_crafted": 46, - "artifact": 50 + "standard": 30, + "master_crafted": 36, + "artifact": 40 }, "ranged_mod": { "standard": -10, @@ -2077,9 +2077,9 @@ global.gear = { "Dreadnought": { "abbreviation": "Drdnght", "armour_value": { - "standard": 30, - "master_crafted": 55, - "artifact": 60 + "standard": 40, + "master_crafted": 45, + "artifact": 50 }, "ranged_mod": { "standard": -10, @@ -2096,11 +2096,6 @@ global.gear = { "master_crafted": 35, "artifact": 60 }, - "damage_resistance_mod": { - "standard": -30, - "master_crafted": -25, - "artifact": -20 - }, "melee_hands": 8, "ranged_hands": 8, "description": "A massive war-machine that can be piloted by an honored Astarte, who otherwise would have fallen in combat. Some of the Astartes consider this a fate worse than death", @@ -2110,9 +2105,9 @@ global.gear = { "Tartaros": { "abbreviation": "Tartrs", "armour_value": { - "standard": 40, - "master_crafted": 46, - "artifact": 50 + "standard": 30, + "master_crafted": 36, + "artifact": 40 }, "ranged_mod": { "standard": 10, @@ -2139,9 +2134,9 @@ global.gear = { "Cataphractii Pattern Terminator": { "abbreviation": "Catphr", "armour_value": { - "standard": 42, - "master_crafted": 46, - "artifact": 50 + "standard": 32, + "master_crafted": 38, + "artifact": 42 }, "ranged_mod": { "standard": -5, From 4aba5369a55220a35d3935cc4a762bc9e9212f85 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Tue, 1 Apr 2025 20:35:26 +0900 Subject: [PATCH 24/47] Marine CON changes --- scripts/scr_marine_struct/scr_marine_struct.gml | 6 +++--- scripts/scr_ui_manage/scr_ui_manage.gml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/scr_marine_struct/scr_marine_struct.gml b/scripts/scr_marine_struct/scr_marine_struct.gml index 1007fd8a45..ba5a3d187a 100644 --- a/scripts/scr_marine_struct/scr_marine_struct.gml +++ b/scripts/scr_marine_struct/scr_marine_struct.gml @@ -553,7 +553,7 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data={}) static update_mobility_item = scr_update_unit_mobility_item; static max_health =function(base=false){ - var max_h = 100 * (1+((constitution - 40)*0.025)); + var max_h = 100 * (1+((constitution - 40)*0.05)); if (!base){ max_h += gear_weapon_data("armour", armour(), "hp_mod"); max_h += gear_weapon_data("gear", gear(), "hp_mod"); @@ -565,7 +565,7 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data={}) }; static increase_max_health = function(increase){ - return max_health() + (increase*(1+((constitution - 40)*0.025))); //calculate the effect of unit_health buffs + return max_health() + (increase*(1+((constitution - 40)*0.05))); //calculate the effect of unit_health buffs }; // used both to load unit data from save and to add preset base_stats @@ -1167,7 +1167,7 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data={}) damage_res+=get_mobility_data("damage_resistance_mod"); damage_res+=get_weapon_one_data("damage_resistance_mod"); damage_res+=get_weapon_two_data("damage_resistance_mod"); - damage_res = min(75, damage_res+floor(((constitution*0.005) + (experience/1000))*100)); + damage_res = min(75, damage_res+floor((constitution*0.005)*100)); return damage_res; }; diff --git a/scripts/scr_ui_manage/scr_ui_manage.gml b/scripts/scr_ui_manage/scr_ui_manage.gml index f422ccacc1..0c03363417 100644 --- a/scripts/scr_ui_manage/scr_ui_manage.gml +++ b/scripts/scr_ui_manage/scr_ui_manage.gml @@ -485,7 +485,7 @@ function scr_ui_manage() { } } var_text = string_hash_to_newline(string("Damage Resistance: {0}",cn.temp[118])) - tooltip_text += string_hash_to_newline(string("CON: {0}%#EXP: {1}%", round(selected_unit.constitution/2), round(selected_unit.experience/10))); + tooltip_text += string_hash_to_newline(string("CON: {0}", round(selected_unit.constitution/2))); x1 = x_left; y1 = yy+378; x2 = x1+string_width(var_text); From db7e921d8b009a1d466f12e5c55af98822f7ddf8 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Tue, 1 Apr 2025 20:37:16 +0900 Subject: [PATCH 25/47] Enemy Weaps Revisit --- scripts/scr_en_weapon/scr_en_weapon.gml | 130 +++++++++++++----------- 1 file changed, 69 insertions(+), 61 deletions(-) diff --git a/scripts/scr_en_weapon/scr_en_weapon.gml b/scripts/scr_en_weapon/scr_en_weapon.gml index ecb18114d5..77606829e6 100644 --- a/scripts/scr_en_weapon/scr_en_weapon.gml +++ b/scripts/scr_en_weapon/scr_en_weapon.gml @@ -131,7 +131,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 3) { if (name = "Phased Plasma-fusil") { - atta = 100; + atta = 80; arp = -2; rang = 7.1; spli = 3; @@ -153,20 +153,20 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 6) { if (argument0 = "Fusion Gun"){ - atta = 200; + atta = 180; arp = 1; rang = 2; amm = 4; } if (argument0 = "Firepike") { - atta = 300; + atta = 150; arp = 1; rang = 4; amm = 4; } if (argument0 = "Singing Spear") { - atta = 120; + atta = 150; arp = -1; rang = 1; spli = 3; @@ -178,7 +178,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; } if (argument0 = "Witchblade") { - atta = 100; + atta = 130; arp = -1; rang = 1; } @@ -210,17 +210,17 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 25; } if (argument0 = "Shuriken Catapult") { - atta = 70; + atta = 50; arp = -1; rang = 2; } if (argument0 = "Twin Linked Shuriken Catapult") { - atta = 50; + atta = 100; arp = -1; rang = 2; } if (argument0 = "Avenger Shuriken Catapult") { - atta = 40; + atta = 90; arp = -1; rang = 3; } @@ -236,7 +236,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 2.1; } if (argument0 = "Executioner") { - atta = 200; + atta = 150; arp = -2; rang = 1; } @@ -252,7 +252,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 1; } if (argument0 = "Biting Blade") { - atta = 150; + atta = 125; arp = -1; rang = 1; spli = 3; @@ -280,14 +280,14 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 2; } if (argument0 = "Reaper Launcher") { - atta = 200; + atta = 120; arp = -2; rang = 20; amm = 8; spli = 3; } if (argument0 = "Tempest Launcher") { - atta = 350; + atta = 200; arp = -1; rang = 15; amm = 8; @@ -302,7 +302,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Fusion Pistol") { atta = 125; arp = 1; - rang = 1.1; + rang = 2.1; amm = 4; } if (argument0 = "Plasma Pistol") { @@ -311,7 +311,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 3.1; } if (argument0 = "Harlequin's Kiss") { - atta = 350; + atta = 250; arp = 1; rang = 1; amm = 1; @@ -322,7 +322,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 2.1; } if (argument0 = "Pulse Laser") { - atta = 150; + atta = 120; arp = -1; rang = 15; } @@ -332,7 +332,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 8; } if (argument0 = "Shuriken Cannon") { - atta = 300; + atta = 160; arp = -1; rang = 3; } @@ -343,8 +343,8 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 1; } if (argument0 = "Twin Linked Doomweaver") { - atta = 400; - arp = 1; + atta = 250; + arp = -2; rang = 2; spli = 2; } // Also create difficult terrain? @@ -384,47 +384,47 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 7) { if (argument0 = "Choppa") { - atta = 140; + atta = 100; arp = 0; rang = 1; spli = 3; } if (argument0 = "Power Klaw") { - atta = 300; + atta = 160; arp = -2; rang = 1; spli = 3; } if (argument0 = "Slugga") { - atta = 120; + atta = 80; arp = 0; rang = 3.1; amm = 4; spli = 3; } if (argument0 = "Tankbusta Bomb") { - atta = 400; + atta = 150; arp = 1; rang = 1; amm = 1; spli = 1; } if (argument0 = "Big Shoota") { - atta = 110; + atta = 80; arp = -1; rang = 6; amm = 30; spli = 5; } if (argument0 = "Dakkagun") { - atta = 220; + atta = 140; arp = -1; rang = 8; amm = 20; spli = 10; } if (argument0 = "Deffgun") { - atta = 250; + atta = 150; arp = -2; rang = 8; amm = 20; @@ -462,14 +462,14 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; } if (argument0 = "Skorcha") { - atta = 250; + atta = 200; arp = -2; rang = 2; amm = 6; spli = 3; } if (argument0 = "Rokkit Launcha") { - atta = 300; + atta = 125; arp = 1; rang = 15; spli = 3; @@ -485,7 +485,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 8) { if (name = "Fusion Blaster") { - atta = 200; + atta = 150; arp = 1; rang = 2; amm = 4; @@ -496,19 +496,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 10; } if (name = "Cyclic Ion Blaster") { - atta = 180; + atta = 80; arp = -1; rang = 6; spli = 3; } // x6 if (name = "Burst Rifle") { atta = 130; - arp = -1; + arp = 0; rang = 16; spli = 3; } if (name = "Missile Pod") { - atta = 160; + atta = 150; arp = -1; rang = 15; amm = 6; @@ -521,7 +521,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Small Railgun") { atta = 150; - arp = -2; + arp = 1; rang = 18; spli = 1; } @@ -532,7 +532,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Rail Rifle") { atta = 80; - arp = 1; + arp = -2; rang = 14; } if (name = "Kroot Rifle") { @@ -546,7 +546,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 2.1; } if (name = "Railgun") { - atta = 400; + atta = 250; arp = 1; rang = 20; } @@ -556,7 +556,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Bonesword") { atta = 120; - arp = 1; + arp = -2; rang = 1; spli = 3; } @@ -583,39 +583,41 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; } if (argument0 = "Devourer") { - atta = 150; - arp = 0; + atta = 120; + arp = -1; rang = 5; + spli = 3 if (obj_ini.preomnor = 1) { atta = 180; } } if (argument0 = "Zoanthrope Blast") { - atta = 400; + atta = 250; arp = 1; rang = 6; + spli = 1; } if (argument0 = "Carnifex Claws") { - atta = 300; + atta = 200; arp = 1; rang = 1; spli = 3; } if (argument0 = "Venom Cannon") { - atta = 200; + atta = 100; arp = 1; rang = 5; } if (argument0 = "Deathspitter") { atta = 100; - arp = -2; + arp = -1; rang = 2.1; if (obj_ini.preomnor = 1) { atta = 150; } } if (argument0 = "Fleshborer") { - atta = 80; + atta = 70; arp = 0; rang = 2.1; if (obj_ini.preomnor = 1) { @@ -628,7 +630,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 1; } if (argument0 = "Genestealer Claws") { - atta = 90; + atta = 70; arp = -2; rang = 1; } @@ -638,7 +640,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 2; } if (argument0 = "Autogun") { - atta = 20; + atta = 60; arp = 0; rang = 6; amm = 12; @@ -650,7 +652,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 1; } if (argument0 = "Flesh Hooks") { - atta = 50; + atta = 100; arp = 0; rang = 2; amm = 1; @@ -676,7 +678,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 1; } if (argument0 = "Force Weapon") { - atta = 400; + atta = 250; arp = -1; rang = 1; } @@ -700,7 +702,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; } if (argument0 = "Heavy Flamer") { - atta = 250; + atta = 200; arp = -1; rang = 2.1; amm = 6; @@ -718,15 +720,15 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { arp = 0; rang = 12; amm = 15; - if (obj_ncombat.enemy = 5) then atta = 120; + if (obj_ncombat.enemy = 5) then atta = 80; } // Bursts if (argument0 = "Power Fist") { - atta = 425; + atta = 250; arp = -2; rang = 1; } if (argument0 = "Possessed Claws") { - atta = 250; + atta = 150; arp = -1; rang = 1; spli = 3; @@ -736,28 +738,31 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { arp = -1; rang = 20; amm = 4; - spli = 3; } if (argument0 = "Chainsword") { atta = 120; arp = 0; rang = 1; + spli = 4; } if (argument0 = "Bolt Pistol") { atta = 100; arp = 0; rang = 3.1; amm = 18; + spli = 1; } if (argument0 = "Chainaxe") { atta = 140; arp = 0; rang = 1; + spli = 3; } if (argument0 = "Poisoned Chainsword") { atta = 150; arp = 0; rang = 1; + spli = 1; if (obj_ini.preomnor = 1) { atta = 180; } @@ -766,18 +771,20 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { atta = 150; arp = -1; rang = 3; - spli = 3; + spli = 6; } if (argument0 = "Rubric Bolter") { atta = 150; arp = -1; rang = 12; amm = 15; + spli = 5; } // Bursts if (argument0 = "Witchfire") { atta = 200; arp = -2; rang = 5.1; + spli = 1; } if (argument0 = "Autogun") { atta = 60; @@ -797,6 +804,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { arp = 1; rang = 20; amm = 8; + spli = 1; } if (argument0 = "Twin Linked Heavy Bolters") { atta = 240; @@ -847,7 +855,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 12; } if (argument0 = "Baleflame") { - atta = 350; + atta = 225; arp = -2; rang = 2; } @@ -873,7 +881,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 0; } if (name = "Ogryn Melee") { - atta = 150; + atta = 90; arp = -2; rang = 1; } @@ -906,12 +914,12 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 2; } if (argument0 = "Seraphim Pistols") { - atta = 200; + atta = 120; arp = -1; rang = 4; } if (argument0 = "Laser Mace") { - atta = 200; + atta = 150; arp = -1; rang = 5.1; amm = 3; @@ -963,25 +971,25 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 0; } if (name = "Gauss Flayer") { - atta = 70; + atta = 50; arp = -1; rang = 6.1; - spli = 0; + spli = 1; } if (name = "Gauss Blaster") { - atta = 120; + atta = 80; arp = -1; rang = 6.1; spli = 0; } if (name = "Gauss Cannon") { - atta = 180; + atta = 120; arp = -2; rang = 10; spli = 3; } if (name = "Gauss Particle Cannon") { - atta = 300; + atta = 250; arp = -2; rang = 10.1; spli = 3; From 30ebf070d647ae0a4ba248d9996773ed5c3c2bc4 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Fri, 4 Apr 2025 04:05:01 +0900 Subject: [PATCH 26/47] ARP change x2 Changed ARP values to make it more sensible and allow for extension in the future. --- .../scr_equipment_struct.gml | 8 +- scripts/scr_shoot/scr_shoot.gml | 30 +-- scripts/scr_weapon/scr_weapon.gml | 235 +++++++++--------- 3 files changed, 137 insertions(+), 136 deletions(-) diff --git a/scripts/scr_equipment_struct/scr_equipment_struct.gml b/scripts/scr_equipment_struct/scr_equipment_struct.gml index f700def250..0d6021b7e6 100644 --- a/scripts/scr_equipment_struct/scr_equipment_struct.gml +++ b/scripts/scr_equipment_struct/scr_equipment_struct.gml @@ -173,16 +173,16 @@ function EquipmentStruct(item_data, core_type,quality="none") constructor{ array_push(special_properties_array, special_properties[k]); } } - if (arp=1){ + if (arp=4){ array_push(special_properties_array, "Anti Vehicle") } - else if (arp=0){ + else if (arp=1){ array_push(special_properties_array, "Low Penetration") } - else if (arp=-1){ + else if (arp=2){ array_push(special_properties_array, "Medium Penetration") } - else if (arp=-2){ + else if (arp=3){ array_push(special_properties_array, "High Penetration") } if (array_length(second_profiles)>0){ diff --git a/scripts/scr_shoot/scr_shoot.gml b/scripts/scr_shoot/scr_shoot.gml index 5273877788..6ef2db8a52 100644 --- a/scripts/scr_shoot/scr_shoot.gml +++ b/scripts/scr_shoot/scr_shoot.gml @@ -264,15 +264,15 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat // Calculate final armor value based on armor piercing (AP) rating against target type if (target_object.dudes_vehicle[target_type]) { - if (armour_pierce = 1) then target_armour_value = 0; - if (armour_pierce = 0) then target_armour_value = target_armour_value * 6; - if (armour_pierce = -1) then target_armour_value = target_armour_value * 4 ; - if (armour_pierce = -2) then target_armour_value = target_armour_value * 2; + if (armour_pierce = 4) then target_armour_value = 0; + if (armour_pierce = 3) then target_armour_value = target_armour_value * 2; + if (armour_pierce = 2) then target_armour_value = target_armour_value * 4 ; + if (armour_pierce = 1) then target_armour_value = target_armour_value * 6; } else { - if (armour_pierce = 1) then target_armour_value = 0; - if (armour_pierce = 0) then target_armour_value = target_armour_value * 3; - if (armour_pierce = -1) then target_armour_value = target_armour_value * 2; - if (armour_pierce = -2) then target_armour_value = target_armour_value * 1.5; + if (armour_pierce = 4) then target_armour_value = 0; + if (armour_pierce = 3) then target_armour_value = target_armour_value * 1.5; + if (armour_pierce = 2) then target_armour_value = target_armour_value * 2; + if (armour_pierce = 1) then target_armour_value = target_armour_value * 3; } attack_count_mod = max(1, splash[weapon_index_position]); @@ -361,15 +361,15 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat target_armour_value2 = target_object.dudes_ac[godd]; if (target_object.dudes_vehicle[godd] = 0) { - if (ap2 = 1) then target_armour_value2 = 0; - if (ap2 = 0) then target_armour_value2 = target_armour_value2 * 3; - if (ap2 = -1) then target_armour_value2 = target_armour_value2 * 2; - if (ap2 = -2) then target_armour_value2 = target_armour_value2 * 1.5; + if (ap2 = 1) then target_armour_value2 = target_armour_value2 * 3; + if (ap2 = 2) then target_armour_value2 = target_armour_value2 * 2; + if (ap2 = 3) then target_armour_value2 = target_armour_value2 * 1.5; + if (ap2 = 4) then target_armour_value2 = 0; } if (target_object.dudes_vehicle[godd] = 1) { - if (ap2 = 0) then target_armour_value2 = target_armour_value2 * 6; - if (ap2 = -1) then target_armour_value2 = target_armour_value2 * 4; - if (ap2 = -2) then target_armour_value2 = target_armour_value2 * 2; + if (ap2 = 1) then target_armour_value2 = target_armour_value2 * 6; + if (ap2 = 2) then target_armour_value2 = target_armour_value2 * 4; + if (ap2 = 3) then target_armour_value2 = target_armour_value2 * 2; } b2 = a2 - target_armour_value2; if (b2 <= 0) then b2 = 0; // Average after armour diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 074e1b5225..167097ad1a 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -51,7 +51,7 @@ global.weapons = { "range": 4.1, "spli": 0, - "arp": 0, + "arp": 1, "tags": ["pistol", "ancient", "las", "energy"], }, @@ -68,7 +68,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 2, - "arp": 0, + "arp": 1, "tags": ["knife"], }, "Chainsword": { @@ -84,7 +84,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 4, - "arp": 0, + "arp": 1, "tags": ["chain", "sword","savage", "boarding 1"], }, "Chainaxe": { @@ -105,7 +105,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 3, - "arp": 0, + "arp": 1, "tags": ["chain", "axe", "dual", "savage", "boarding 2"], }, "Company Standard": { @@ -126,6 +126,7 @@ global.weapons = { "ranged_hands": 1, "range": 1, "spli": 1, + "arp": 1, "tags": ["banner"], }, "Eviscerator": { @@ -146,7 +147,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 6, - "arp": -1, + "arp": 2, "tags": ["chain", "sword", "savage"], }, "Power Sword": { @@ -167,7 +168,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 4, - "arp": -1, + "arp": 2, "special_properties": ["Parry"], "tags": ["power", "sword", "martial", "boarding 1"], }, @@ -189,7 +190,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 3, - "arp": -1, + "arp": 2, "special_properties": ["Parry"], "tags": ["power", "spear", "martial"], }, @@ -206,7 +207,7 @@ global.weapons = { "range": 1, "spli": 4, "tags": ["power","boarding 3", "chain", "fist", "siege", "savage"], - "arp": -2, + "arp": 3, }, "Lascutter": { "abbreviation": "Lasct", @@ -218,7 +219,7 @@ global.weapons = { "description": "Originally industrial tools used for breaking through bulkheads, this laser weapon is devastating in close combat.", "melee_hands": 1, "range": 1, - "arp": 1, + "arp": 4, "tags": ["las","boarding 3", "siege"], }, "Power Weapon": { @@ -239,7 +240,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 3, - "arp": -1, + "arp": 2, "tags": ["power"], }, "Power Axe": { @@ -260,7 +261,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 3, - "arp": -1, + "arp": 2, "tags": ["power", "axe", "dual","savage", "boarding 2"], }, "Omnissian Axe": { @@ -281,7 +282,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 5, - "arp": -2, + "arp": 3, "tags": ["power", "axe", "savage", "boarding 3"], }, "Executioner Power Axe": { @@ -302,7 +303,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 5, - "arp": -2, + "arp": 3, "tags": ["power", "axe", "martial"], }, "Power Fist": { @@ -324,7 +325,7 @@ global.weapons = { "range": 1, "spli": 2, "tags": ["power", "dual", "fist", "savage", "boarding 2"], - "arp": -2, + "arp": 3, }, "Power Fists": { "abbreviation": "PwrFsts", @@ -340,7 +341,7 @@ global.weapons = { "range": 1, "spli": 4, "tags": ["power", "fist", "pair","savage" ,"boarding 2"], - "arp": -2, + "arp": 3, }, "Servo-arm(M)": { "abbreviation": "MchArm", @@ -355,7 +356,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 2, - "arp": -2, + "arp": 3, "tags": ["siege"], }, "Boltstorm Gauntlet": { @@ -371,7 +372,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 2, - "arp": -2, + "arp": 3, "second_profiles": ["Integrated-Bolter"], "tags": ["power", "fist", "savage", "boarding 2"], }, @@ -387,7 +388,7 @@ global.weapons = { "ranged_hands": 1, "range": 1, "spli": 2, - "arp": -2, + "arp": 3, "second_profiles": ["Assault Cannon"], "tags": ["power","boarding 3", "chain", "fist", "dual", "siege"], }, @@ -405,7 +406,7 @@ global.weapons = { "range": 1, "spli": 5, "tags": ["power", "dual", "fist", "boarding 2", "martial"], - "arp": -1, + "arp": 2, }, "Dreadnought Lightning Claw": { "abbreviation": "LghtClw", @@ -425,7 +426,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 15, - "arp": -2, + "arp": 3, "maintenance" : 0.1, "tags": ["power", "vehicle", "dual", "dreadnought", "fist"], }, @@ -447,7 +448,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 3, - "arp": -2, + "arp": 3, "maintenance" : 0.1, "req_exp": 100, "tags": ["power", "hammer", "siege", "savage", "boarding 2"], @@ -469,7 +470,7 @@ global.weapons = { "ranged_hands": 2, "ammo": 0, "range": 1, - "arp": -2, + "arp": 3, "spli": 4, "maintenance" : 0.1, "req_exp": 100, @@ -492,7 +493,7 @@ global.weapons = { "ranged_hands": 2, "ammo": 0, "range": 1, - "arp": -2, + "arp": 3, "spli": 6, "tags": ["power", "mace", "siege", "savage"], "req_exp": 100, @@ -516,7 +517,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 6, - "arp": -2, + "arp": 3, "tags": ["power", "mace", "siege", "pious", "savage"], "req_exp": 100, }, @@ -538,7 +539,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["arcane", "savage"], }, "Crozius Arcanum": { @@ -559,7 +560,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 4, - "arp": -1, + "arp": 2, "tags": ["power", "mace", "pious", "savage", "boarding 2"], }, "Relic Blade": { @@ -580,7 +581,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 8, - "arp": -1, + "arp": 2, "special_properties": ["Parry"], "maintenance" : 0.1, "tags": ["power", "sword", "martial"], @@ -599,7 +600,7 @@ global.weapons = { "ammo": 18, "range": 4.1, "spli": 2, - "arp": 0, + "arp": 1, "tags": ["bolt", "pistol", "boarding 1"], }, "Wrist-Mounted Storm Bolter": { @@ -615,7 +616,7 @@ global.weapons = { "ammo": 10, "range": 4.1, "spli": 8, - "arp": 0, + "arp": 1, "maintenance" : 0.1, "tags": ["bolt", "pistol", "boarding 2"], }, @@ -632,7 +633,7 @@ global.weapons = { "ammo": 10, "range": 4.1, "spli": 8, - "arp": 0, + "arp": 1, "maintenance" : 0.1, "tags": ["bolt", "pistol", "boarding 2"], }, @@ -649,7 +650,7 @@ global.weapons = { "ammo": 5, "range": 4.1, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["immobolise"] }, "Grav-Pistol": { @@ -665,7 +666,7 @@ global.weapons = { "ammo": 4, "range": 4.1, "spli": 1, - "arp": 1, + "arp": 4, "maintenance" : 0.2, "tags": ["grav", "pistol"], }, @@ -682,7 +683,7 @@ global.weapons = { "ammo": 3, "range": 5.1, "spli": 1, - "arp": 1, + "arp": 4, "tags": ["grav"] }, "Grav-Gun": { @@ -698,7 +699,7 @@ global.weapons = { "ammo": 6, "range": 5, "spli": 3, - "arp": 1, + "arp": 4, "tags": ["grav"], "maintenance" : 0.5, }, @@ -715,7 +716,7 @@ global.weapons = { "ammo": 8, "range": 6, "spli": 6, - "arp": 1, + "arp": 4, "tags": ["grav", "heavy_ranged"], "maintenance" : 0.8, }, @@ -732,7 +733,7 @@ global.weapons = { "ammo": 0, "range": 10, "spli": 3, - "arp": 0, + "arp": 1, "tags": ["bolt", "attached"] }, "Stalker Pattern Bolter": { @@ -748,7 +749,7 @@ global.weapons = { "ammo": 20, "range": 16, "spli": 3, - "arp": 0, + "arp": 1, "tags": ["bolt", "precision"] }, "Bolter": { @@ -764,7 +765,7 @@ global.weapons = { "ammo": 16, "range": 10, "spli": 5, - "arp": 0, + "arp": 1, "tags": ["bolt", "boarding 1"] }, "Heavy Flamer": { @@ -780,7 +781,7 @@ global.weapons = { "ammo": 8, "range": 4, "spli": 20, - "arp": -1, + "arp": 2, "tags": ["flame", "heavy_ranged", "boarding 3"] }, "CCW Heavy Flamer": { @@ -796,7 +797,7 @@ global.weapons = { "ammo": 6, "range": 2.1, "spli": 20, - "arp": -1, + "arp": 2, "tags": ["dreadnought","heavy_ranged", "flame"] }, "Dreadnought Power Claw": { @@ -810,7 +811,7 @@ global.weapons = { "melee_hands": 5, "range": 1, "spli": 10, - "arp": 1, + "arp": 4, "tags": ["power", "vehicle", "dual", "dreadnought", "fist"], "maintenance" : 0.1, }, @@ -825,7 +826,7 @@ global.weapons = { "melee_hands": 5, "range": 1, "spli": 10, - "arp": 1, + "arp": 4, "tags": ["vehicle", "dreadnought", "fist"], "maintenance" : 0.1, }, @@ -842,7 +843,7 @@ global.weapons = { "ammo": 0, "range": 4.1, "spli": 20, - "arp": -1, + "arp": 2, "tags": ["vehicle","heavy_ranged", "flame", "dreadnought"] }, "Integrated-Melta": { @@ -858,7 +859,7 @@ global.weapons = { "ammo": 5, "range": 3.1, "spli": 1, - "arp": 1, + "arp": 4, "tags": ["melta"] }, "Meltagun": { @@ -874,7 +875,7 @@ global.weapons = { "ammo": 6, "range": 2.1, "spli": 6, - "arp": -2, + "arp": 3, "tags": ["melta","boarding 3"] }, "Multi-Melta": { @@ -890,7 +891,7 @@ global.weapons = { "ammo": 8, "range": 4.1, "spli": 10, - "arp": -2, + "arp": 3, "tags": ["melta", "heavy_ranged", "dreadnought", "boarding 1"] }, "Plasma Pistol": { @@ -906,7 +907,7 @@ global.weapons = { "ammo": 0, "range": 5.1, "spli": 2, - "arp": -2, + "arp": 3, "tags": ["plasma", "energy", "pistol", "boarding 1"] }, "Plasma Cutter": { // Basically a dual-linked plasma pistol @@ -922,7 +923,7 @@ global.weapons = { "ammo": 0, "range": 4.1, "spli": 1, - "arp": -2, + "arp": 3, "tags": ["plasma", "energy", "pistol"] }, "Infernus Pistol": { @@ -938,7 +939,7 @@ global.weapons = { "ammo": 4, "range": 2.1, "spli": 3, - "arp": -2, + "arp": 3, "tags": ["melta", "pistol", "boarding 2"] }, "Integrated-Plasma": { @@ -954,7 +955,7 @@ global.weapons = { "ammo": 6, "range": 10, "spli": 4, - "arp": -2, + "arp": 3, "tags": ["plasma","energy"] }, "Plasma Gun": { @@ -970,7 +971,7 @@ global.weapons = { "ammo": 16, "range": 10, "spli": 4, - "arp": -2, + "arp": 3, "tags": ["plasma", "energy", "boarding 1"] }, "Plasma Cannon": { @@ -986,7 +987,7 @@ global.weapons = { "ammo": 16, "range": 10, "spli": 8, - "arp": -2, + "arp": 3, "tags": ["plasma","energy","heavy_ranged", "dreadnought"] }, "Sniper Rifle": { @@ -1002,7 +1003,7 @@ global.weapons = { "ammo": 20, "range": 14, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["precision", "rifle"] }, "Needle Sniper Rifle": { @@ -1018,7 +1019,7 @@ global.weapons = { "ammo": 20, "range": 14, "spli": 1, - "arp": -1, + "arp": 2, "tags": ["precision", "rifle"] }, "Assault Cannon": { @@ -1034,7 +1035,7 @@ global.weapons = { "ammo": 5, "range": 12, "spli": 20, - "arp": -1, + "arp": 2, "tags": ["heavy_ranged", "dreadnought"] }, "Autocannon": { @@ -1050,7 +1051,7 @@ global.weapons = { "ammo": 25, "range": 14, "spli": 12, - "arp": -1, + "arp": 2, "tags": ["heavy_ranged","explosive", "dreadnought"] }, "Missile Launcher": { @@ -1066,7 +1067,7 @@ global.weapons = { "ammo": 6, "range": 12, "spli": 10, - "arp": -1, + "arp": 2, "tags": ["heavy_ranged","explosive", "dreadnought"] }, @@ -1083,7 +1084,7 @@ global.weapons = { "ammo": 6, "range": 8, "spli": 20, - "arp": -1, + "arp": 2, "tags": ["heavy_ranged","explosive"] }, "Lascannon": { @@ -1099,7 +1100,7 @@ global.weapons = { "ammo": 8, "range": 20, "spli": 1, - "arp": 1, + "arp": 4, "tags": ["heavy_ranged", "las", "energy"] }, "Conversion Beam Projector": { @@ -1115,7 +1116,7 @@ global.weapons = { "ammo": 1, "range": 20, "spli": 3, - "arp": 1, + "arp": 4, "tags": ["heavy_ranged", "ancient"] }, "Integrated-Bolter": { @@ -1131,7 +1132,7 @@ global.weapons = { "ammo": 8, "range": 10, "spli": 5, - "arp": 0, + "arp": 1, "tags": ["bolt"] }, "Twin Linked Heavy Bolter": { @@ -1147,7 +1148,7 @@ global.weapons = { "ammo": 20, "range": 16, "spli": 28, - "arp": -1, + "arp": 2, "tags": ["bolt", "heavy_ranged", "vehicle", "dreadnought"] }, "Twin Linked Lascannon": { @@ -1163,7 +1164,7 @@ global.weapons = { "ammo": 8, "range": 24, "spli": 2, - "arp": 1, + "arp": 4, "tags": ["las", "energy", "heavy_ranged", "vehicle", "dreadnought"] }, "Heavy Bolter": { @@ -1179,7 +1180,7 @@ global.weapons = { "ammo": 10, "range": 14, "spli": 12, - "arp": -1, + "arp": 2, "tags": ["heavy_ranged", "bolt"] }, "Whirlwind Missiles": { @@ -1195,7 +1196,7 @@ global.weapons = { "ammo": 6, "range": 20, "spli": 40, - "arp": -1, + "arp": 2, "tags": ["vehicle","heavy_ranged", "indirect"] }, "HK Missile": { @@ -1216,7 +1217,7 @@ global.weapons = { "ammo": 20, "range": 16, "spli": 21, - "arp": -1, + "arp": 2, "tags": ["vehicle", "dreadnought", "heavy_ranged", "bolt"] }, "Twin Linked Lascannon Mount": { @@ -1232,7 +1233,7 @@ global.weapons = { "ammo": 10, "range": 20, "spli": 2, - "arp": 1, + "arp": 4, "tags": ["las", "energy", "vehicle", "heavy_ranged", "dreadnought"] }, "Twin Linked Assault Cannon Mount": { @@ -1248,7 +1249,7 @@ global.weapons = { "ammo": 6, "range": 12, "spli": 40, - "arp": -1, + "arp": 2, "tags": ["vehicle","heavy_ranged", "pintle", "dreadnought"] }, "Reaper Autocannon Mount": { @@ -1264,7 +1265,7 @@ global.weapons = { "ammo": 25, "range": 15, "spli": 24, - "arp": -1, + "arp": 2, "tags": ["vehicle","heavy_ranged", "pintle"] }, "Quad Linked Heavy Bolter Sponsons": { @@ -1280,7 +1281,7 @@ global.weapons = { "ammo": 15, "range": 16, "spli": 50, - "arp": -1, + "arp": 2, "tags": ["bolt","heavy_ranged", "vehicle", "sponson"] }, "Twin Linked Lascannon Sponsons": { @@ -1296,7 +1297,7 @@ global.weapons = { "ammo": 5, "range": 20, "spli": 4, - "arp": 1, + "arp": 4, "tags": ["las", "energy", "vehicle", "heavy_ranged", "sponson", "twin_linked"] }, "Lascannon Sponsons": { @@ -1312,7 +1313,7 @@ global.weapons = { "ammo": 8, "range": 20, "spli": 2, - "arp": 1, + "arp": 4, "tags": ["las", "energy","heavy_ranged", "vehicle", "sponson"] }, "Hurricane Bolter Sponsons": { @@ -1328,7 +1329,7 @@ global.weapons = { "ammo": 10, "range": 10, "spli": 60, - "arp": 0, + "arp": 1, "tags": ["bolt","heavy_ranged", "vehicle", "sponson"] }, "Flamestorm Cannon Sponsons": { @@ -1344,7 +1345,7 @@ global.weapons = { "ammo": 6, "range": 4.1, "spli": 30, - "arp": -2, + "arp": 3, "tags": ["flame","heavy_ranged", "vehicle", "sponson"] }, "Twin Linked Heavy Flamer Sponsons": { @@ -1360,7 +1361,7 @@ global.weapons = { "ammo": 8, "range": 4.1, "spli": 40, - "arp": -1, + "arp": 2, "tags": ["flame","heavy_ranged", "vehicle", "dreadnought", "sponson"] }, "Twin Linked Bolters": { @@ -1376,7 +1377,7 @@ global.weapons = { "ammo": 30, "range": 10, "spli": 10, - "arp": 0, + "arp": 1, "tags": ["bolt", "vehicle"] }, "Twin Linked Multi-Melta Sponsons": { @@ -1392,7 +1393,7 @@ global.weapons = { "ammo": 8, "range": 4.1, "spli": 20, - "arp": 1, + "arp": 4, "tags": ["vehicle","heavy_ranged", "Sponson", "melta"], "maintenance" : 0.05, }, @@ -1409,7 +1410,7 @@ global.weapons = { "ammo": 25, "range": 18, "spli": 12, - "arp": -2, + "arp": 3, "tags": ["vehicle","heavy_ranged", "Sponson", "volkite", "ancient"] }, "Heavy Bolter Sponsons": { @@ -1425,7 +1426,7 @@ global.weapons = { "ammo": 20, "range": 14, "spli": 28, - "arp": -1, + "arp": 2, "tags": ["heavy_ranged", "vehicle", "sponson", "bolt"] }, "Heavy Flamer Sponsons": { @@ -1442,7 +1443,7 @@ global.weapons = { "ammo": 8, "range": 4.1, "spli": 40, - "arp": -1, + "arp": 2, "tags": ["flame","heavy_ranged", "vehicle", "sponson"], "maintenance" : 0.05, }, @@ -1459,7 +1460,7 @@ global.weapons = { "ammo": 25, "range": 18, "spli": 6, - "arp": -2, + "arp": 3, "tags": ["vehicle","heavy_ranged", "Sponson", "volkite", "ancient"] }, "Autocannon Turret": { @@ -1475,7 +1476,7 @@ global.weapons = { "ammo": 18, "range": 18, "spli": 15, - "arp": -1, + "arp": 2, "tags": ["vehicle","heavy_ranged","explosive", "turret"] }, "Storm Bolter": { @@ -1491,7 +1492,7 @@ global.weapons = { "ammo": 10, "range": 8, "spli": 8, - "arp": 0, + "arp": 1, "maintenance" : 0.03, "tags": ["bolt", "boarding 2"] @@ -1509,7 +1510,7 @@ global.weapons = { "ammo": 4, "range": 3.1, "spli": 8, - "arp": 0, + "arp": 1, "tags": ["pistol", "flame", "boarding 2"] }, "Flamer": { @@ -1530,7 +1531,7 @@ global.weapons = { "ammo": 8, "range": 4.1, "spli": 14, - "arp": 0, + "arp": 1, "maintenance" : 0.01, "tags": ["flame", "boarding 2"] }, @@ -1547,7 +1548,7 @@ global.weapons = { "ammo": 4, "range": 4.1, "spli": 10, - "arp": 0, + "arp": 1, "tags": ["flame", "attached"] }, "Combiflamer": { @@ -1563,7 +1564,7 @@ global.weapons = { "ammo": 15, "range": 10, "spli": 5, - "arp": 0, + "arp": 1, "second_profiles": ["Integrated-Flamer"], "tags": ["combi", "bolt", "boarding 2"] }, @@ -1580,7 +1581,7 @@ global.weapons = { "ammo": 8, "range": 10, "spli": 5, - "arp": 0, + "arp": 1, "second_profiles": ["Integrated-Plasma"], "tags": ["combi", "bolt"] }, @@ -1597,7 +1598,7 @@ global.weapons = { "ammo": 8, "range": 10, "spli": 5, - "arp": 0, + "arp": 1, "second_profiles": ["Integrated-Grav"], "tags": ["combi", "bolt"] }, @@ -1614,7 +1615,7 @@ global.weapons = { "ammo": 8, "range": 10, "spli": 5, - "arp": 0, + "arp": 1, "second_profiles": ["Integrated-Melta"], "tags": ["combi", "bolt", "boarding 3"] }, @@ -1631,7 +1632,7 @@ global.weapons = { "ammo": 4, "range": 4.1, "spli": 20, - "arp": -1, + "arp": 2, "tags": ["flame","boarding 3"] }, "Force Staff": { @@ -1651,7 +1652,7 @@ global.weapons = { "ranged_hands": 1, "range": 1, "spli": 5, - "arp": -1, + "arp": 2, "special_description": "Spell Damage +100%", "maintenance" : 0.1, "tags": ["force"] @@ -1674,7 +1675,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 4, - "arp": -1, + "arp": 2, "special_properties": ["Parry"], "maintenance" : 0.1, "tags": ["force", "sword", "martial", "boarding 1"], @@ -1697,7 +1698,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 3, - "arp": -1, + "arp": 2, "special_description": "Able to be dual-wielded, Spell damage +25%", "tags": ["force", "axe", "dual", "savage", "boarding 2"], }, @@ -1709,7 +1710,7 @@ global.weapons = { }, "abbreviation": "TwnLscnn", "description": "A Predator-compatible turret mounting a twin-linked lascannon.", - "arp": 1, + "arp": 4, "range": 24, "ammo": 5, "spli": 1, @@ -1728,7 +1729,7 @@ global.weapons = { "ammo": 5, "range": 12, "spli": 40, - "arp": -1, + "arp": 2, "tags": ["heavy_ranged", "twin_linked", "vehicle", "turret"] }, "Flamestorm Cannon Turret": { @@ -1744,7 +1745,7 @@ global.weapons = { "ammo": 12, "range": 4.1, "spli": 25, - "arp": -2, + "arp": 3, "tags": ["flame","heavy_ranged", "vehicle", "turret"] }, "Magna-Melta Turret": { @@ -1760,7 +1761,7 @@ global.weapons = { "ammo": 6, "range": 4.1, "spli": 20, - "arp": 1, + "arp": 4, "tags": ["vehicle","heavy_ranged", "turret", "melta"] }, "Plasma Destroyer Turret": { @@ -1776,7 +1777,7 @@ global.weapons = { "ammo": 16, "range": 14, "spli": 12, - "arp": 1, + "arp": 4, "tags": ["plasma", "energy","heavy_ranged", "vehicle", "turret"] }, "Heavy Conversion Beam Projector": { @@ -1792,7 +1793,7 @@ global.weapons = { "ammo": 6, "range": 20, "spli": 1, - "arp": 1, + "arp": 4, "tags": ["vehicle","heavy_ranged", "dreadnought", "turret", "ancient"] }, "Neutron Blaster Turret": { @@ -1808,7 +1809,7 @@ global.weapons = { "ammo": 6, "range": 20, "spli": 2, - "arp": 1, + "arp": 4, "tags": ["vehicle","heavy_ranged", "turret"] }, "Volkite Saker Turret": { @@ -1824,7 +1825,7 @@ global.weapons = { "ammo": 25, "range": 18, "spli": 30, - "arp": -2, + "arp": 3, "tags": ["vehicle","heavy_ranged", "turret", "volkite", "ancient"] }, // Hireling weapons @@ -1840,7 +1841,7 @@ global.weapons = { "ammo": 20, "range": 12, "spli": 3, - "arp": 0, + "arp": 1, "tags": ["las"], "melee_hands": 0, "ranged_hands": 1, @@ -1858,7 +1859,7 @@ global.weapons = { "ammo": 30, "range": 3.1, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["pistol", "las"], }, // Other imperials @@ -1875,7 +1876,7 @@ global.weapons = { "ammo": 16, "range": 10, "spli": 2, - "arp": 0, + "arp": 1, "tags": ["bolt"], "second_profiles": ["Sarissa"] }, @@ -1892,7 +1893,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["axe"], }, "Hellrifle": { @@ -1906,7 +1907,7 @@ global.weapons = { "ammo": 10, "range": 20, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["rifle", "arcane"], "ranged_hands": 1, }, @@ -1935,7 +1936,7 @@ global.weapons = { "ammo": 6, "range": 2.1, "spli": 3, - "arp": 0, + "arp": 1, "tags": ["pistol"] }, "Eldar Power Sword": { @@ -1956,7 +1957,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 3, - "arp": -1, + "arp": 2, "special_properties": ["Parry"], "tags": ["power", "sword", "elder", "xenos"], }, @@ -1984,7 +1985,7 @@ global.weapons = { "ammo": 20, "range": 3.1, "spli": 3, - "arp": 0, + "arp": 1, "tags": ["rifle"] }, } @@ -2228,9 +2229,9 @@ global.gear = { "MK4 Maximus": { "abbreviation": "MK4", "armour_value": { - "standard": 17, - "master_crafted": 19, - "artifact": 23 + "standard": 15, + "master_crafted": 17, + "artifact": 21 }, "ranged_mod": { "standard": 10, @@ -2248,9 +2249,9 @@ global.gear = { "artifact": 10 }, "damage_resistance_mod": { - "standard": 0, - "master_crafted": 10, - "artifact": 0 + "standard": -10, + "master_crafted": 0, + "artifact": 10 }, "description": "Power Armor dating back to the end of the Great Crusade. It is considered the pinnacle of Power Armor by some Astartes. However, the components are no longer reproducible, the knowledge having been lost to time.", "tags": ["power_armour"], @@ -2664,7 +2665,7 @@ global.gear = { "ammo": 0, "range": 1, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["vehicle"], }, "Searchlight": { From c9e4c7b8a107b6f4e49f9d083f611a0662c5f200 Mon Sep 17 00:00:00 2001 From: KR Da Mystic Date: Fri, 4 Apr 2025 04:05:19 +0900 Subject: [PATCH 27/47] revert enemy arp values --- scripts/scr_en_weapon/scr_en_weapon.gml | 190 ++++++++++++------------ 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/scripts/scr_en_weapon/scr_en_weapon.gml b/scripts/scr_en_weapon/scr_en_weapon.gml index 77606829e6..98a0d60e12 100644 --- a/scripts/scr_en_weapon/scr_en_weapon.gml +++ b/scripts/scr_en_weapon/scr_en_weapon.gml @@ -36,7 +36,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (name = "Venom Claws") { atta = 200; - arp = -1; + arp = 1; rang = 1; spli = 0; if (obj_ini.preomnor = 1) { @@ -52,13 +52,13 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Warpsword") { atta = 300; - arp = -2; + arp = 1; rang = 1; spli = 3; } if (name = "Iron Claw") { atta = 400; - arp = -2; + arp = 1; rang = 1; spli = 0; } @@ -76,19 +76,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Bloodletter Melee") { atta = 70; - arp = -1; + arp = 0; rang = 1; spli = 3; } if (name = "Daemonette Melee") { atta = 65; - arp = -1; + arp = 0; rang = 1; spli = 3; } if (name = "Plaguebearer Melee") { atta = 60; - arp = -1; + arp = 0; rang = 1; spli = 3; if (obj_ini.preomnor = 1) { @@ -97,13 +97,13 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Khorne Demon Melee") { atta = 350; - arp = -2; + arp = 1; rang = 1; spli = 3; } if (name = "Demon Melee") { atta = 250; - arp = -2; + arp = 1; rang = 1; spli = 3; } @@ -132,19 +132,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 3) { if (name = "Phased Plasma-fusil") { atta = 80; - arp = -2; + arp = 1; rang = 7.1; spli = 3; } if (name = "Lightning Gun") { atta = choose(80, 80, 80, 150); - arp = -1; + arp = 0; rang = 5; spli = 0; } if (name = "Thallax Melee") { atta = 80; - arp = -1; + arp = 0; rang = 1; spli = 3; } @@ -167,19 +167,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Singing Spear") { atta = 150; - arp = -1; + arp = 0; rang = 1; spli = 3; } if (argument0 = "Singing Spear Throw") { atta = 120; - arp = -1; + arp = 0; rang = 2; spli = 3; } if (argument0 = "Witchblade") { atta = 130; - arp = -1; + arp = 0; rang = 1; } if (argument0 = "Psyshock") { @@ -201,43 +201,43 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Ranger Long Rifle") { atta = 60; - arp = -1; + arp = 0; rang = 25; } if (argument0 = "Pathfinder Long Rifle") { atta = 70; - arp = -1; + arp = 0; rang = 25; } if (argument0 = "Shuriken Catapult") { atta = 50; - arp = -1; + arp = 0; rang = 2; } if (argument0 = "Twin Linked Shuriken Catapult") { atta = 100; - arp = -1; + arp = 0; rang = 2; } if (argument0 = "Avenger Shuriken Catapult") { atta = 90; - arp = -1; + arp = 0; rang = 3; } if (argument0 = "Power Weapon") or(argument0 = "Power Blades") { atta = 100; - arp = -1; + arp = 1; rang = 1; spli = 3; } if (argument0 = "Shuriken Pistol") { atta = 50; - arp = -1; + arp = 0; rang = 2.1; } if (argument0 = "Executioner") { atta = 150; - arp = -2; + arp = 1; rang = 1; } if (argument0 = "Scorpion Chainsword") { @@ -253,13 +253,13 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Biting Blade") { atta = 125; - arp = -1; + arp = 0; rang = 1; spli = 3; } if (argument0 = "Scorpian's Claw") { atta = 150; - arp = -2; + arp = 1; rang = 1; spli = 3; } @@ -281,21 +281,21 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Reaper Launcher") { atta = 120; - arp = -2; + arp = 1; rang = 20; amm = 8; spli = 3; } if (argument0 = "Tempest Launcher") { atta = 200; - arp = -1; + arp = 0; rang = 15; amm = 8; spli = 9; } if (argument0 = "Laser Lance") { atta = 180; - arp = -2; + arp = 1; rang = 2; spli = 3; } @@ -307,7 +307,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Plasma Pistol") { atta = 100; - arp = -2; + arp = 1; rang = 3.1; } if (argument0 = "Harlequin's Kiss") { @@ -323,7 +323,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Pulse Laser") { atta = 120; - arp = -1; + arp = 0; rang = 15; } if (argument0 = "Bright Lance") { @@ -333,7 +333,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Shuriken Cannon") { atta = 160; - arp = -1; + arp = 0; rang = 3; } if (argument0 = "Prism Cannon") { @@ -344,13 +344,13 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Twin Linked Doomweaver") { atta = 250; - arp = -2; + arp = 1; rang = 2; spli = 2; } // Also create difficult terrain? if (argument0 = "Starcannon") { atta = 250; - arp = -2; + arp = 1; rang = 8; spli = 4; } @@ -391,7 +391,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Power Klaw") { atta = 160; - arp = -2; + arp = 1; rang = 1; spli = 3; } @@ -410,29 +410,29 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 1; } if (argument0 = "Big Shoota") { - atta = 80; - arp = -1; + atta = 120; + arp = 0; rang = 6; amm = 30; spli = 5; } if (argument0 = "Dakkagun") { atta = 140; - arp = -1; + arp = 0; rang = 8; amm = 20; spli = 10; } if (argument0 = "Deffgun") { atta = 150; - arp = -2; + arp = 1; rang = 8; amm = 20; spli = 1; } if (argument0 = "Snazzgun") { atta = 200; - arp = -1; + arp = 0; rang = 5; spli = 0; } @@ -444,7 +444,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Kannon") { atta = 200; - arp = -1; + arp = 1; rang = 10.1; amm = 5; spli = 3; @@ -456,14 +456,14 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Burna") { atta = 140; - arp = -1; + arp = 0; rang = 2; amm = 4; spli = 3; } if (argument0 = "Skorcha") { atta = 200; - arp = -2; + arp = 1; rang = 2; amm = 6; spli = 3; @@ -492,12 +492,12 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Plasma Rifle") { atta = 120; - arp = -2; + arp = 1; rang = 10; } if (name = "Cyclic Ion Blaster") { atta = 80; - arp = -1; + arp = 0; rang = 6; spli = 3; } // x6 @@ -509,14 +509,14 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Missile Pod") { atta = 150; - arp = -1; + arp = 0; rang = 15; amm = 6; spli = 3; } if (name = "Smart Missile System") { atta = 150; - arp = -1; + arp = 0; rang = 15; } if (name = "Small Railgun") { @@ -527,12 +527,12 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Pulse Rifle") { atta = 80; - arp = -1; + arp = 0; rang = 12; } if (name = "Rail Rifle") { atta = 80; - arp = -2; + arp = 1; rang = 14; } if (name = "Kroot Rifle") { @@ -542,7 +542,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Vespid Crystal") { atta = 100; - arp = -2; + arp = 1; rang = 2.1; } if (name = "Railgun") { @@ -556,7 +556,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Bonesword") { atta = 120; - arp = -2; + arp = 1; rang = 1; spli = 3; } @@ -583,8 +583,8 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; } if (argument0 = "Devourer") { - atta = 120; - arp = -1; + atta = 90; + arp = 0; rang = 5; spli = 3 if (obj_ini.preomnor = 1) { @@ -610,7 +610,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Deathspitter") { atta = 100; - arp = -1; + arp = 0; rang = 2.1; if (obj_ini.preomnor = 1) { atta = 150; @@ -626,12 +626,12 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Scything Talons") { atta = 50; - arp = -1; + arp = 0; rang = 1; } if (argument0 = "Genestealer Claws") { atta = 70; - arp = -2; + arp = 1; rang = 1; } if (argument0 = "Witchfire") { @@ -648,7 +648,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Lictor Claws") { atta = 300; - arp = -2; + arp = 1; rang = 1; } if (argument0 = "Flesh Hooks") { @@ -664,27 +664,27 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Plasma Pistol") { atta = 70; - arp = -2; + arp = 1; rang = 3.1; } if (argument0 = "Power Weapon") { atta = 120; - arp = -1; + arp = 1; rang = 1; } if (argument0 = "Power Sword") { atta = 120; - arp = -1; + arp = 1; rang = 1; } if (argument0 = "Force Weapon") { atta = 250; - arp = -1; + arp = 1; rang = 1; } if (argument0 = "Chainfist") { atta = 300; - arp = -2; + arp = 1; rang = 1; spli = 3; } @@ -703,7 +703,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Heavy Flamer") { atta = 200; - arp = -1; + arp = 0; rang = 2.1; amm = 6; spli = 3; @@ -724,18 +724,18 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } // Bursts if (argument0 = "Power Fist") { atta = 250; - arp = -2; + arp = 1; rang = 1; } if (argument0 = "Possessed Claws") { atta = 150; - arp = -1; + arp = 0; rang = 1; spli = 3; } if (argument0 = "Missile Launcher") { atta = 200; - arp = -1; + arp = 0; rang = 20; amm = 4; } @@ -769,20 +769,20 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Sonic Blaster") { atta = 150; - arp = -1; + arp = 0; rang = 3; spli = 6; } if (argument0 = "Rubric Bolter") { atta = 150; - arp = -1; + arp = 0; rang = 12; amm = 15; spli = 5; } // Bursts if (argument0 = "Witchfire") { atta = 200; - arp = -2; + arp = 1; rang = 5.1; spli = 1; } @@ -808,13 +808,13 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Twin Linked Heavy Bolters") { atta = 240; - arp = -1; + arp = 0; rang = 16; spli = 3; } if (argument0 = "Twin-Linked Heavy Bolters") { atta = 240; - arp = -1; + arp = 0; rang = 16; spli = 3; } @@ -832,19 +832,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Battle Cannon") { atta = 300; - arp = -1; + arp = 0; rang = 12; } if (argument0 = "Demolisher Cannon") { atta = 500; - arp = -2; + arp = 1; rang = 2; spli = 8; if (instance_exists(obj_nfort)) then rang = 5; } if (argument0 = "Earthshaker Cannon") { atta = 250; - arp = -1; + arp = 0; rang = 12; spli = 8; } @@ -856,18 +856,18 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Baleflame") { atta = 225; - arp = -2; + arp = 1; rang = 2; } if (argument0 = "Defiler Claws") { atta = 350; - arp = -2; + arp = 1; rang = 1; spli = 3; } if (argument0 = "Reaper Autocannon") { atta = 320; - arp = -1; + arp = 0; rang = 18; amm = 10; spli = 3; @@ -875,36 +875,36 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (name = "Ripper Gun") { atta = 120; - arp = -1; + arp = 0; rang = 3; amm = 5; spli = 0; } if (name = "Ogryn Melee") { atta = 90; - arp = -2; + arp = 1; rang = 1; } if (name = "Multi-Laser") { atta = 150; - arp = -1; + arp = 0; rang = 10; } if (argument0 = "Blessed Weapon") { atta = 150; - arp = -2; + arp = 1; rang = 1; } if (argument0 = "Electro-Flail") { atta = 125; - arp = -1; + arp = 0; rang = 1; spli = 3; } if (argument0 = "Neural Whip") { atta = 85; - arp = -1; + arp = 0; rang = 1; spli = 3 } @@ -915,18 +915,18 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Seraphim Pistols") { atta = 120; - arp = -1; + arp = 0; rang = 4; } if (argument0 = "Laser Mace") { atta = 150; - arp = -1; + arp = 0; rang = 5.1; amm = 3; } if (argument0 = "Heavy Bolter") { atta = 120; - arp = -1; + arp = 0; rang = 16; spli = 0; } @@ -954,43 +954,43 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 13) { // Some of these, like the Gauss Particle Cannon and Particle Whip, used to be more than twice as strong. if (name = "Staff of Light") { atta = 200; - arp = -2; + arp = 1; rang = 1; spli = 3; } if (name = "Staff of Light Shooting") { atta = 180; - arp = -2; + arp = 1; rang = 3; spli = 3; } if (name = "Warscythe") { atta = 200; - arp = -2; + arp = 1; rang = 1; spli = 0; } if (name = "Gauss Flayer") { atta = 50; - arp = -1; + arp = 0; rang = 6.1; spli = 1; } if (name = "Gauss Blaster") { atta = 80; - arp = -1; + arp = 0; rang = 6.1; spli = 0; } if (name = "Gauss Cannon") { atta = 120; - arp = -2; + arp = 1; rang = 10; spli = 3; } if (name = "Gauss Particle Cannon") { atta = 250; - arp = -2; + arp = 1; rang = 10.1; spli = 3; } @@ -1002,25 +1002,25 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Wraith Claws") { atta = 80; - arp = -1; + arp = 0; rang = 1; spli = 0; } if (name = "Claws") { atta = 300; - arp = -1; + arp = 0; rang = 1; spli = 0; } if (name = "Gauss Flux Arc") { atta = 180; - arp = -1; + arp = 0; rang = 8; spli = 3; } if (name = "Particle Whip") { atta = 300; - arp = -1; + arp = 0; rang = 4.1; spli = 3; } From b2ece2ff5c1da6712bd549b57cfd71f6e95612a5 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Fri, 4 Apr 2025 03:22:44 +0300 Subject: [PATCH 28/47] Loadout adjustments --- .../scr_initialize_custom.gml | 227 +++++------------- scripts/scr_squads/scr_squads.gml | 6 +- scripts/scr_weapon/scr_weapon.gml | 2 +- 3 files changed, 66 insertions(+), 169 deletions(-) diff --git a/scripts/scr_initialize_custom/scr_initialize_custom.gml b/scripts/scr_initialize_custom/scr_initialize_custom.gml index a859707757..cc9962702e 100644 --- a/scripts/scr_initialize_custom/scr_initialize_custom.gml +++ b/scripts/scr_initialize_custom/scr_initialize_custom.gml @@ -39,6 +39,22 @@ enum ePROGENITOR { RANDOM, } +#macro WEAPON_LIST_RANGED_BASIC ["Bolter", "Bolter", "Bolter", "Storm Bolter", "Storm Bolter"] +#macro WEAPON_LIST_RANGED_HEAVY ["Heavy Bolter", "Heavy Bolter", "Missile Launcher", "Missile Launcher", "Multi-Melta", "Lascannon", "Plasma Cannon", "Grav-Cannon"] +#macro WEAPON_LIST_RANGED_SPECIAL ["Flamer", "Flamer", "Meltagun", "Meltagun", "Plasma Gun", "Grav-Gun"] +#macro WEAPON_LIST_RANGED_COMBI ["Combiflamer", "Combiplasma", "Combigrav", "Combimelta"] +#macro WEAPON_LIST_RANGED_PISTOLS ["Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Plasma Pistol", "Plasma Pistol", "Grav-Pistol"] +#macro WEAPON_LIST_RANGED_VANGUARD ["Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Plasma Pistol", "Plasma Pistol", "Grav-Pistol"] +#macro WEAPON_LIST_RANGED_STERNGUARD array_concat(WEAPON_LIST_RANGED_BASIC, WEAPON_LIST_RANGED_COMBI) +#macro WEAPON_LIST_RANGED array_concat(WEAPON_LIST_RANGED_PISTOLS, WEAPON_LIST_RANGED_STERNGUARD, WEAPON_LIST_RANGED_COMBI) + +#macro WEAPON_LIST_MELEE_BASIC ["Chainsword", "Chainsword", "Chainsword", "Chainaxe", "Chainaxe"] +#macro WEAPON_LIST_MELEE_1H ["Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Power Sword", "Power Sword", "Power Sword", "Lightning Claw", "Lightning Claw", "Lightning Claw", "Power Fist", "Power Fist", "Thunder Hammer"] +#macro WEAPON_LIST_MELEE_HEAVY ["Eviscerator"] +#macro WEAPON_LIST_MELEE_VANGUARD ["Chainsword", "Chainsword", "Chainsword", "Power Sword", "Power Axe", "Lightning Claw", "Lightning Claw", "Power Fist", "Power Fist", "Thunder Hammer"] + +#macro WEAPON_LIST_WEIGHTED_RANGED_PISTOLS [["Bolt Pistol", 4], ["Hand Flamer", 2], ["Plasma Pistol", 2], ["Grav-Pistol", 1]] + function progenitor_map(){ var founding_chapters = [ "", @@ -1452,27 +1468,7 @@ function scr_initialize_custom() { sergeant: role[defaults_slot][eROLE.Sergeant], veteran_sergeant: role[defaults_slot][eROLE.VeteranSergeant], } - - var weapon_lists = { - heavy_weapons: ["Heavy Bolter", "Heavy Bolter", "Missile Launcher", "Missile Launcher", "Multi-Melta", "Lascannon","Plasma Cannon","Grav-Cannon"], - melee_weapons: ["Chainsword", "Chainsword", "Chainsword", "Chainaxe", "Chainaxe"], - special_melee_weapons: [ "Eviscerator", "Eviscerator", "Power Sword", "Power Sword", "Power Axe", "Power Axe", "Lightning Claw", "Lightning Claw", "Lightning Claw", "Power Fist", "Power Fist"], - ranged_weapons: ["Bolter", "Bolter", "Storm Bolter", "Storm Bolter", "Stalker Pattern Bolter", "Stalker Pattern Bolter" ], - special_ranged_weapons: ["Flamer", "Flamer", "Meltagun", "Meltagun", "Plasma Gun", "Grav-Gun"], - combi_weapons: ["Combiflamer","Combiplasma","Combigrav","Combimelta"], - pistols: ["Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Hand Flamer", "Hand Flamer", "Plasma Pistol", "Plasma Pistol", "Grav-Pistol"], - one_hand_melee: ["Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Power Sword", "Power Sword", "Power Sword", "Lightning Claw", "Lightning Claw", "Lightning Claw", "Power Fist", "Power Fist", "Thunder Hammer"], - } - - var weapon_weighted_lists = { - heavy_weapons: [["Heavy Bolter", 3], ["Missile Launcher", 3], ["Multi-Melta", 1], ["Lascannon", 1], ["Plasma Cannon", 1], ["Grav-Cannon", 1]], - ranged_weapons: [["Bolter", 4], ["Storm Bolter", 2],["Stalker Pattern Bolter", 2]], - special_ranged_weapons: [["Flamer", 2], ["Meltagun", 2], ["Plasma Gun", 1], ["Grav-Gun", 1]], - melee_weapons: [["Chainsword", 3], ["Chainaxe", 2]], - special_melee_weapons: [["Power Sword", 3], ["Power Axe", 3], ["Lightning Claw", 2], ["Power Fist", 2], ["Thunder Hammer", 1]], - combi_weapons: [["Combiflamer", 1], ["Combiplasma", 1], ["Combigrav", 1], ["Combimelta", 1]], - pistols: [["Bolt Pistol", 4],["Hand Flamer", 2], ["Plasma Pistol", 2], ["Grav-Pistol", 1]], - } + /* squad guidance define a role that can exist in a squad by defining @@ -1654,16 +1650,13 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - weapon_lists.ranged_weapons, 3 + WEAPON_LIST_RANGED_STERNGUARD, 7 ], [ - weapon_lists.combi_weapons, 4 + WEAPON_LIST_RANGED_SPECIAL, 1 ], [ - weapon_lists.special_ranged_weapons, 1 - ], - [ - weapon_lists.heavy_weapons, 1, { + WEAPON_LIST_RANGED_HEAVY, 1, { "wep2":"Combat Knife", "mobi":"Heavy Weapons Pack", } @@ -1679,9 +1672,16 @@ function scr_initialize_custom() { "role": $"Sternguard {roles.veteran_sergeant}", "loadout": { "required": { - "wep1": ["Stalker Pattern Bolter", 1], - "wep2": [wep2[100][eROLE.Veteran], 1], + "wep1": ["", 0], + "wep2": ["Combat Knife", max], }, + "option": { + "wep1": [ + [ + WEAPON_LIST_RANGED_STERNGUARD, 1 + ] + ] + } } }], ["type_data", { @@ -1699,21 +1699,18 @@ function scr_initialize_custom() { "loadout": { "required": { "wep1": ["", 0], - "wep2": ["Bolt Pistol", 4], + "wep2": ["", 0], "mobi": ["Jump Pack", 9] }, "option": { "wep1": [ [ - weapon_lists.special_melee_weapons, 9 + WEAPON_LIST_MELEE_VANGUARD, 9 ], ], "wep2": [ [ - ["Storm Shield"], 2, - ], - [ - weapon_lists.pistols, 3 + WEAPON_LIST_RANGED_VANGUARD, 9 ], ] } @@ -1752,7 +1749,7 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - weapon_lists.heavy_weapons, 4, { + WEAPON_LIST_RANGED_HEAVY, 4, { "mobi":"Heavy Weapons Pack", } ], @@ -1767,19 +1764,15 @@ function scr_initialize_custom() { "role": $"{roles.devastator} {roles.sergeant}", "loadout": { "required": { - "mobi": ["", 1], + "wep2": ["Combat Knife", 1], + "mobi": ["", 0] }, "option": { "wep1": [ [ - weapon_lists.pistols, 1 - ], - ], - "wep2": [ - [ - weapon_lists.melee_weapons, 1 + WEAPON_LIST_RANGED, 1 ], - ], + ] } } }], @@ -1801,10 +1794,10 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - weapon_lists.special_ranged_weapons, 1 + WEAPON_LIST_RANGED_SPECIAL, 1 ], [ - weapon_lists.heavy_weapons, 1, { + WEAPON_LIST_RANGED_HEAVY, 1, { "wep2":"Combat Knife", "mobi":"Heavy Weapons Pack", } @@ -1820,17 +1813,17 @@ function scr_initialize_custom() { "loadout": { "required": { "wep1": ["", 0], - "wep2": ["Chainsword", 1] + "wep2": ["", 0] }, "option": { "wep1": [ [ - weapon_lists.pistols, 1 + WEAPON_LIST_RANGED_PISTOLS, 1 ], ], "wep2": [ [ - weapon_lists.melee_weapons, 1 + WEAPON_LIST_MELEE_BASIC, 1 ], ], } @@ -1883,12 +1876,12 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - weapon_lists.pistols, 1 + WEAPON_LIST_RANGED_PISTOLS, 1 ], ], "wep2": [ [ - weapon_lists.melee_weapons, 1 + WEAPON_LIST_MELEE_1H, 1 ], ], } @@ -1906,13 +1899,13 @@ function scr_initialize_custom() { "min": 4, "loadout": { "required": { - "wep1": [wep1[100][12], 6], - "wep2": [wep2[100][12], 9] + "wep1": ["", 0], + "wep2": ["Combat Knife", 9] }, "option": { "wep1": [ [ - ["Bolter", "Stalker Pattern Bolter"], 2 + ["Bolter", "Sniper Rifle", "Bolter", "Sniper Rifle", "Stalker Pattern Bolter"], 9 ], [ ["Missile Launcher", "Heavy Bolter"], 1 @@ -1925,15 +1918,14 @@ function scr_initialize_custom() { "max": 1, "min": 1, "loadout": { + "required": { + "wep1": ["", 0], + "wep2": ["Combat Knife", 1] + }, "option": { "wep1": [ [ - ["Bolt Pistol", "Bolt Pistol", "Plasma Pistol", "Bolter", "Bolter", "Stalker Pattern Bolter"], 1 - ] - ], - "wep2": [ - [ - weapon_lists.melee_weapons, 1 + WEAPON_LIST_RANGED, 1 ] ] } @@ -1946,45 +1938,6 @@ function scr_initialize_custom() { "formation_options": ["scout"], }], ], - - "scout_sniper_squad": [ - [roles.scout, - { - "max": 9, - "min": 4, - "loadout": { - "required": { - "wep1": ["Sniper Rifle", 8], - "wep2": ["Combat Knife", 9] - }, - "option": { - "wep1": [ - [ - ["Missile Launcher","Needle Sniper Rifle"], 1 - ] - ], - } - }, - "role": $"{roles.scout} Sniper", - }], - [roles.sergeant, { - "max": 1, - "min": 1, - "loadout": { - "required": { - "wep1": ["Needle Sniper Rifle", 1], - "wep2": ["Combat Knife", 1] - }, - }, - "role": $"Sniper {roles.sergeant}", - } - ], - ["type_data", { - "display_data": $"{roles.scout} Sniper {squad_name}", - "class": ["scout"], - "formation_options": ["scout"], - }], - ] }; // show_debug_message($"squads object for chapter {chapter_name}"); @@ -2014,7 +1967,7 @@ function scr_initialize_custom() { // show_debug_message($"roles object for chapter {chapter_name} after setting from obj"); // show_debug_message($"{st}"); - if (scr_has_adv("Crafters")) { //salamanders squads + if (global.chapter_name == "Salamanders") { variable_struct_set(st, "assault_squad", [ [roles.assault, { "max": 9, @@ -2149,58 +2102,6 @@ function scr_initialize_custom() { "formation_options": ["tactical"], }] ]) - variable_struct_set(st,"assault_squad", [ - [roles.assault, { - "max": 9, - "min": 4, - "loadout": { - "required": { - "wep1": [wep1[100, 10], 7], - "wep2": [wep2[100, 10], 7], - }, - "option": { - "wep1": [ - [ - weapon_lists.melee_weapons, 2 - ], - ], - "wep2": [ - [ - ["Plasma Pistol", "Flamer"], 2 - ] - ] - } - } - }], - [roles.sergeant, { - "max": 1, - "min": 1, - "role": $"{roles.assault} {roles.sergeant}", - "loadout": { - "required": { - "wep1": ["", 0], - "wep2": ["", 0], - "gear": ["Combat Shield", 1] - }, - "option": { - "wep1": [ - [ - weapon_lists.pistols, 1 - ], - ], - "wep2": [ - [ - weapon_lists.melee_weapons, 1 - ], - ], - } - } - }], - ["type_data", { - "display_data": $"{roles.assault} {squad_name}", - "formation_options": ["assault"], - }] - ]) } @@ -2464,7 +2365,7 @@ function scr_initialize_custom() { k += 1; commands += 1; man_size += 1; - add_unit_to_company("marine", company, k, roles.techmarine, eROLE.Techmarine, "default", choose_weighted(weapon_weighted_lists.pistols)); + add_unit_to_company("marine", company, k, roles.techmarine, eROLE.Techmarine, "default", choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS)); } // Librarians in the librarium @@ -2472,14 +2373,14 @@ function scr_initialize_custom() { k += 1; commands += 1; man_size += 1; - var _epi = add_unit_to_company("marine", company, k, roles.librarian, eROLE.Librarian, "default", choose_weighted(weapon_weighted_lists.pistols)); + var _epi = add_unit_to_company("marine", company, k, roles.librarian, eROLE.Librarian, "default", choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS)); } // Codiciery repeat(codiciery) { k += 1; commands += 1; man_size += 1; - var _codi = add_unit_to_company("marine", company, k, "Codiciery", eROLE.Librarian, "default", choose_weighted(weapon_weighted_lists.pistols)); + var _codi = add_unit_to_company("marine", company, k, "Codiciery", eROLE.Librarian, "default", choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS)); } // Lexicanum @@ -2487,7 +2388,7 @@ function scr_initialize_custom() { k += 1; commands += 1; man_size += 1; - var _lexi = add_unit_to_company("marine", company, k, "Lexicanum", eROLE.Librarian, "default", choose_weighted(weapon_weighted_lists.pistols)); + var _lexi = add_unit_to_company("marine", company, k, "Lexicanum", eROLE.Librarian, "default", choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS)); } // Apothecaries in Apothecarion @@ -2495,7 +2396,7 @@ function scr_initialize_custom() { k += 1; commands += 1; man_size += 1; - add_unit_to_company("marine", company, k, roles.apothecary, eROLE.Apothecary,"Chainsword", choose_weighted(weapon_weighted_lists.pistols)); + add_unit_to_company("marine", company, k, roles.apothecary, eROLE.Apothecary,"Chainsword", choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS)); } // Chaplains in Reclusium @@ -2503,7 +2404,7 @@ function scr_initialize_custom() { k += 1; commands += 1; man_size += 1; - add_unit_to_company("marine", company, k, roles.chaplain, eROLE.Chaplain,"default", choose_weighted(weapon_weighted_lists.pistols)); + add_unit_to_company("marine", company, k, roles.chaplain, eROLE.Chaplain,"default", choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS)); } // Honour Guard @@ -2950,7 +2851,7 @@ function scr_initialize_custom() { var _mobi = mobi[defaults_slot, eROLE.Captain]; if (company = 8) and(obj_creation.equal_specialists = 0) then _mobi = "Jump Pack"; - add_unit_to_company("marine", company, k, roles.captain, eROLE.Captain, "default",choose_weighted(weapon_weighted_lists.pistols),"default",_mobi); + add_unit_to_company("marine", company, k, roles.captain, eROLE.Captain, "default",choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS),"default",_mobi); repeat (chaplains_per_company){ k += 1; @@ -2961,7 +2862,7 @@ function scr_initialize_custom() { role[company][k] = roles.chaplain; wep1[company][k] = wep1[defaults_slot, eROLE.Chaplain]; name[company][k] = global.name_generator.generate_space_marine_name(); - wep2[company][k] = choose_weighted(weapon_weighted_lists.pistols); + wep2[company][k] = choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS); gear[company][k] = gear[defaults_slot, eROLE.Chaplain]; if (company = 8) and(obj_creation.equal_specialists = 0) then mobi[company][k] = "Jump Pack"; if (mobi[defaults_slot, eROLE.Chaplain] != "") then mobi[company][k] = mobi[defaults_slot, eROLE.Chaplain]; @@ -2971,19 +2872,19 @@ function scr_initialize_custom() { repeat (apothecary_per_company){ k += 1; commands += 1; // Company Apothecary - add_unit_to_company("marine", company, k, roles.apothecary, eROLE.Apothecary, "default",choose_weighted(weapon_weighted_lists.pistols)); + add_unit_to_company("marine", company, k, roles.apothecary, eROLE.Apothecary, "default",choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS)); } repeat(techmarines_per_company) { k += 1; // Company Techmarine commands += 1; - add_unit_to_company("marine", company, k, roles.techmarine, eROLE.Techmarine, "default",choose_weighted(weapon_weighted_lists.pistols)); + add_unit_to_company("marine", company, k, roles.techmarine, eROLE.Techmarine, "default",choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS)); } if (!scr_has_disadv("Psyker Intolerant")) { k += 1; // Company Librarian commands += 1; - add_unit_to_company("marine", company, k, roles.librarian, eROLE.Librarian, "default",choose_weighted(weapon_weighted_lists.pistols)); + add_unit_to_company("marine", company, k, roles.librarian, eROLE.Librarian, "default",choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS)); } k += 1; // Standard Bearer diff --git a/scripts/scr_squads/scr_squads.gml b/scripts/scr_squads/scr_squads.gml index 85a53e0807..b1e14cfc39 100644 --- a/scripts/scr_squads/scr_squads.gml +++ b/scripts/scr_squads/scr_squads.gml @@ -708,11 +708,7 @@ function game_start_squads(){ last_squad_count = array_length(obj_ini.squads); while (last_squad_count == array_length(obj_ini.squads)){ ///keep making tact squads for as long as there are enough tact marines last_squad_count = (array_length(obj_ini.squads) + 1); - if(last_squad_count%2 == 0){ - create_squad("scout_squad", company); - }else{ - create_squad("scout_sniper_squad", company); - } + create_squad("scout_squad", company); } with (obj_ini){ diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 1955686800..e739e35f6b 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -1013,7 +1013,7 @@ global.weapons = { "master_crafted": 300, "artifact": 350 }, - "description": "The Needle Sniper Rifle is a deadly weapon that uses both directed lasers and crystallised neurotoxic needles to dispatch enemies, commonly favoured by assasins and Astartes Scouts .", + "description": "The Needle Sniper Rifle is a deadly weapon that uses both directed lasers and crystallised neurotoxic needles to dispatch enemies, commonly favoured by assasins and Deathwatch scouts.", "melee_hands": 1, "ranged_hands": 2, "ammo": 20, From d3540e97b945c814f002636bbf495acc4f5da421 Mon Sep 17 00:00:00 2001 From: Da Fist <144086663+KRdaMystic@users.noreply.github.com> Date: Sun, 6 Apr 2025 05:44:27 +0900 Subject: [PATCH 29/47] feat: Proper Shotgun addition (#687) Co-authored-by: EttyKitty <20323032+EttyKitty@users.noreply.github.com> --- ChapterMaster.yyp | 1 + objects/obj_shop/Create_0.gml | 5 + .../scr_initialize_custom.gml | 4 +- .../scr_ui_display_weapons.gml | 1 + scripts/scr_weapon/scr_weapon.gml | 5 +- .../ed54fad2-a39b-4f07-9737-5b8f916bee92.png | Bin 0 -> 2179 bytes .../11b4c573-f844-42a2-905a-d6dace60762b.png | Bin 0 -> 2179 bytes .../spr_weapon_shotgun/spr_weapon_shotgun.yy | 111 ++++++++++++++++++ 8 files changed, 122 insertions(+), 5 deletions(-) create mode 100644 sprites/spr_weapon_shotgun/ed54fad2-a39b-4f07-9737-5b8f916bee92.png create mode 100644 sprites/spr_weapon_shotgun/layers/ed54fad2-a39b-4f07-9737-5b8f916bee92/11b4c573-f844-42a2-905a-d6dace60762b.png create mode 100644 sprites/spr_weapon_shotgun/spr_weapon_shotgun.yy diff --git a/ChapterMaster.yyp b/ChapterMaster.yyp index 714beea7ae..259b43aeb0 100644 --- a/ChapterMaster.yyp +++ b/ChapterMaster.yyp @@ -1569,6 +1569,7 @@ {"id":{"name":"spr_weapon_relbla","path":"sprites/spr_weapon_relbla/spr_weapon_relbla.yy",},}, {"id":{"name":"spr_weapon_relic_blade","path":"sprites/spr_weapon_relic_blade/spr_weapon_relic_blade.yy",},}, {"id":{"name":"spr_weapon_sbolter","path":"sprites/spr_weapon_sbolter/spr_weapon_sbolter.yy",},}, + {"id":{"name":"spr_weapon_shotgun","path":"sprites/spr_weapon_shotgun/spr_weapon_shotgun.yy",},}, {"id":{"name":"spr_weapon_skill_icon","path":"sprites/spr_weapon_skill_icon/spr_weapon_skill_icon.yy",},}, {"id":{"name":"spr_weapon_sniper","path":"sprites/spr_weapon_sniper/spr_weapon_sniper.yy",},}, {"id":{"name":"spr_weapon_stalker","path":"sprites/spr_weapon_stalker/spr_weapon_stalker.yy",},}, diff --git a/objects/obj_shop/Create_0.gml b/objects/obj_shop/Create_0.gml index 5dd2193650..52a5152b97 100644 --- a/objects/obj_shop/Create_0.gml +++ b/objects/obj_shop/Create_0.gml @@ -338,6 +338,11 @@ if (shop = "equipment") { item_cost[i] = 80; forge_cost[i] = 230; i += 1; + item[i] = "Shotgun"; + forge_cost[i] = 100; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 10; + i += 1; x_mod[i] = 9; item[i] = "Combiflamer"; item_stocked[i] = scr_item_count(item[i]); diff --git a/scripts/scr_initialize_custom/scr_initialize_custom.gml b/scripts/scr_initialize_custom/scr_initialize_custom.gml index cc9962702e..ca68f6e30b 100644 --- a/scripts/scr_initialize_custom/scr_initialize_custom.gml +++ b/scripts/scr_initialize_custom/scr_initialize_custom.gml @@ -1900,12 +1900,12 @@ function scr_initialize_custom() { "loadout": { "required": { "wep1": ["", 0], - "wep2": ["Combat Knife", 9] + "wep2": ["Combat Knife", "max"] }, "option": { "wep1": [ [ - ["Bolter", "Sniper Rifle", "Bolter", "Sniper Rifle", "Stalker Pattern Bolter"], 9 + ["Bolter", "Bolter", "Shotgun", "Sniper Rifle", "Stalker Pattern Bolter"], 8 ], [ ["Missile Launcher", "Heavy Bolter"], 1 diff --git a/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml b/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml index 3b1e5362c1..79f7502168 100644 --- a/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml +++ b/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml @@ -82,6 +82,7 @@ function scr_ui_display_weapons(left_or_right, current_armor, equiped_weapon, cu "Grav-Gun":spr_weapon_grav_gun, "Missile Launcher":spr_weapon_missile, "Hand Flamer":spr_weapon_hand_flamer, + "Shotgun":spr_weapon_shotgun } var normal_ranged_names = struct_get_names(normal_ranged); for (var i=0;iDos03cZ(0Mau7U=4hg{s924n*hLE zFaTJW0Kk4Cy~)Q03@BgmaCHJUHt(NXE2#hgNkBWbM zp56^X=OOg-dwArLsoZ|^9LfR6Hf7w3`Zm?B$h;S`X>XUb@|u3f{lwJES~}QW;>%B5 zxlzlI9r|gA^hvZDNwaJWY_UpB;-{9AjQ#!wQvW|MH@$%+Wpl*F7-sm2hVNX76c(8v z=4;7ivZ~5T*O~UT(auhX6-tx>9~U>2lU_mdxXeOzG#N=D)?Ezak;%5yfHLthD(}}t zo7Fa*Rzjdaabn*smUO#y2gCSvUVi@ENR40NFAEE?K`l2B(8za^V&lu^c6P>ST4`y~ z{5p+Bi;GSpo^F%E#>j{Y(Y2a#`!%GW8ktPyEvJg&Q0R#tpS88Ia2&&dMRQwQ_{_{g z+O0#!oaxX?go~r2qtE{7NkbNs85J8F+nY=xkqUpw%G&y9Wlt7-tI^BJF;we!=h*Pg{NFAUd(@};}pynk&Kl}8aL4X*e2q30x$;jXT(d^YvV zYRlD#i1R1*oj5IfLeUil%N@>Jv=;4UZ9ng31(-5_q^h8ELPiUc|7#~ zW%c#hK>PS_iX<2eR^8a>SNH^6N_WNs2II(GJ916bjhFrX)qzGeptZMO20KI0(b3V+ zce2aV=MZWy-}~LdRfg~2aHZG7;7=Qq>l4MV$)cv3 z6OEx&qn}G?G~ZL@1^H&rDvsLH=LBQ~_Tt5;q}AH_^`^9qZw-B!T(jFRMD>P6FY-Nd zD0o)pu-ni*D*~PX`TJXUB!l}Q-*&E4k7Pj42J4Nxe*OG7{(_ia%5FuCJv^+=*HwAa z(sBYl=)G$)QSZ@Bumyvf6V7nCT-x2cb${ky^mYp~*^@AXq9sbiNqU-B=jWF8A7nN` z?cbNCYsWTlt06nJ-F6lG1w$l4rMLb%;*>A%dG|Lovm8PukOqa%6OaK@os4&#R5E+~ z@t0MbG??CZ_-yLpgj(MkBEnxyt3p>r_Ho<{Ze)auj_zMF3N3h?&DJbw^VF9JKf2gw zhSh6fyaK~+9@yhVyd%BCKE74Gke7`70V&|3?K6=L1*m3I$1Yj8>9}fyAM{X#F_o9x zh}nz;@L98SePQ*}aS0D~udJEg1$i|Nb=6NX%^WlR8v-y;@If1+n=dDtI)eF|-}85U z@MmfxJ?L1@L4v%#SW~kDCg5)Cs+(daGX5PbHO|2*7K}I968gr+GjiJ9iw!|W{$8g` zif9PMQ@|ZpS28PloW0nwRsFdqd_ov@Q>CsjNNo^TLEDsJ=9J}NKR?qxI?+hD+vce@ z0gqT;8pOrP!%Z&|P^fU#SbQU0y5X}m^t}bA?2>16_ol`e)W&r7hjg2yjj4Uj-OM@= zsXrma*XrV)-oLXfR)@Rd{C7q)cYc~Qx4CU3;A-r15+a0lQeTFq26kXi?0wy}VI@l? z{(-Lpi&$;DZ$XqTD^J){aWtV&SmKqivy76<Dos03cZ(0Mau7U=4hg{s924n*hLE zFaTJW0Kk4Cy~)Q03@BgmaCHJUHt(NXE2#hgNkBWbM zp56^X=OOg-dwArLsoZ|^9LfR6Hf7w3`Zm?B$h;S`X>XUb@|u3f{lwJES~}QW;>%B5 zxlzlI9r|gA^hvZDNwaJWY_UpB;-{9AjQ#!wQvW|MH@$%+Wpl*F7-sm2hVNX76c(8v z=4;7ivZ~5T*O~UT(auhX6-tx>9~U>2lU_mdxXeOzG#N=D)?Ezak;%5yfHLthD(}}t zo7Fa*Rzjdaabn*smUO#y2gCSvUVi@ENR40NFAEE?K`l2B(8za^V&lu^c6P>ST4`y~ z{5p+Bi;GSpo^F%E#>j{Y(Y2a#`!%GW8ktPyEvJg&Q0R#tpS88Ia2&&dMRQwQ_{_{g z+O0#!oaxX?go~r2qtE{7NkbNs85J8F+nY=xkqUpw%G&y9Wlt7-tI^BJF;we!=h*Pg{NFAUd(@};}pynk&Kl}8aL4X*e2q30x$;jXT(d^YvV zYRlD#i1R1*oj5IfLeUil%N@>Jv=;4UZ9ng31(-5_q^h8ELPiUc|7#~ zW%c#hK>PS_iX<2eR^8a>SNH^6N_WNs2II(GJ916bjhFrX)qzGeptZMO20KI0(b3V+ zce2aV=MZWy-}~LdRfg~2aHZG7;7=Qq>l4MV$)cv3 z6OEx&qn}G?G~ZL@1^H&rDvsLH=LBQ~_Tt5;q}AH_^`^9qZw-B!T(jFRMD>P6FY-Nd zD0o)pu-ni*D*~PX`TJXUB!l}Q-*&E4k7Pj42J4Nxe*OG7{(_ia%5FuCJv^+=*HwAa z(sBYl=)G$)QSZ@Bumyvf6V7nCT-x2cb${ky^mYp~*^@AXq9sbiNqU-B=jWF8A7nN` z?cbNCYsWTlt06nJ-F6lG1w$l4rMLb%;*>A%dG|Lovm8PukOqa%6OaK@os4&#R5E+~ z@t0MbG??CZ_-yLpgj(MkBEnxyt3p>r_Ho<{Ze)auj_zMF3N3h?&DJbw^VF9JKf2gw zhSh6fyaK~+9@yhVyd%BCKE74Gke7`70V&|3?K6=L1*m3I$1Yj8>9}fyAM{X#F_o9x zh}nz;@L98SePQ*}aS0D~udJEg1$i|Nb=6NX%^WlR8v-y;@If1+n=dDtI)eF|-}85U z@MmfxJ?L1@L4v%#SW~kDCg5)Cs+(daGX5PbHO|2*7K}I968gr+GjiJ9iw!|W{$8g` zif9PMQ@|ZpS28PloW0nwRsFdqd_ov@Q>CsjNNo^TLEDsJ=9J}NKR?qxI?+hD+vce@ z0gqT;8pOrP!%Z&|P^fU#SbQU0y5X}m^t}bA?2>16_ol`e)W&r7hjg2yjj4Uj-OM@= zsXrma*XrV)-oLXfR)@Rd{C7q)cYc~Qx4CU3;A-r15+a0lQeTFq26kXi?0wy}VI@l? z{(-Lpi&$;DZ$XqTD^J){aWtV&SmKqivy76<":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "eventStubScript":null, + "eventToFunction":{}, + "length":1.0, + "lockOrigin":false, + "moments":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "name":"spr_weapon_shotgun", + "playback":1, + "playbackSpeed":1.0, + "playbackSpeedType":1, + "resourceType":"GMSequence", + "resourceVersion":"2.0", + "seqHeight":231.0, + "seqWidth":167.0, + "showBackdrop":true, + "showBackdropImage":false, + "timeUnits":1, + "tracks":[ + {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"ed54fad2-a39b-4f07-9737-5b8f916bee92","path":"sprites/spr_weapon_shotgun/spr_weapon_shotgun.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"1f0fec53-317a-4842-bc53-a72fcbb31466","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange":null, + "volume":1.0, + "xorigin":0, + "yorigin":0, + }, + "swatchColours":null, + "swfPrecision":2.525, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":167, +} \ No newline at end of file From d2cd100f74a9b38b446ae3509e12375c8de6118f Mon Sep 17 00:00:00 2001 From: Da Fist <144086663+KRdaMystic@users.noreply.github.com> Date: Sun, 6 Apr 2025 06:00:49 +0900 Subject: [PATCH 30/47] feat: Fully working Omnissian Axe and a combi-tool ability (#685) Co-authored-by: EttyKitty <20323032+EttyKitty@users.noreply.github.com> --- ChapterMaster.yyp | 1 + scripts/scr_after_combat/scr_after_combat.gml | 10 +- .../scr_initialize_custom.gml | 4 +- .../scr_ui_display_weapons.gml | 5 +- scripts/scr_weapon/scr_weapon.gml | 11 ++- .../cf403b7b-a831-4dd7-94fc-490b330d9a3b.png | Bin 0 -> 4575 bytes .../3f223d5d-3d0b-4c23-9457-1ae722299b06.png | Bin 0 -> 4575 bytes .../spr_weapon_omnissian_axe.yy | 92 ++++++++++++++++++ 8 files changed, 110 insertions(+), 13 deletions(-) create mode 100644 sprites/spr_weapon_omnissian_axe/cf403b7b-a831-4dd7-94fc-490b330d9a3b.png create mode 100644 sprites/spr_weapon_omnissian_axe/layers/cf403b7b-a831-4dd7-94fc-490b330d9a3b/3f223d5d-3d0b-4c23-9457-1ae722299b06.png create mode 100644 sprites/spr_weapon_omnissian_axe/spr_weapon_omnissian_axe.yy diff --git a/ChapterMaster.yyp b/ChapterMaster.yyp index 259b43aeb0..068d961c3f 100644 --- a/ChapterMaster.yyp +++ b/ChapterMaster.yyp @@ -1551,6 +1551,7 @@ {"id":{"name":"spr_weapon_melta","path":"sprites/spr_weapon_melta/spr_weapon_melta.yy",},}, {"id":{"name":"spr_weapon_missile","path":"sprites/spr_weapon_missile/spr_weapon_missile.yy",},}, {"id":{"name":"spr_weapon_mmelta","path":"sprites/spr_weapon_mmelta/spr_weapon_mmelta.yy",},}, + {"id":{"name":"spr_weapon_omnissian_axe","path":"sprites/spr_weapon_omnissian_axe/spr_weapon_omnissian_axe.yy",},}, {"id":{"name":"spr_weapon_plasc","path":"sprites/spr_weapon_plasc/spr_weapon_plasc.yy",},}, {"id":{"name":"spr_weapon_plasg","path":"sprites/spr_weapon_plasg/spr_weapon_plasg.yy",},}, {"id":{"name":"spr_weapon_plasma_cannon_term","path":"sprites/spr_weapon_plasma_cannon_term/spr_weapon_plasma_cannon_term.yy",},}, diff --git a/scripts/scr_after_combat/scr_after_combat.gml b/scripts/scr_after_combat/scr_after_combat.gml index eee6ab0bf3..7f556d1503 100644 --- a/scripts/scr_after_combat/scr_after_combat.gml +++ b/scripts/scr_after_combat/scr_after_combat.gml @@ -454,13 +454,9 @@ function after_battle_part1() { // Techmarines for saving vehicles; if (unit.IsSpecialist(SPECIALISTS_TECHS, true)) { skill_level = unit.technology / 10; - if (marine_mobi[i]=="Servo-arm") { - skill_level *= 1.5; - } else if (marine_mobi[i]=="Servo-harness") { - skill_level *= 2; - } - skill_level += random(unit.luck / 2); - obj_ncombat.vehicle_recovery_score += skill_level; + skill_level += random(unit.luck / 2); + skill_level += unit.gear_special_value("combi_tool"); + obj_ncombat.vehicle_recovery_score += round(skill_level); obj_ncombat.techmarines_alive++; } } diff --git a/scripts/scr_initialize_custom/scr_initialize_custom.gml b/scripts/scr_initialize_custom/scr_initialize_custom.gml index ca68f6e30b..e44ba1a458 100644 --- a/scripts/scr_initialize_custom/scr_initialize_custom.gml +++ b/scripts/scr_initialize_custom/scr_initialize_custom.gml @@ -1385,7 +1385,7 @@ function scr_initialize_custom() { load_default_gear(eROLE.Scout, "Scout", "Bolter", "Combat Knife", "Scout Armour", "", ""); load_default_gear(eROLE.Chaplain, "Chaplain", "Crozius Arcanum", "Bolt Pistol", "Power Armour", "", "Rosarius"); load_default_gear(eROLE.Apothecary, "Apothecary", "Chainsword", "Bolt Pistol", "Power Armour", "", "Narthecium"); - load_default_gear(eROLE.Techmarine, "Techmarine", "Power Axe", "Bolt Pistol", _hi_qual_armour, "Servo-arm", ""); + load_default_gear(eROLE.Techmarine, "Techmarine", "Omnissian Axe", "Bolt Pistol", _hi_qual_armour, "Servo-arm", ""); load_default_gear(eROLE.Librarian, "Librarian", "Force Staff", "Bolt Pistol", "Power Armour", "", "Psychic Hood"); load_default_gear(eROLE.Sergeant, "Sergeant", "Chainsword", "Bolt Pistol", "Power Armour", "", ""); load_default_gear(eROLE.VeteranSergeant, "Veteran Sergeant", "Chainsword", "Plasma Pistol", "Power Armour", "", ""); @@ -2307,7 +2307,7 @@ function scr_initialize_custom() { // Forge Master name[company, 2] = obj_creation.fmaster; - var _forge_master = add_unit_to_company("marine", company, 2, "Forge Master", eROLE.Techmarine, "Infernus Pistol", "Power Axe", "default", "Servo-harness", _hq_armour); + var _forge_master = add_unit_to_company("marine", company, 2, "Forge Master", eROLE.Techmarine, "Infernus Pistol", "Omnissian Axe", "default", "Servo-harness", _hq_armour); if (_forge_master.technology < 40) { _forge_master.technology = 40; } diff --git a/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml b/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml index 79f7502168..8b55e5a885 100644 --- a/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml +++ b/scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml @@ -140,6 +140,7 @@ function scr_ui_display_weapons(left_or_right, current_armor, equiped_weapon, cu "Power Mace":spr_weapon_powmace, "Mace of Absolution":spr_weapon_mace_of_absolution, "Show Maul":spr_weapon_powmaul, + "Omnissian Axe":spr_weapon_omnissian_axe } var melee_weapons_names=struct_get_names(melee_weapons); var wep_ @@ -328,13 +329,13 @@ function scr_ui_display_weapons(left_or_right, current_armor, equiped_weapon, cu hand_variant[left_or_right] = 3; } - if (array_contains(["Sniper Rifle", "Needle Sniper Rifle", "Force Staff", "Power Sword", "Thunder Hammer", "Autocannon", "Combat Knife", "Power Spear", "Chainsword", "Force Sword"], equiped_weapon)) { + if (array_contains(["Sniper Rifle", "Needle Sniper Rifle", "Force Staff", "Power Sword", "Thunder Hammer", "Autocannon", "Combat Knife", "Power Spear", "Chainsword", "Force Sword", "Omnissian Axe"], equiped_weapon)) { hand_variant[left_or_right] = 2; hand_on_top[left_or_right] = true; } // New weapon draw method - if (array_contains(["Force Staff", "Mace of Absolution", "Power Mace", "Power Axe", "Power Sword", "Autocannon", "Combat Knife", "Power Spear", "Shock Maul", "Chainsword", "Chainaxe", "Force Sword", "Force Axe"], equiped_weapon)) { + if (array_contains(["Force Staff", "Mace of Absolution", "Power Mace", "Power Axe", "Power Sword", "Autocannon", "Combat Knife", "Power Spear", "Shock Maul", "Chainsword", "Chainaxe", "Force Sword", "Force Axe", "Omnissian Axe"], equiped_weapon)) { new_weapon_draw[left_or_right] = true; } diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 39f97fee1d..d0882b4f82 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -284,6 +284,9 @@ global.weapons = { "spli": 5, "arp": 3, "tags": ["power", "axe", "savage", "boarding 3"], + "specials": { + "combi_tool": 1 + } }, "Executioner Power Axe": { "abbreviation": "ExPwrAxe", @@ -2743,7 +2746,6 @@ global.gear = { }, "Servo-arm": { "abbreviation": "SrvArm", - "special_properties": ["Repairs Vehicles"], "second_profiles": ["Servo-arm(M)"], "description": "A manipulator mechandendrite, also known as a Servo-arm. This artificial limb is a great aid to help trained Techmarines repair damaged vehicles on the battlefield, yet may be used in melee combat, thanks to its considerable crushing power and weight.", "damage_resistance_mod": { @@ -2753,10 +2755,12 @@ global.gear = { }, "melee_hands": -0.25, "ranged_hands": -0.25, + "specials": { + "combi_tool": 1 + } }, "Servo-harness": { "abbreviation": "SrvHrns", - "special_properties": ["Repairs Vehicles"], "second_profiles": ["Servo-arm(M)", "Servo-arm(M)", "Flamer", "Plasma Cutter"], "description": "A Servo-Harness is a special type of augmetic aid, often used by Chapter's Master of the Forge or his senior Techmarines. It consists of many blessed tools, two Servo-arms and a couple of deadly weapons. With it, one can make battlefield repairs on any vehicle, shore up defences, or even assist his battle-brothers in combat.", "damage_resistance_mod": { @@ -2766,6 +2770,9 @@ global.gear = { }, "melee_hands": -0.5, "ranged_hands": -0.5, + "specials": { + "combi_tool": 2 + } }, "Conversion Beamer Pack": { "abbreviation": "CnvBmr", diff --git a/sprites/spr_weapon_omnissian_axe/cf403b7b-a831-4dd7-94fc-490b330d9a3b.png b/sprites/spr_weapon_omnissian_axe/cf403b7b-a831-4dd7-94fc-490b330d9a3b.png new file mode 100644 index 0000000000000000000000000000000000000000..8dec0f8143d1f2b1a3a60fd6fe2328eff9506fcb GIT binary patch literal 4575 zcmd5=XHZjJw>}`DMnF)S6hWj2NC-hfZ=nR~y&FJ!i_)a`E~tnI(nKjD(gXx)0rDc6 zh=5dqycnv2Q92shcYN>6H*;t1_vg<2aZk?5o;iEg-m5(8+3TDPGZX#O%zVrM0Gvh} zpe(?#8kAK=dhkEWL@yp3F1Q<57z0407y!g40{|6#6#o?fLSX=~h5-QO0s!E~7I&Dd zf)n&^*Yr`q$)Deo?&=2s!2Su1(z3ceLm>tETUyUCZ2at|Oxv{`3s|mTkX#pKjTq^T z=@R8cq&XmG$M4XERM9PnT)3lAe;!uMxgGzCj&?IekBbv_cm^saCd%@dos+{Q;{xWk z4VJAj%+I!RedeI6U_UZwHo%A!8F+9cswhLEe5Ld#RpWwxs6o>IuP<*Xx-gbzQS*JD z`$y)_$7vSI%F0l-4`mt}+&L;z@4&f>W_nGP6C_eLfnaE5WAn7LQ)O&W=NV>bhlK}i zY<$}PYLROeN+h+eyF2FH>U?K78}8(|Gpy``&M)k-V}d5I`myBvkma~dfwRVGAA~d2 z%(;`iy1ToJkEQGV;$>C&?3sJTkvD((oU+8Vd};KzPh+9$_YLU8O-qf!RSA2PSq3(% z+>Jg4A!zt_g6;K~ltH05e%7>8B_$=&rEsGq#pALTC&`4_R~{^aQQzh0Xldw@w19YN z;&gXZ+p!Yi@9rpbYwHwVdC%T&AtL;&@=tihcDzhth!MXwToDMwo$*^$2BIA4gNs<@ z66_nNdmg-?)jx43>No85f`glBftZ+>_Am+`;7wBk_h1Gi1dBV4hCsizb1D}DW-czQ zog`KO+es==k5P_{iaNub(lRS$TMzvmtx%jRs+I2{kxBcA2x*(m#=z23Q|S$Ili$A8 z1A0NrXaLX?GL|QcTb7>Z!yR_@;u9NH!KwZliOeu5BD~n7n#-bWn87~3>E@!|cTy*} zuCDGzWH*phC}%GO`cRWAse`!%~icsgM8kM)ZUCwfIKWlHdJD4jp5Cs4k85!iw z1v&=@2LSrIo@y*paO|r#0lWNb9hHkS5hGtX;^FLB-Z?mG{Ok|VSBpFw^(Me_b7+Cq z*49+ai!%8MEN!o)sagv0k?g5oDq!Gz+I+8d1h1MP6ci*G*aVYjDSAFWl0W9&Jowgj zNt{vO<5JT#Qg4Jqt!)E6aQ57}^5@SbD%n4!S(=`%7e%MWN2&^fU;s2lIka?jA>YGP zwzjvGj+I!GS-rM)mV06jTFL^Z8-+dC)dlam6Y?bQiK1Dm_&zS>Z&#Pae)=KKk(4b>X=zm<%~lu)3N|> zveoLWH5Ie=6I>#1a(iu}RzgBT6SUoNSWYZN3*q&V|3i`D@P=J%Y!7)}z08!QNZB6& zgFQK?>5Ez1M1rRJ`uWiS;wHra(6#+h1&icQO*9DbnHXB!#7xyYPrnX0Uw<8!las@G zxJ8sL4i|FQZY#E_Jr~v~z``Xx;?Sor7(o}c_kA>RDXepJVghm@wAWc>FojdGp5p z2qy|Fa5rhmAA|KeJ3F7w8c6g;WXgMe1OSsV^*YMjV#xG1_m`@A9sT!08)TU!HwvRG;j*NA{h*b^M?`gx4$-l)D%ISwcE z2lP|xDR?rETmb;x_lZs)SCHIZ8A=-ahLYw=n(!R}ci33SlJyNH&qr@(zutan-;8N> z5GKN}IJL*e9P9~mW%UKNEl$=sdItu+B|Mb6UsiTEF_9L(vi;l4(XqB(m-9- zw?T&d@}W@vd3}BAQ;A=Dvq3k%Ps@Sj>Nl1KmOXxJnYg(#X1ZADRjTFeEC5n$we_lO z_fGEQQEl5=ObjfIWfAKf;pZnc7pQ1xX!vFGHu7&JdK7att>$_^4Nu~k3=|k$?CM7W zJL&u-rO@ZY*7%xOy4%YSZOv?K@;~WT$Iv`GG*Sv)F)}JuK~KQ8D5wZ^h~qn|}qGv6b6pA`Ow@UFOYrHhwEbAV0^ zeE-}GrW;G{hqSb|_K~q*(yEK6?|&asoCnz}b(SJ{Yufucxe{b7J_pZ)`DKK!SA>mRVdnN=p--kK22fa*3S2s>j=HJUMlO- z#fZVCKF8rs5VT}{j_`ZcfGWJPr zEeqHi0Q7@O^S2jI14&Y0$PyDB%>ybGET=5%S{w3u18%ZZ-lDBO>>HvdS=}S>`0)2T zB2fp%gNlp8T@4q^);p7}N8UdG3#8R@<%a#+@fu5WbMx}LtcsxDtnXJqTN5-NiNKzOK22fK|L&hCiJ zl|=qdq3EK~8Ln|hbv^8a;o(6r1YjvPV#(Sj_Bq1k_}`0nHE4k@mxi!}qT^)thAF=S z2%lszc+RJ>3eW;|Tl2U$jjMrk>F5VymC@?fL8lUcXmz2PnVF5R&+aZ{h?jzg7Fhx1 zZuAxV!uGl{KPwap1vCkHH;j$5!*(l=D;AcpYqDW}K0bYSc;&Ibw>CLGFbSA^`FV+*Gb7nG#$=aoZ)@vT029hSAB<0HD{`#0^zzYDW*vyU zbFICdU3zEuPfu#Vd#3(0%jH{d*s}((C&x#^`@g?84+DVTcaBOP}Chx6;li<)13)$GH=6<-I;UY)zb0el-N*8xupkk4mUM?j0Ytqp9O z7-(tm_CH-3xIyrIu|O;u{K~gxr1Z;E4a8lMv zSg}-fd}{jg({z%vWBHKb`fjeaMi;{8lc-EGK6H7Fx{+tEofiDOH(PIO!=eN8qCC%o zH#Zdi(gk;jb+;gG;KN0lV!BPSk4x{d8& z4Yq^1CHspCd23%flx63qr_=lUwT(dChYuglbQpRKm+FRwDx7*uQ^mN7D}P-~)daUF zQ3-$1X#nJf^g-#9Kz6s;FTa`3N$vuhQ&F^G56nae>9amrMV!pfQM8KH@T;zmL zNCtz=qa@isC}^tf@q6x4w2uD`S`dOq#qF;6RN?*2$Zoq<--luLFb@Xv&QJ)f^p~6y zxQ^sUF!f&4(6Km!aje_K3+ox%j*0_5UqY;Q`1-kX=L%z)^0c(m9^5KwBvH-u+IzEK zrPuV=-~ydVR^Z!1VQj>X5ZJ;i2K{aHJO4|_ry;>J+2<}r%r?5}5ZqlFY-?(2%=4w~ z`>p3+-Fq$r!eDf`u6AvG9Rz&KgqlQD2A>IV&!kjU$=|PFyd>BGPAnj^y-?ks3kF{! z!29`&7yaE)`x~=CIAI>>0!S&IO00aB?mL z-wlbjgNid{kwsnQibbVUA0!W8a~pX~IJofW|K()950`a&%)!;;!)?=KyembjPO>wj z=MK@^CWrIL&O0wTNXgIF7t{RN%*v{Q1a^YL92wqi6bhvBES?Wncu+%6~NrVhw?`hn=X4 zY$C&s8|IA$wVvI`EUy5S0H89$Min8<1`hbeypj(i3yl{TsVY$i;t-NP;?Drf0e{Mstf}8;kuS@6e-6W`cdfybRn7xX>IUA(Qmq6as>7_;^PAX9dpChZ>-Q#J_h4@d@w<4si{@ W{%0K&rsWH$1E6(HQ1#lF#D4+RD|#9L literal 0 HcmV?d00001 diff --git a/sprites/spr_weapon_omnissian_axe/layers/cf403b7b-a831-4dd7-94fc-490b330d9a3b/3f223d5d-3d0b-4c23-9457-1ae722299b06.png b/sprites/spr_weapon_omnissian_axe/layers/cf403b7b-a831-4dd7-94fc-490b330d9a3b/3f223d5d-3d0b-4c23-9457-1ae722299b06.png new file mode 100644 index 0000000000000000000000000000000000000000..8dec0f8143d1f2b1a3a60fd6fe2328eff9506fcb GIT binary patch literal 4575 zcmd5=XHZjJw>}`DMnF)S6hWj2NC-hfZ=nR~y&FJ!i_)a`E~tnI(nKjD(gXx)0rDc6 zh=5dqycnv2Q92shcYN>6H*;t1_vg<2aZk?5o;iEg-m5(8+3TDPGZX#O%zVrM0Gvh} zpe(?#8kAK=dhkEWL@yp3F1Q<57z0407y!g40{|6#6#o?fLSX=~h5-QO0s!E~7I&Dd zf)n&^*Yr`q$)Deo?&=2s!2Su1(z3ceLm>tETUyUCZ2at|Oxv{`3s|mTkX#pKjTq^T z=@R8cq&XmG$M4XERM9PnT)3lAe;!uMxgGzCj&?IekBbv_cm^saCd%@dos+{Q;{xWk z4VJAj%+I!RedeI6U_UZwHo%A!8F+9cswhLEe5Ld#RpWwxs6o>IuP<*Xx-gbzQS*JD z`$y)_$7vSI%F0l-4`mt}+&L;z@4&f>W_nGP6C_eLfnaE5WAn7LQ)O&W=NV>bhlK}i zY<$}PYLROeN+h+eyF2FH>U?K78}8(|Gpy``&M)k-V}d5I`myBvkma~dfwRVGAA~d2 z%(;`iy1ToJkEQGV;$>C&?3sJTkvD((oU+8Vd};KzPh+9$_YLU8O-qf!RSA2PSq3(% z+>Jg4A!zt_g6;K~ltH05e%7>8B_$=&rEsGq#pALTC&`4_R~{^aQQzh0Xldw@w19YN z;&gXZ+p!Yi@9rpbYwHwVdC%T&AtL;&@=tihcDzhth!MXwToDMwo$*^$2BIA4gNs<@ z66_nNdmg-?)jx43>No85f`glBftZ+>_Am+`;7wBk_h1Gi1dBV4hCsizb1D}DW-czQ zog`KO+es==k5P_{iaNub(lRS$TMzvmtx%jRs+I2{kxBcA2x*(m#=z23Q|S$Ili$A8 z1A0NrXaLX?GL|QcTb7>Z!yR_@;u9NH!KwZliOeu5BD~n7n#-bWn87~3>E@!|cTy*} zuCDGzWH*phC}%GO`cRWAse`!%~icsgM8kM)ZUCwfIKWlHdJD4jp5Cs4k85!iw z1v&=@2LSrIo@y*paO|r#0lWNb9hHkS5hGtX;^FLB-Z?mG{Ok|VSBpFw^(Me_b7+Cq z*49+ai!%8MEN!o)sagv0k?g5oDq!Gz+I+8d1h1MP6ci*G*aVYjDSAFWl0W9&Jowgj zNt{vO<5JT#Qg4Jqt!)E6aQ57}^5@SbD%n4!S(=`%7e%MWN2&^fU;s2lIka?jA>YGP zwzjvGj+I!GS-rM)mV06jTFL^Z8-+dC)dlam6Y?bQiK1Dm_&zS>Z&#Pae)=KKk(4b>X=zm<%~lu)3N|> zveoLWH5Ie=6I>#1a(iu}RzgBT6SUoNSWYZN3*q&V|3i`D@P=J%Y!7)}z08!QNZB6& zgFQK?>5Ez1M1rRJ`uWiS;wHra(6#+h1&icQO*9DbnHXB!#7xyYPrnX0Uw<8!las@G zxJ8sL4i|FQZY#E_Jr~v~z``Xx;?Sor7(o}c_kA>RDXepJVghm@wAWc>FojdGp5p z2qy|Fa5rhmAA|KeJ3F7w8c6g;WXgMe1OSsV^*YMjV#xG1_m`@A9sT!08)TU!HwvRG;j*NA{h*b^M?`gx4$-l)D%ISwcE z2lP|xDR?rETmb;x_lZs)SCHIZ8A=-ahLYw=n(!R}ci33SlJyNH&qr@(zutan-;8N> z5GKN}IJL*e9P9~mW%UKNEl$=sdItu+B|Mb6UsiTEF_9L(vi;l4(XqB(m-9- zw?T&d@}W@vd3}BAQ;A=Dvq3k%Ps@Sj>Nl1KmOXxJnYg(#X1ZADRjTFeEC5n$we_lO z_fGEQQEl5=ObjfIWfAKf;pZnc7pQ1xX!vFGHu7&JdK7att>$_^4Nu~k3=|k$?CM7W zJL&u-rO@ZY*7%xOy4%YSZOv?K@;~WT$Iv`GG*Sv)F)}JuK~KQ8D5wZ^h~qn|}qGv6b6pA`Ow@UFOYrHhwEbAV0^ zeE-}GrW;G{hqSb|_K~q*(yEK6?|&asoCnz}b(SJ{Yufucxe{b7J_pZ)`DKK!SA>mRVdnN=p--kK22fa*3S2s>j=HJUMlO- z#fZVCKF8rs5VT}{j_`ZcfGWJPr zEeqHi0Q7@O^S2jI14&Y0$PyDB%>ybGET=5%S{w3u18%ZZ-lDBO>>HvdS=}S>`0)2T zB2fp%gNlp8T@4q^);p7}N8UdG3#8R@<%a#+@fu5WbMx}LtcsxDtnXJqTN5-NiNKzOK22fK|L&hCiJ zl|=qdq3EK~8Ln|hbv^8a;o(6r1YjvPV#(Sj_Bq1k_}`0nHE4k@mxi!}qT^)thAF=S z2%lszc+RJ>3eW;|Tl2U$jjMrk>F5VymC@?fL8lUcXmz2PnVF5R&+aZ{h?jzg7Fhx1 zZuAxV!uGl{KPwap1vCkHH;j$5!*(l=D;AcpYqDW}K0bYSc;&Ibw>CLGFbSA^`FV+*Gb7nG#$=aoZ)@vT029hSAB<0HD{`#0^zzYDW*vyU zbFICdU3zEuPfu#Vd#3(0%jH{d*s}((C&x#^`@g?84+DVTcaBOP}Chx6;li<)13)$GH=6<-I;UY)zb0el-N*8xupkk4mUM?j0Ytqp9O z7-(tm_CH-3xIyrIu|O;u{K~gxr1Z;E4a8lMv zSg}-fd}{jg({z%vWBHKb`fjeaMi;{8lc-EGK6H7Fx{+tEofiDOH(PIO!=eN8qCC%o zH#Zdi(gk;jb+;gG;KN0lV!BPSk4x{d8& z4Yq^1CHspCd23%flx63qr_=lUwT(dChYuglbQpRKm+FRwDx7*uQ^mN7D}P-~)daUF zQ3-$1X#nJf^g-#9Kz6s;FTa`3N$vuhQ&F^G56nae>9amrMV!pfQM8KH@T;zmL zNCtz=qa@isC}^tf@q6x4w2uD`S`dOq#qF;6RN?*2$Zoq<--luLFb@Xv&QJ)f^p~6y zxQ^sUF!f&4(6Km!aje_K3+ox%j*0_5UqY;Q`1-kX=L%z)^0c(m9^5KwBvH-u+IzEK zrPuV=-~ydVR^Z!1VQj>X5ZJ;i2K{aHJO4|_ry;>J+2<}r%r?5}5ZqlFY-?(2%=4w~ z`>p3+-Fq$r!eDf`u6AvG9Rz&KgqlQD2A>IV&!kjU$=|PFyd>BGPAnj^y-?ks3kF{! z!29`&7yaE)`x~=CIAI>>0!S&IO00aB?mL z-wlbjgNid{kwsnQibbVUA0!W8a~pX~IJofW|K()950`a&%)!;;!)?=KyembjPO>wj z=MK@^CWrIL&O0wTNXgIF7t{RN%*v{Q1a^YL92wqi6bhvBES?Wncu+%6~NrVhw?`hn=X4 zY$C&s8|IA$wVvI`EUy5S0H89$Min8<1`hbeypj(i3yl{TsVY$i;t-NP;?Drf0e{Mstf}8;kuS@6e-6W`cdfybRn7xX>IUA(Qmq6as>7_;^PAX9dpChZ>-Q#J_h4@d@w<4si{@ W{%0K&rsWH$1E6(HQ1#lF#D4+RD|#9L literal 0 HcmV?d00001 diff --git a/sprites/spr_weapon_omnissian_axe/spr_weapon_omnissian_axe.yy b/sprites/spr_weapon_omnissian_axe/spr_weapon_omnissian_axe.yy new file mode 100644 index 0000000000..66bd248f42 --- /dev/null +++ b/sprites/spr_weapon_omnissian_axe/spr_weapon_omnissian_axe.yy @@ -0,0 +1,92 @@ +{ + "$GMSprite":"", + "%Name":"spr_weapon_omnissian_axe", + "bboxMode":0, + "bbox_bottom":222, + "bbox_left":33, + "bbox_right":82, + "bbox_top":63, + "collisionKind":1, + "collisionTolerance":0, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"cf403b7b-a831-4dd7-94fc-490b330d9a3b","name":"cf403b7b-a831-4dd7-94fc-490b330d9a3b","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":231, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"3f223d5d-3d0b-4c23-9457-1ae722299b06","blendMode":0,"displayName":"default","isLocked":false,"name":"3f223d5d-3d0b-4c23-9457-1ae722299b06","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"spr_weapon_omnissian_axe", + "nineSlice":null, + "origin":0, + "parent":{ + "name":"melee", + "path":"folders/Sprites/Marine Viewer/weapons/melee.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"v1", + "%Name":"spr_weapon_omnissian_axe", + "autoRecord":true, + "backdropHeight":1080, + "backdropImageOpacity":0.5, + "backdropImagePath":"", + "backdropWidth":1920, + "backdropXOffset":0.0, + "backdropYOffset":0.0, + "events":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "eventStubScript":null, + "eventToFunction":{}, + "length":1.0, + "lockOrigin":false, + "moments":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "name":"spr_weapon_omnissian_axe", + "playback":1, + "playbackSpeed":1.0, + "playbackSpeedType":1, + "resourceType":"GMSequence", + "resourceVersion":"2.0", + "seqHeight":231.0, + "seqWidth":167.0, + "showBackdrop":true, + "showBackdropImage":false, + "timeUnits":1, + "tracks":[ + {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"cf403b7b-a831-4dd7-94fc-490b330d9a3b","path":"sprites/spr_weapon_omnissian_axe/spr_weapon_omnissian_axe.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"877d958c-0ba3-4cf7-b6c6-61d21827c596","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange":null, + "volume":1.0, + "xorigin":0, + "yorigin":0, + }, + "swatchColours":null, + "swfPrecision":2.525, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":167, +} \ No newline at end of file From 068e9e5c3ea757ec72218b8d4f28e2182dbc04a9 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Mon, 7 Apr 2025 18:13:09 +0300 Subject: [PATCH 31/47] feat: Sternguard and Vanguard > Veteran; Loadout adjustments (#683) --- objects/obj_popup/Mouse_50.gml | 2 +- .../scr_company_order/scr_company_order.gml | 3 +- .../scr_initialize_custom.gml | 242 ++++++++---------- scripts/scr_squads/scr_squads.gml | 6 +- 4 files changed, 106 insertions(+), 147 deletions(-) diff --git a/objects/obj_popup/Mouse_50.gml b/objects/obj_popup/Mouse_50.gml index 1e24a2e80d..6e24631790 100644 --- a/objects/obj_popup/Mouse_50.gml +++ b/objects/obj_popup/Mouse_50.gml @@ -321,7 +321,7 @@ if (point_in_rectangle(mouse_x, mouse_y, xx+1465, yy+499,xx+1576,yy+518)){// Pro variable_struct_set(role_squad_equivilances,obj_ini.role[100][9],"devastator_squad"); variable_struct_set(role_squad_equivilances,obj_ini.role[100][10],"assault_squad"); variable_struct_set(role_squad_equivilances,obj_ini.role[100][12],"scout_squad"); - variable_struct_set(role_squad_equivilances,obj_ini.role[100][3],"sternguard_veteran_squad"); + variable_struct_set(role_squad_equivilances,obj_ini.role[100][3],"veteran_squad"); variable_struct_set(role_squad_equivilances,obj_ini.role[100][4],"terminator_squad"); for(i=0;i Date: Wed, 9 Apr 2025 06:46:16 +0300 Subject: [PATCH 32/47] Fix "max" (that I broke) and more Veteran loadouts --- .../scr_initialize_custom.gml | 130 +++++++++++++++--- 1 file changed, 109 insertions(+), 21 deletions(-) diff --git a/scripts/scr_initialize_custom/scr_initialize_custom.gml b/scripts/scr_initialize_custom/scr_initialize_custom.gml index 97392a810d..9e71e1404e 100644 --- a/scripts/scr_initialize_custom/scr_initialize_custom.gml +++ b/scripts/scr_initialize_custom/scr_initialize_custom.gml @@ -43,7 +43,7 @@ enum ePROGENITOR { #macro WEAPON_LIST_RANGED_HEAVY_LONG ["Heavy Bolter", "Heavy Bolter", "Heavy Bolter", "Heavy Bolter", "Missile Launcher", "Missile Launcher", "Missile Launcher", "Lascannon", "Lascannon", "Plasma Cannon", "Grav-Cannon"] #macro WEAPON_LIST_RANGED_HEAVY_ASSAULT ["Heavy Flamer", "Heavy Flamer", "Heavy Flamer", "Multi-Melta"] #macro WEAPON_LIST_RANGED_HEAVY array_concat(WEAPON_LIST_RANGED_HEAVY_LONG, WEAPON_LIST_RANGED_HEAVY_ASSAULT) - +#macro WEAPON_LIST_RANGED_HEAVY_VETERAN ["Heavy Bolter", "Heavy Bolter", "Missile Launcher", "Lascannon", "Lascannon", "Multi-Melta", "Plasma Cannon", "Grav-Cannon"] #macro WEAPON_LIST_RANGED_SPECIAL_LONG ["Plasma Gun", "Plasma Gun", "Plasma Gun", "Grav-Gun"] #macro WEAPON_LIST_RANGED_SPECIAL_ASSAULT ["Flamer", "Flamer", "Flamer", "Meltagun"] @@ -64,6 +64,8 @@ enum ePROGENITOR { #macro WEAPON_LIST_MELEE_BASIC ["Chainsword", "Chainsword", "Chainaxe"] #macro WEAPON_LIST_MELEE_1H ["Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Chainsword", "Power Sword", "Power Sword", "Power Sword", "Lightning Claw", "Lightning Claw", "Lightning Claw", "Power Fist", "Power Fist", "Thunder Hammer"] #macro WEAPON_LIST_MELEE_HEAVY ["Eviscerator", "Eviscerator", "Eviscerator", "Eviscerator", "Eviscerator", "Heavy Thunder Hammer"] +#macro WEAPON_LIST_MELEE_VETERAN ["Chainsword", "Chainsword", "Chainsword", "Power Sword", "Power Sword", "Power Sword", "Lightning Claw", "Lightning Claw", "Lightning Claw", "Power Fist", "Power Fist", "Thunder Hammer"] + #macro WEAPON_LIST_WEIGHTED_RANGED_PISTOLS [["Bolt Pistol", 4], ["Plasma Pistol", 2], ["Grav-Pistol", 1]] @@ -1545,7 +1547,7 @@ function scr_initialize_custom() { "loadout": { "required": { "wep1": ["", 0], - "wep2": ["Combat Knife", "max"], + "wep2": ["Combat Knife", max], }, "option": { "wep1": [ @@ -1680,7 +1682,7 @@ function scr_initialize_custom() { "loadout": { "required": { "wep1": ["", 0], - "wep2": ["Combat Knife", "max"], + "wep2": ["Combat Knife", max], }, "option": { "wep1": [ @@ -1698,7 +1700,7 @@ function scr_initialize_custom() { "loadout": { "required": { "wep1": ["", 0], - "wep2": ["Combat Knife", "max"], + "wep2": ["Combat Knife", max], }, "option": { "wep1": [ @@ -1888,7 +1890,7 @@ function scr_initialize_custom() { "loadout": { "required": { "wep1": ["", 0], - "wep2": ["Combat Knife", "max"] + "wep2": ["Combat Knife", max] }, "option": { "wep1": [ @@ -1991,9 +1993,9 @@ function scr_initialize_custom() { "min": 4, "loadout": { //tactical marine "required": { - "wep1": ["", "max"], - "wep2": ["Chainsword", "max"], - "mobi": ["Bike", "max"] + "wep1": ["", max], + "wep2": ["Chainsword", max], + "mobi": ["Bike", max] } }, "role": $"Biker" @@ -2003,8 +2005,8 @@ function scr_initialize_custom() { "min": 1, "loadout": { //sergeant "required": { - "wep1": ["", "max"], - "wep2": ["Chainsword", "max"], + "wep1": ["", max], + "wep2": ["Chainsword", max], "mobi": ["Bike", 1] } }, @@ -2026,18 +2028,18 @@ function scr_initialize_custom() { "loadout": { //tactical breacher marine "required": { "wep1":[wep1[100, 8], 7], - "wep2":["Boarding Shield", "max"], - "armour":["MK3 Iron Armour", "max"], - "gear":["Plasma Bomb", "max"], - "mobi":["", "max"] + "wep2":["Boarding Shield", max], + "armour":["MK3 Iron Armour", max], + "gear":["Plasma Bomb", max], + "mobi":["", max] }, "option": { "wep1": [ [ - ["Flamer", "Grav-Gun", "Meltagun", "Lascutter"], 2, + ["Flamer", "Flamer", "Flamer", "Grav-Gun", "Meltagun", "Lascutter"], 2, ], ] - } + } }, "role": $"Breacher" }], @@ -2046,15 +2048,15 @@ function scr_initialize_custom() { "min": 1, "loadout": { //sergeant "required": { - "wep2":["Boarding Shield", "max"], - "armour":["MK3 Iron Armour", "max"], - "mobi": ["", "max"], - "gear": ["Plasma Bomb", "max"] + "wep2":["Boarding Shield", max], + "armour":["MK3 Iron Armour", max], + "mobi": ["", max], + "gear": ["Plasma Bomb", max] }, "option": { "wep1": [ [ - ["Bolter", "Bolter", "Bolter", "Combiflamer"], 1 + WEAPON_LIST_RANGED_COMBI, 1 ] ], } @@ -2068,6 +2070,92 @@ function scr_initialize_custom() { ]) } + if (scr_has_adv("Assault Doctrine")) { + variable_struct_set(st, "veteran_squad", [ + [roles.veteran_sergeant, { + "max": 1, + "min": 1, + "role": $"{roles.veteran_sergeant}", + "loadout": { + "required": { + "wep1": ["", 0], + "wep2": ["", 0], + "mobi": ["Jump Pack", max], + "gear": ["Combat Shield", max] + }, + "option": { + "wep1": [ + [ + WEAPON_LIST_RANGED_PISTOLS, 1 + ], + ], + "wep2": [ + [ + WEAPON_LIST_MELEE_VETERAN, 1 + ], + ] + } + }, + }], + [roles.veteran, { + "max": 9, + "min": 4, + "role": $"{roles.veteran}", + "loadout": { + "required": { + "wep1": ["", 0], + "wep2": ["", 0], + "mobi": ["Jump Pack", max], + "gear": ["Combat Shield", max] + }, + "option": { + "wep1": [ + [ + WEAPON_LIST_RANGED_PISTOLS, 9 + ], + ], + "wep2": [ + [ + WEAPON_LIST_MELEE_VETERAN, 9 + ], + ] + } + }, + }, ], + ["type_data", { + "display_data": $"{roles.veteran} {squad_name}", + "formation_options": ["veteran", "assault", "devastator", "scout", "tactical"], + }] + ]) + } + + if (scr_has_adv("Devastator Doctrine")) { + st[$ "veteran_squad"][1] = + [roles.veteran, { + "max": 9, + "min": 4, + "role": $"{roles.veteran}", + "loadout": { + "required": { + "wep1": ["", 0], + "wep2": ["Combat Knife", max], + }, + "option": { + "wep1": [ + [ + WEAPON_LIST_RANGED_VETERAN, 5 + ], + [ + WEAPON_LIST_RANGED_HEAVY_VETERAN, 4, { + "mobi": "Heavy Weapons Pack", + } + ] + ], + } + }, + }, ] + } + var squad_names = struct_get_names(st); // show_debug_message($" {squad_names}"); From adf169c6ccc93a916cacf0d8920cb8a6ecd79923 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Sun, 18 May 2025 21:44:06 +0300 Subject: [PATCH 33/47] Cyclone Launcher sprite; better mobi equip restriction checking --- ChapterMaster.yyp | 1 + objects/obj_popup/Draw_0.gml | 33 +- objects/obj_shop/Create_0.gml | 3376 +++++++++-------- .../scr_culture_visuals.gml | 9 +- .../scr_equipment_struct.gml | 1 + .../scr_unit_equip_functions.gml | 57 +- scripts/scr_weapon/scr_weapon.gml | 18 +- .../8cb6d9eb-f4d0-4e70-8a60-33dd017f0b50.png | Bin 0 -> 5805 bytes .../0f31cf23-d758-4aec-a384-f40c841e8042.png | Bin 0 -> 5807 bytes .../spr_cyclone_launcher.yy | 90 + 10 files changed, 1862 insertions(+), 1723 deletions(-) create mode 100644 sprites/spr_cyclone_launcher/8cb6d9eb-f4d0-4e70-8a60-33dd017f0b50.png create mode 100644 sprites/spr_cyclone_launcher/layers/8cb6d9eb-f4d0-4e70-8a60-33dd017f0b50/0f31cf23-d758-4aec-a384-f40c841e8042.png create mode 100644 sprites/spr_cyclone_launcher/spr_cyclone_launcher.yy diff --git a/ChapterMaster.yyp b/ChapterMaster.yyp index 8b66f1d6e4..2fd8a10956 100644 --- a/ChapterMaster.yyp +++ b/ChapterMaster.yyp @@ -1070,6 +1070,7 @@ {"id":{"name":"spr_crusader","path":"sprites/spr_crusader/spr_crusader.yy",},}, {"id":{"name":"spr_crux_on_chain","path":"sprites/spr_crux_on_chain/spr_crux_on_chain.yy",},}, {"id":{"name":"spr_cthonian_tabbard","path":"sprites/spr_cthonian_tabbard/spr_cthonian_tabbard.yy",},}, + {"id":{"name":"spr_cyclone_launcher","path":"sprites/spr_cyclone_launcher/spr_cyclone_launcher.yy",},}, {"id":{"name":"spr_cursor","path":"sprites/spr_cursor/spr_cursor.yy",},}, {"id":{"name":"spr_da_backpack","path":"sprites/spr_da_backpack/spr_da_backpack.yy",},}, {"id":{"name":"spr_da_chaplain","path":"sprites/spr_da_chaplain/spr_da_chaplain.yy",},}, diff --git a/objects/obj_popup/Draw_0.gml b/objects/obj_popup/Draw_0.gml index 5225f9aa40..d39c60fcc5 100644 --- a/objects/obj_popup/Draw_0.gml +++ b/objects/obj_popup/Draw_0.gml @@ -1269,6 +1269,8 @@ try { var weapon_one_data = gear_weapon_data("weapon", n_wep1); var weapon_two_data = gear_weapon_data("weapon", n_wep2); var armour_data = gear_weapon_data("armour", n_armour); + var gear_data = gear_weapon_data("gear", n_gear); + var mobility_data = gear_weapon_data("mobility", n_mobi); if ((target_comp == 1) && is_struct(weapon_one_data)) { // Check numbers @@ -1443,7 +1445,7 @@ try { warning = "Dreadnoughts may not use infantry equipment."; } } - if ((target_comp == 5) && (n_mobi != "Assortment") && (n_mobi != ITEM_NAME_NONE)) { + if (target_comp == 5 && n_mobi != "Assortment" && n_mobi != ITEM_NAME_NONE && n_mobi != ITEM_NAME_ANY) { // Check numbers req_mobi_num = units; have_mobi_num = 0; @@ -1457,23 +1459,28 @@ try { } have_mobi_num += scr_item_count(n_mobi); - if (have_mobi_num >= req_mobi_num || n_mobi == ITEM_NAME_NONE) { + + if (have_mobi_num >= req_mobi_num) { n_good5 = 1; - } - if (have_mobi_num < req_mobi_num && (n_mobi != ITEM_NAME_ANY && n_mobi != ITEM_NAME_NONE)) { + } else { n_good5 = 0; warning = "Not enough " + string(n_mobi) + "; " + string(units - req_mobi_num) + " more are required."; } - var terminator_mobi = ["", "Servo-arm", "Servo-harness", "Conversion Beamer Pack"]; - if ((!array_contains(terminator_mobi, n_mobi)) && ((n_armour == "Terminator Armour") || (n_armour == "Tartaros"))) { - n_good5 = 0; - warning = "Cannot use this gear with Terminator Armour."; - } - - if ((n_mobi != ITEM_NAME_NONE) && (n_mobi != "") && (n_armour == "Dreadnought")) { - n_good5 = 0; - warning = string(obj_ini.role[100][6]) + "s may not use mobility gear."; + if (is_struct(armour_data) && is_struct(mobility_data)) { + if (armour_data.has_tag("terminator") && !mobility_data.has_tag("terminator")){ + n_good5 = 0; + warning = "Cannot use this with Terminator Armour."; + } else if (!armour_data.has_tag("terminator") && mobility_data.has_tag("terminator")){ + n_good5 = 0; + warning = "Cannot use this without Terminator Armour."; + } else if (armour_data.has_tag("dreadnought") && !mobility_data.has_tag("dreadnought")) { + n_good5 = 0; + warning = "Cannot use this with Dreadnought Armour."; + } else if (!armour_data.has_tag("dreadnought") && mobility_data.has_tag("dreadnought")) { + n_good5 = 0; + warning = "Cannot use this without Dreadnought Armour."; + } } } } diff --git a/objects/obj_shop/Create_0.gml b/objects/obj_shop/Create_0.gml index 52a5152b97..c9689cc4b5 100644 --- a/objects/obj_shop/Create_0.gml +++ b/objects/obj_shop/Create_0.gml @@ -1,1687 +1,1689 @@ -hover = 0; -shop = ""; -click = 0; -click2 = 0; -discount = 0; -construction_started = 0; -eta = 0; -target_comp = obj_controller.new_vehicles; - -slate_panel = new DataSlate(); -scroll_point=0; -tooltip_show = 0; -tooltip = ""; -tooltip_stat1 = 0; -tooltip_stat2 = 0; -tooltip_stat3 = 0; -tooltip_stat4 = 0; -tooltip_other = ""; -last_item = ""; -forge_master = scr_role_count("Forge Master", "", "units"); -if (array_length(forge_master)>0){ - forge_master=forge_master[0]; -} else { - forge_master="none"; -} -mechanicus_modifier = (((obj_controller.disposition[eFACTION.Mechanicus]-50)/200)*-1)+1 -var research = obj_controller.production_research; -shop = "equipment"; -/*if (obj_controller.menu=55) then shop="equipment"; -if (obj_controller.menu=56) then shop="vehicles"; -if (obj_controller.menu=57) then shop="warships"; -if (obj_controller.menu=58) then shop="equipment2";*/ -if (instance_number(obj_shop) > 1) { - var war; - war = instance_nearest(0, 0, obj_shop); - shop = war.shop; - with(war) { - instance_destroy(); - } - x = 0; - y = 0; -} - -var research = obj_controller.production_research; -var research_pathways = obj_controller.production_research_pathways; -var i, rene; -i = -1; -rene = 0; -repeat(80) { - i += 1; - item[i] = ""; - x_mod[i] = 0; - item_stocked[i] = 0; - mc_stocked[i] = 0; - item_cost[i] = 0; - nobuy[i] = 0; - forge_cost[i]=0; - tooltip_overide[i]=0; -} -if (obj_controller.faction_status[eFACTION.Imperium] = "War") { - rene = 1; - with(obj_temp6) { - instance_destroy(); - } - with(obj_star) { - var u; - u = 0; - repeat(4) { - u += 1; - if (p_type[u] = "Forge") and(p_owner[u] = 1) then instance_create(x, y, obj_temp6); - } - } - if (instance_exists(obj_temp6)) then rene = 0; - with(obj_temp6) { - instance_destroy(); - } -} - -tab_buttons = { - "equipment":new MainMenuButton(spr_ui_but_3, spr_ui_hov_3), - "armour":new MainMenuButton(spr_ui_but_3, spr_ui_hov_3), - "vehicles":new MainMenuButton(spr_ui_but_3, spr_ui_hov_3), - "ships":new MainMenuButton(spr_ui_but_3, spr_ui_hov_3), -} -var require_tool_tip = "requires: #" -if (shop = "equipment") { - i = 0; - i += 1; - item[i] = "Combat Knife"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 1; - forge_cost[i] = 10; - i += 1; - item[i] = "Chainsword"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 4; - forge_cost[i] = 40; - i += 1; - x_mod[i] = 9; - item[i] = "Eviscerator"; - if (research.chain[0]>0){ - forge_cost[i] = 150; - } else { - tooltip_overide[i] = $"{require_tool_tip} {research_pathways.chain[0][0]}" - } - item_stocked[i] = scr_item_count(item[i]); - nobuy[i] = 1; - i += 1; - item[i] = "Chainaxe"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 10; - forge_cost[i] = 40; - i += 1; - item[i] = "Power Axe"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 40; - if (research.power_fields[0]>1){ - forge_cost[i] = 100; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Power Sword"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 25; - if (research.power_fields[0]>1){ - forge_cost[i] = 100; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Power Spear"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 40; - if (research.power_fields[0]>1){ - forge_cost[i] = 100; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Crozius Arcanum"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 75; - if (research.power_fields[0]>1){ - forge_cost[i] = 150; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Power Fist"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 60; - if (research.power_fields[0]>1){ - forge_cost[i] = 150; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Boltstorm Gauntlet"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 90; - if (research.power_fields[0]>1&& research.bolt[0]>=2){ - forge_cost[i] = 300; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - /*i += 1; - item[i] = "Executioner Power Axe"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 100; - if (research.power_fields[0]>1){ - forge_cost[i] = 300; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - forge_cost[i] = 0; - }*/ - i += 1; - item[i] = "Power Mace"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 50; - if (research.power_fields[0]>1){ - forge_cost[i] = 140; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - if (global.chapter_name == "Dark Angels"){ - i += 1; - item[i] = "Mace of Absolution"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 70; - if (research.power_fields[0]>1){ - forge_cost[i] = 160; - } - } - i += 1; - item[i] = "Lightning Claw"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 90; - if (research.power_fields[0]>1){ - forge_cost[i] = 150; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Chainfist"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 75; - if (research.power_fields[0]>1 && research.chain[0]>0){ - forge_cost[i] = 150; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Force Staff"; - item_stocked[i] = scr_item_count(item[i]); - if (research.psi[0]>0){ - forge_cost[i] = 500; - } - item_cost[i] = 70; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Force Sword"; - item_stocked[i] = scr_item_count(item[i]); - if (research.psi[0]>0){ - forge_cost[i] = 400; - } - item_cost[i] = 55; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Force Axe"; - item_stocked[i] = scr_item_count(item[i]); - if (research.psi[0]>0){ - forge_cost[i] = 450; - } - item_cost[i] = 60; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Thunder Hammer"; - if (research.power_fields[0]>1){ - forge_cost[i] = 500; - } - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 90; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Heavy Thunder Hammer"; - if (research.power_fields[0]>1){ - forge_cost[i] = 750; - } - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 135; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Lascutter"; - forge_cost[i] = 500; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 15; - i += 1; - x_mod[i] = 9; - item[i] = "Boarding Shield"; - forge_cost[i] = 100; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 20; - i += 1; - x_mod[i] = 9; - item[i] = "Storm Shield"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 50; - if (research.power_fields[0]>1){ - forge_cost[i] = 500; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Company Standard"; - forge_cost[i] = 2000; - nobuy[i] = 1; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - - - i += 1; - item[i] = "Bolt Pistol"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 5; - forge_cost[i] = 50; - i += 1; - item[i] = "Bolter"; - forge_cost[i] = 100; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 10; - i += 1; - item[i] = "Stalker Pattern Bolter"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 80; - forge_cost[i] = 230; - i += 1; - item[i] = "Shotgun"; - forge_cost[i] = 100; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 10; - i += 1; - x_mod[i] = 9; - item[i] = "Combiflamer"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 200; - if (research.bolt[0]<1 || research.flame[0]<1) then forge_cost[i] = 0; - item_cost[i] = 35; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Combiplasma"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 450; - if (research.bolt[0]<1 || research.plasma[0]<1) then forge_cost[i] = 0; - item_cost[i] = 110; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Combimelta"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 350; - if (research.bolt[0]<1 || research.melta[0]<1) then forge_cost[i] = 0; - item_cost[i] = 40; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Combigrav"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 450; - if (research.bolt[0]<1 || research.grav[0]<1) then forge_cost[i] = 0; - item_cost[i] = 110; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Heavy Bolter"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 50; - if (research.bolt[0]>=2) then forge_cost[i] = 300; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Storm Bolter"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 50; - if (research.bolt[0]>=2) then forge_cost[i] = 300; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Infernus Pistol"; - forge_cost[i] = 100; - if (research.flame[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 12; - i += 1; - item[i] = "Wrist-Mounted Storm Bolter"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 80; - forge_cost[i] = 300; - if (research.bolt[0]<2) then forge_cost[i] = 0; - nobuy[i] = 1; - i += 1; - item[i] = "Hand Flamer"; - forge_cost[i] = 75; - if (research.flame[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 12; - i += 1; - item[i] = "Flamer"; - forge_cost[i] = 150; - if (research.flame[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 25; - i += 1; - item[i] = "Heavy Flamer"; - forge_cost[i] = 350; - if (research.flame[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 40; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - - i += 1; - item[i] = "Incinerator"; - item_stocked[i] = scr_item_count(item[i]); - nobuy[i] = 1; - forge_cost[i] = 350; - if (research.flame[0]<1) then forge_cost[i] = 0; - // i += 1; - // item[i] = "Integrated Bolter"; - // item_stocked[i] = scr_item_count(item[i]); - // item_cost[i] = 120; - i += 1; - item[i] = "Meltagun"; - forge_cost[i] = 250; - if (research.melta[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 30; - i += 1; - item[i] = "Multi-Melta"; - forge_cost[i] = 350; - if (research.melta[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 60; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Plasma Pistol"; - forge_cost[i] = 250; - if (research.plasma[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 60; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Plasma Gun"; - forge_cost[i] = 350; - if (research.plasma[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 100; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Plasma Cannon"; - forge_cost[i] = 600; - if (research.plasma[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 300; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Grav-Pistol"; - forge_cost[i] = 250; - if (research.grav[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 60; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Grav-Gun"; - forge_cost[i] = 350; - if (research.grav[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 100; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Grav-Cannon"; - forge_cost[i] = 600; - if (research.grav[0]<1) then forge_cost[i] = 0; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 300; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Archeotech Laspistol"; - item_stocked[i] = scr_item_count(item[i]); - nobuy[i] = 1; - i += 1; - x_mod[i] = 9; - item[i] = "Hellrifle"; - item_stocked[i] = scr_item_count(item[i]); - nobuy[i] = 1; - i += 1; - item[i] = "Sniper Rifle"; - forge_cost[i] = 200; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 10; - i += 1; - item[i] = "Needle Sniper Rifle"; - forge_cost[i] = 500; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 200; - i += 1; - item[i] = "Missile Launcher"; - forge_cost[i] = 300; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 70; - i += 1; - item[i] = "Cyclone Missile Launcher"; - forge_cost[i] = 350; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 150; - i += 1; - item[i] = "Lascannon"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 500; - if (research.las[0]<1) then forge_cost[i] = 0; - item_cost[i] = 70; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - var mc = 0; - repeat(i) { - mc++; - if (item[mc] != ""){ - mc_stocked[mc] = scr_item_count(item[mc], "master_crafted"); - } - } -} -if (shop = "equipment2") { - i = 0; - i += 1; - item[i] = "MK3 Iron Armour"; - item_stocked[i] = scr_item_count("MK3 Iron Armour"); - nobuy[i] = 1; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - if (obj_controller.in_forge){ - if (research.armour[1].armour[0]>2){ - forge_cost[i] = 1250; - } else { - tooltip_overide[i] = "requires : #"; - for (var r = research.armour[1].armour[0]; r < 3;r++){ - tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}#"; - } - } - } - - i += 1; - var mk_4_able = false; - var mk_4_tool_tip = "" - item[i] = "MK4 Maximus"; - item_stocked[i] = scr_item_count("MK4 Maximus"); - if (obj_controller.in_forge){ - if (research.armour[1].stealth[0] >0 && research.armour[1].armour[0] >1){ - forge_cost[i] = 1250; - mk_4_able=true; - } else { - tooltip_overide[i] = "requires : #"; - if (research.armour[1].stealth[0] < 1){ - tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}#"; - for (var r = research.armour[1].armour[0]; r < 2;r++){ - tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}#"; - } - } - mk_4_tool_tip = tooltip_overide[i]; - } - - } - nobuy[i] = 1; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "MK5 Heresy"; - item_stocked[i] = scr_item_count("MK5 Heresy"); - item_cost[i] = 45; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "MK6 Corvus"; - item_stocked[i] = scr_item_count("MK6 Corvus"); - item_cost[i] = 35; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - if (obj_controller.in_forge){ - if (research.armour[1].stealth[0] > 0){ - forge_cost[i] = 1400; - } else { - tooltip_overide[i] = "requires : #"; - if (research.armour[1].stealth[0] < 1){ - tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}#"; - } - } - } - - i += 1; - item[i] = "MK7 Aquila"; - item_stocked[i] = scr_item_count("MK7 Aquila"); - item_cost[i] = 20; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - if (obj_controller.in_forge){ - if (research.armour[0] > 0){ - forge_cost[i] = 1000; - } else { - tooltip_overide[i] = "requires : #"; - if (research.armour[0] < 1){ - tooltip_overide[i] += $" {research_pathways.armour[0][0]}#"; - } - } - } - - i += 1; - item[i] = "MK8 Errant"; - item_stocked[i] = scr_item_count("MK8 Errant"); - nobuy[i] = 1; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - if (obj_controller.in_forge){ - if (research.armour[0] > 1){ - forge_cost[i] = 1000; - } else { - tooltip_overide[i] = "requires : #"; - if (research.armour[0] < 2 && mk_4_able){ - tooltip_overide[i] += $" {research_pathways.armour[0][1]}#"; - } else { - tooltip_overide[i] = mk_4_tool_tip; - } - } - } - i += 1; - item[i] = "Scout Armour"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 200; - item_cost[i] = 5; - i += 1; - item[i] = "Artificer Armour"; - item_stocked[i] = scr_item_count("Artificer Armour"); - nobuy[i] = 1; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } -if (research.armour[1].stealth[0] > 0 && research.armour[1].armour[0] > 1) { - forge_cost[i] = 1500; -} else { - tooltip_overide[i] = "requires : \n"; - if (research.armour[1].stealth[0] < 1) { - tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}\n"; - for (var r = research.armour[1].armour[0]; r < 2; r++) { - tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}\n"; - } - } - mk_4_tool_tip = tooltip_overide[i]; - -} - i += 1; - item[i] = "Terminator Armour"; - item_stocked[i] = scr_item_count("Terminator Armour"); - nobuy[i] = 1; -if (research.armour[1].stealth[0] > 0 && research.armour[1].armour[0] > 1 && obj_controller.stc_wargear >= 6) { - forge_cost[i] = 2000; -} else { - tooltip_overide[i] = "requires : \n"; - if (research.armour[1].stealth[0] < 1) { - tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}\n"; - for (var r = research.armour[1].armour[0]; r < 2; r++) { - tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}\n"; - } - } - mk_4_tool_tip = tooltip_overide[i]; - tooltip_overide[i] += $"STC wargear component 6"; -} - // if (rene=1){nobuy[i]=1;item_cost[i]=0;} -i += 1; -item[i] = "Tartaros"; -item_stocked[i] = scr_item_count("Tartaros"); -nobuy[i] = 1; -if (research.armour[1].stealth[0] > 0 && research.armour[1].armour[0] > 1 && obj_controller.stc_wargear >= 6) { - forge_cost[i] = 2500; -} else { - tooltip_overide[i] = "requires : \n"; - if (research.armour[1].stealth[0] < 1) { - tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}\n"; - for (var r = research.armour[1].armour[0]; r < 2; r++) { - tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}\n"; - } - } - mk_4_tool_tip = tooltip_overide[i]; - tooltip_overide[i] += $"STC wargear component 6"; -} - - - i += 1; - x_mod[i] = 9; - item[i] = "Jump Pack"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 250; - item_cost[i] = 20; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - - i += 1; - x_mod[i] = 9; - item[i] = "Heavy Weapons Pack"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 250; - item_cost[i] = 25; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - - i += 1; - x_mod[i] = 9; - item[i] = "Servo-harness"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 1500; - item_cost[i] = 150; - if (obj_controller.stc_wargear >= 6) { - forge_cost[i] = 400; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - - i += 1; - x_mod[i] = 9; - item[i] = "Conversion Beamer Pack"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 180; - if (research.grav[0]>=1 && research.flame[0]>=1 && research.las[0]>=1 && research.plasma[0]>=1 ) then forge_cost[i] = 450; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - - i += 1; - x_mod[i] = 9; - item[i] = "Servo-arm"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 750; - item_cost[i] = 30; - forge_cost[i] = 150; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - - i += 1; - x_mod[i] = 9; - item[i] = "Bionics"; - forge_cost[i] = 20; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 5; - i += 1; - x_mod[i] = 9; - item[i] = "Narthecium"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 500; - item_cost[i] = 10; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Psychic Hood"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 1000; - item_cost[i] = 100; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Combat Shield"; - forge_cost[i] = 75; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 15; - i += 1; - x_mod[i] = 9; - item[i] = "Rosarius"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 1500; - item_cost[i] = 100; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Iron Halo"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 2000; - item_cost[i] = 300; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Plasma Bomb"; - forge_cost[i] = 1500; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 175; - - i += 1; - x_mod[i] = 9; - item[i] = "Exterminatus"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 2500; - - i += 1; - x_mod[i] = 9; - item[i] = "Gene Pod Incubator"; - item_stocked[i] = scr_item_count(item[i]); - nobuy[i] = 1; - item_cost[i] = 0; - forge_cost[i] = 80; - - mc=0; - repeat(i) { - mc += 1; - if (item[mc] != ""){ - mc_stocked[i] = scr_item_count(item[mc], "master_crafted"); - } - } - -} - -var player_hanger = min(array_length(obj_controller.player_forge_data.vehicle_hanger),1); -if (shop = "vehicles") { - i = 0; - i += 1; - item[i] = "Rhino"; - item_stocked[i] = scr_vehicle_count(item[i], ""); - forge_cost[i] = 1500*player_hanger; - item_cost[i] = 120; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Predator"; - item_stocked[i] = scr_vehicle_count(item[i], ""); - forge_cost[i] = 3000*player_hanger; - item_cost[i] = 240; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Autocannon Turret"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 30; - if (research.bolt[0]> 2) then forge_cost[i] = 150*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Twin Linked Lascannon Turret"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 60; - if (research.las[0]>1) then forge_cost[i] = 400*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Heavy Bolter Sponsons"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 38; - forge_cost[i] = 100*player_hanger; - if (research.bolt[0]> 2) then forge_cost[i] = 100*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Heavy Flamer Sponsons"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 50; - forge_cost[i] = 150*player_hanger; - if (research.flame[0]<1) then forge_cost[i] = 0; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Lascannon Sponsons"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 60; - if (research.las[0]>1) then forge_cost[i] = 300; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Land Raider"; - item_stocked[i] = scr_vehicle_count(item[i], ""); - nobuy[i] = 1; - if (obj_controller.stc_vehicles >= 6) { - nobuy[i] = 0; - item_cost[i] = 500; - forge_cost[i] = 4500*player_hanger; - } - if (rene=1) { - nobuy[i]=1; - item_cost[i]=0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Twin Linked Heavy Bolter Mount"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 28; - if (research.bolt[0]> 2) then forge_cost[i] = 250*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Quad Linked Heavy Bolter Sponsons"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 60; - if (research.bolt[0]> 3) then forge_cost[i] = 350*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Twin Linked Assault Cannon Mount"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 60; - if (research.bolt[0]> 3) then forge_cost[i] = 400*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Flamestorm Cannon Sponsons"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 100; - forge_cost[i] = 300*player_hanger; - if (research.flame[0]<1) then forge_cost[i] = 0; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Hurricane Bolter Sponsons"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 70; - if (research.bolt[0]> 3) then forge_cost[i] = 300*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Twin Linked Lascannon Sponsons"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 120; - if (research.las[0]>1) then forge_cost[i] = 250*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Whirlwind"; - item_stocked[i] = scr_vehicle_count(item[i], ""); - item_cost[i] = 180; - forge_cost[i] = 2000*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "HK Missile"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 10; - forge_cost[i] = 250*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Land Speeder"; - item_stocked[i] = scr_vehicle_count(item[i], ""); - nobuy[i] = 1; - if (obj_controller.stc_vehicles >= 6) { - nobuy[i] = 0; - item_cost[i] = 120; - forge_cost[i] = 700*player_hanger; - } - i += 1; - x_mod[i] = 9; - item[i] = "Twin Linked Bolters"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 8; - if (research.bolt[0]>= 2) then forge_cost[i] = 150*player_hanger; - i += 1; - item[i] = "Bike"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 35; - forge_cost[i] = 150*player_hanger; - i += 1; - item[i] = "Dreadnought"; - item_stocked[i] = scr_item_count(item[i]); - nobuy[i] = 1; // if (rene=1){nobuy[i]=1;item_cost[i]=0;} -if (research.armour[1].stealth[0] > 0 && research.armour[1].armour[0] > 1 && obj_controller.stc_wargear >= 6) { - forge_cost[i] = 3000; -} else { - tooltip_overide[i] = "requires : \n"; - if (research.armour[1].stealth[0] < 1) { - tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}\n"; - for (var r = research.armour[1].armour[0]; r < 2; r++) { - tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}\n"; - } - } - mk_4_tool_tip = tooltip_overide[i]; - tooltip_overide[i] += $"STC wargear component 6"; -} - i += 1; - x_mod[i] = 9; - item[i] = "Close Combat Weapon"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 45; - forge_cost[i] = 200*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Twin Linked Heavy Bolter"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 110; - if (research.bolt[0]> 2) then forge_cost[i] = 150*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Twin Linked Lascannon"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 110; - if (research.las[0]>1) then forge_cost[i] = 150*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Autocannon"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 80; - if (research.bolt[0]> 2) then forge_cost[i] = 150; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Inferno Cannon"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 115; - forge_cost[i] = 250*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Dreadnought Lightning Claw"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 185; - forge_cost[i] = 250*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Assault Cannon"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 75; - if (research.bolt[0]> 2) then forge_cost[i] = 350; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Dreadnought Power Claw"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 150; - forge_cost[i] = 200*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Whirlwind Missiles"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 90; - forge_cost[i] = 250*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Heavy Conversion Beam Projector"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 350*player_hanger; - nobuy[i] = 1; - if (rene = 1) { - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Plasma Destroyer Turret"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 400*player_hanger; - nobuy[i] = 1; - if (rene = 1) { - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Flamestorm Cannon Turret"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 400*player_hanger; - nobuy[i] = 1; - if (rene = 1) { - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Magna-Melta Turret"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 400*player_hanger; - nobuy[i] = 1; - if (rene = 1) { - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Neutron Blaster Turret"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 450*player_hanger; - nobuy[i] = 1; - if (rene = 1) { - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Volkite Saker Turret"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 400*player_hanger; - nobuy[i] = 1; - if (rene = 1) { - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Volkite Culverin Sponsons"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 350*player_hanger; - nobuy[i] = 1; - if (rene = 1) { - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Twin Linked Volkite Culverin Sponsons"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 400*player_hanger; - nobuy[i] = 1; - if (rene = 1) { - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Twin Linked Multi-Melta Sponsons"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 200; - forge_cost[i] = 200*player_hanger; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Twin Linked Heavy Flamer Sponsons"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 200*player_hanger; - item_cost[i] = 150; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Reaper Autocannon Mount"; - item_stocked[i] = scr_item_count(item[i]); - forge_cost[i] = 250*player_hanger; - nobuy[i] = 1; - if (rene = 1) { - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Void Shield"; - item_stocked[i] = scr_item_count(item[i]); - nobuy[i] = 1; - if (obj_controller.stc_vehicles >= 6) { - nobuy[i] = 0; - item_cost[i] = 500; - forge_cost[i] = 2000*player_hanger; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Lucifer Pattern Engine"; - item_stocked[i] = scr_item_count(item[i]); - nobuy[i] = 1; - if (obj_controller.stc_vehicles >= 6) { - nobuy[i] = 0; - item_cost[i] = 90; - forge_cost[i] = 1250*player_hanger; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Artificer Hull"; - item_stocked[i] = scr_item_count(item[i]); - nobuy[i] = 1; - if (obj_controller.stc_vehicles >= 3) { - nobuy[i] = 0; - item_cost[i] = 200; - forge_cost[i] = 1000*player_hanger; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Armoured Ceramite"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 120; - if (obj_controller.stc_vehicles >= 3) { - item_cost[i] = 200; - forge_cost[i] = 500*player_hanger; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Heavy Armour"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 50; - if (obj_controller.stc_vehicles >= 3) { - item_cost[i] = 200; - forge_cost[i] = 250*player_hanger; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Smoke Launchers"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 10; - if (obj_controller.stc_vehicles >= 3) { - item_cost[i] = 200; - forge_cost[i] = 250*player_hanger; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Dozer Blades"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 10; - if (obj_controller.stc_vehicles >= 3) { - item_cost[i] = 200; - forge_cost[i] = 200*player_hanger; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Searchlight"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 15; - if (obj_controller.stc_vehicles >= 3) { - item_cost[i] = 200; - forge_cost[i] = 250*player_hanger; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Frag Assault Launchers"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 30; - if (obj_controller.stc_vehicles >= 3) { - item_cost[i] = 200; - forge_cost[i] = 250*player_hanger; - } - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } -} -if (shop = "warships") { - i = 0; - i += 1; - item[i] = "Battle Barge"; - item_stocked[i] = scr_ship_count(item[i]); - item_cost[i] = 20000; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Strike Cruiser"; - item_stocked[i] = scr_ship_count(item[i]); - item_cost[i] = 8000; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Gladius"; - item_stocked[i] = scr_ship_count(item[i]); - item_cost[i] = 2250; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - item[i] = "Hunter"; - item_stocked[i] = scr_ship_count(item[i]); - item_cost[i] = 3000; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } - i += 1; - x_mod[i] = 9; - item[i] = "Cyclonic Torpedo"; - item_stocked[i] = scr_item_count(item[i]); - nobuy[i] = 1; - if (rene = 1) { - nobuy[i] = 1; - item_cost[i] = 0; - } -} - - - -with(obj_p_fleet) { - if (capital_number > 0) and(action = "") { - var you; - you = instance_nearest(x, y, obj_star); - if (you.trader > 0) then obj_shop.discount = 1; - } -} -with(obj_star) { - if (array_contains(p_owner, 1)) and(trader > 0) then obj_shop.discount = 1; -} - - -if (shop = "equipment") or(shop = "equipment2") { - var disc; - disc = 1; - if (obj_controller.stc_wargear >= 1) then disc = 0.92; - if (obj_controller.stc_wargear >= 3) then disc = 0.86; - if (obj_controller.stc_wargear >= 5) then disc = 0.75; - var mc = 0; - repeat(i) { - mc++; - if (forge_cost[mc] > 1) then forge_cost[mc] = round(forge_cost[mc] * disc); - } -} -if (shop = "vehicles") { - var disc; - disc = 1; - if (obj_controller.stc_vehicles >= 1) then disc = 0.92; - if (obj_controller.stc_vehicles >= 3) then disc = 0.86; - if (obj_controller.stc_vehicles >= 5) then disc = 0.75; - var mc = 0; - repeat(31) { - mc += 1; - var ahuh; - ahuh = 1; - if (mc >= 7) and(mc <= 12) then ahuh = 0; - if (ahuh = 1) { - if (forge_cost[mc] > 1) then forge_cost[mc] = round(forge_cost[mc] * disc); - } - } -} -if (shop == "production"){ - i = 0; - var research_item; - if (research.flame[0] == 0){ - i++; - item[i] = ["research", research_pathways.flame[0][research.flame[0]], ["flame"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research grants the ability to fabricate and harness Promethium Tanks, allowing for the construction of flame-based weaponry. This technology taps into the potent destructive potential of Promethium, turning it into a terrifying tool of war, capable of reducing enemies to ash.\nUnlocks: Flamers, Heavy Flamers, Incinerator.\nRequired for: Heavy Flamer Sponsons, Flamestorm Cannon Sponsons, Inferno Cannon, Servo-harness, Combi-flamer."; - - } - if (research.psi[0] == 0){ - i++; - item[i] = ["research", research_pathways.psi[0][research.psi[0]], ["psi"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research unlocks the arcane art of crafting Force Weapons, allowing our trained psykers to channel the raw, untamed power of the Warp into tangible forms. It transforms ordinary melee implements into conduits of psychic fury, each blow imbued with devastating energy This grants our psykers the ability to strike down the mightiest foes, turning the tide of battle with the very power of the immaterium.\n\nUnlocks: Force Staff, Force Sword, Force Axe."; - } - if (research.las[0] == 0){ - i++; - item[i] = ["research", research_pathways.las[0][research.las[0]], ["las"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research unveils the secrets of advanced Las Weaponry, a testament to the Imperium's mastery of directed energy. It allows the construction of more potent and reliable las weapons, each pulse of light capable of searing through armor and flesh alike. This empowers our forces with vastly enhanced range, penetration, and damage, ensuring the Emperor's light shines brighter against the encroaching darkness.\n\nUnlocks: Lascannon.\nRequired for: Twin Linked Lascannon Turret, Twin Linked Lascannon Sponsons, Twin Linked Lascannon."; - } - if (research.chain[0] == 0){ - i++; - item[i] = ["research", research_pathways.chain[0][research.chain[0]], ["chain"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research unleashes the technology for Advanced Chain Weaponry, allowing us to produce tools of brutal, unrelenting destruction. It allows for the creation of weapons that tear and rend, leaving nothing but bloody ruin in their wake. Our warriors wield these instruments of carnage to devastating effect, carving through the ranks of our enemies with unstoppable fury. \n\nUnlocks: Eviscerator, Chainfist."; - } - if (research.plasma[0] == 0){ - i++; - item[i] = ["research", research_pathways.plasma[0][research.plasma[0]], ["plasma"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research delves into the dangerous art of Plasma Weaponry, granting us the means to unleash the raw power of superheated plasma upon the enemy. This volatile technology produces weapons that can inflict devastating wounds, but its very nature demands a careful hand, lest its power consume the wielder. These weapons provide a high damage potential, capable of obliterating even heavily armored foes.\n\nUnlocks: Plasma Pistol, Plasma Gun, Plasma Cannon.\nRequired for: Combiplasma."; - } - if (research.bolt[0] == 1){ - i++; - item[i] = ["research",research_pathways.bolt[0][research.bolt[0]], ["bolt"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research reveals the secrets of Advanced Bolt Weapons, an expansion of the Emperor's favored projectile weapons into more specialized and lethal forms. It is the pinnacle of projectile technology, combining explosive force with devastating impact. This provides our forces with a significant increase in firepower, ensuring that each shot finds its mark and shatters the foe. \n\nUnlocks: Stalker Pattern Bolter, Heavy Bolter, Heavy bolter Sponsons.\nRequired for: Combiflamer, Combiplasma, Combimelta, Combigrav, Assault Cannon, Autocannon Turret, Hurricane Bolter, Quad Linked Heavy Bolter Sponsons, Twin Linked Bolters, Twin Linked Heavy Bolter mount, Twin Linked assault cannon."; - } - if (research.bolt[0] == 2){ - i++; - item[i] = ["research","Advanced Weapon Integration and Targeting", ["bolt"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research unlocks the divine secrets of Advanced Weapon Integration and Targeting, allowing for the creation of systems that connect the chapter’s weaponry with the Astartes in perfect harmony, enhancing their coordination and tactical prowess upon the Emperor's battlefields. It also allows for the construction of the devastating Assault Cannon and the mighty Autocannon for Predator tanks, making them instruments of divine vengeance, ensuring that the enemies of Mankind tremble before their might. This knowledge shall improve the efficiency of standard bolter weaponry, while also unleashing newer and more devastating tools of annihilation. \nUnlocks: Assault Cannon, Autocannon Turret, Twin Linked Heavy Bolter mount, Twin Linked bolter.\nRequired for: Hurricane Bolter, Quad Linked Heavy Bolter Sponsons, Twin linked assault cannon."; - } - if (research.bolt[0] == 3){ - i++; - item[i] = ["research","Integrated Weapon Stabilization and Rate of Fire Enhancements", ["bolt"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research unlocks the sacred technology of Integrated Weapon Stabilization and Rate of Fire Enhancements, allowing our warriors to unleash bolter fire with unprecedented might, creating a maelstrom of righteous destruction upon the heretic and the alien. This divine advancement focuses on the inner workings of the weaponry, turning them into the Emperor's own instruments of divine wrath, rivaled only by the most sacred creations of the Machine God. Their might shall tear down the very fortresses of our foes, and their righteous fury shall cleanse the battlefield from all that would oppose the Imperium. \nUnlocks: Hurricane Bolter, Quad Linked Heavy Bolter Sponsons, Twin linked assault cannon."; - } - if (research.power_fields[0] < 2){ - i++; - item[i] = ["research",research_pathways.power_fields[0][research.power_fields[0]], ["power_fields"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research unlocks the ancient science of Advanced Power Weapons, enhancing melee armaments with potent energy fields that disrupt the very bonds of matter. It is a testament to the power of technology, transforming ordinary weapons into instruments of righteous fury. This allows our warriors to devastate the most armored foes, cleaving through enemy ranks with the raw energy of the machine god.\n\nUnlocks: Power Axe, Power Sword, Power Spear, Crozius Arcanum, Power Fist, Power Mace, Lightning Claw, Chainfist, Thunder Hammer, Heavy Thunder Hammer, Storm Shield."; - } - if (research.melta[0] == 0){ - i++; - item[i] = ["research",research_pathways.melta[0][research.melta[0]], ["melta"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research unlocks the terrifying potential of Basic Melta Weaponry, granting us the ability to unleash the searing heat of miniature suns upon the enemy. These weapons melt through armor and fortifications with unparalleled ease. This enhances our anti-tank capabilities, allowing our forces to shatter enemy vehicles and fortifications, leaving only molten slag in their wake.\n\nUnlocks: Meltagun, Multi-Melta.\nRequired for: Combimelta"; - } - if (research.grav[0] == 0){ - i++; - item[i] = ["research", research_pathways.grav[0][research.grav[0]], ["grav"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research unravels the enigmatic science of Grav Weapons, allowing us to manipulate the very fabric of gravity for destructive purposes. These weapons crush and pulverize their targets with the force of collapsing worlds. They become the bane of armored units, allowing our forces to annihilate heavy infantry and vehicles with the very force of celestial bodies. \n\nUnlocks: Grav-Pistol, Grav-Gun, Grav-Cannon.\nRequired for: Combigrav"; - } - if (research.armour[0]>0){ - if (research.armour[1].stealth[0] == 0){ - i++; - item[i] = ["research","Advanced Servo Motors", ["armour", "stealth"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research unlocks the secrets of Advanced Servo Motors, allowing the fabrication of enhanced movement systems, greatly boosting the speed and agility of our warriors. The speed and maneuverability increase will provide our troops with a significant advantage. It also unlocks the construction of specialized armors and advanced items.\n\nUnlocks: Mk6 Corvus.\nRequired for: Artificer Armour, Terminator Armour, Tartaros."; - } - if (research.armour[1].armour[0] == 0){ - i++; - item[i] = ["research","Advanced Ceramite Bonding", ["armour", "armour"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research uncovers the lost techniques of Advanced Ceramite Bonding, allowing us to create superior armors. It fortifies our war plate, offering unparalleled protection against enemy fire. This dramatically enhances the survivability of our units as well as unlocking new armor capabilities.\n\nUnlocks: MK3 Iron Armour.\nRequired for: MK8 Errant, Artificer Armour, Terminator Armour, Tartaros."; - } else if (research.armour[1].armour[0] == 2){ - i++; - item[i] = ["research","Ceremite Void Hardening", ["armour", "armour"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research grants the secrets of Ceramite Void Hardening techniques, reinforcing our armors to withstand the harshest conditions of the void. It is essential for warriors who brave the vacuum of space, ensuring they can perform their duties where others would falter. It increases the unit's resilience in harsh environments as well as providing a superior armor plating. \n\nUnlocks: MK3 Iron Armour.\nRequired for: MK8 Errant, Artificer Armour."; - } - if (research.armour[0]==1){ - i++; - item[i] = ["research",research_pathways.armour[0][1], ["armour"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research unlocks the knowledge to fabricate the Mk VIII 'Errant' pattern Power Armour, a refinement of the ubiquitous Aquila armour, often favored by veteran Astartes and officers due to its unparalleled protection. It features improved plating around the torso and neck, enhancing its resilience against both ranged and melee attacks. This technology marks the pinnacle of power armour technology and a significant step in the path to becoming a battle-hardened Astartes.\n\nUnlocks: MK8 Errant.\nRequired for: Artificer Armour."; - } - if (research.armour[1].stealth[0] == 1 && research.armour[1].armour[0] == 1){ - i++; - item[i] = ["research","Enhanced Nerve Interfacing", ["armour", "armour"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research allows the creation of Enhanced Nerve Interfacing systems, binding unit and armor in perfect harmony. It augments the link between warrior and war plate, unlocking new levels of effectiveness. This provides the user with better accuracy, damage output, and mobility, unlocking new levels of tactical potential. \n\nUnlocks: MK4 Maximus."; - } - } else if (research.armour[0]==0){ - i++; - item[i] = ["research",research_pathways.armour[0][0], ["armour"]]; - item_stocked[i] = 0; - forge_cost[i] = 3000; - tooltip_overide[i] = "This research unlocks the knowledge to fabricate Mk VII 'Aquila' pattern Power Armour, the standard armour pattern for the Adeptus Astartes. It is a reliable and ubiquitous armour used by many Chapters that is also easy to construct and maintain, making it a stable base for the might of the Imperium's warriors.\n\nUnlocks: MK7 Aquila.\nRequired for: MK8 Errant, Artificer Armour, Terminator Armour, Tartaros."; - } - -} -legitimate_items = i; -if (shop = "warships") { - var disc; - disc = 1; - if (obj_controller.stc_ships >= 1) then disc = 0.92; - if (obj_controller.stc_ships >= 3) then disc = 0.86; - if (obj_controller.stc_ships >= 5) then disc = 0.75; - i = 0; - repeat(31) { - i += 1; - if (item_cost[i] > 1) then item_cost[i] = round(item_cost[i] * disc); - } -} -if (discount = 1) { - discount = 2; - i = 0; - repeat(31) { - i += 1; - if (item_cost[i] >= 5) then item_cost[i] = round(item_cost[i] * 0.8); - if (item_cost[i] > 1) and(item_cost[i] < 5) then item_cost[i] -= 1; - } -} - -if (rene = 1) { - i = 0; - repeat(31) { - i += 1; - item_cost[i] *= 2; - } -} -forge_master_modifier=0; -if (forge_master!="none"){ - forge_master_modifier = 2500/((forge_master.charisma+10)*forge_master.technology); - if (forge_master.has_trait("flesh_is_weak") && forge_master_modifier>0.75){ - forge_master_modifier-=0.1; - }; -} else { - forge_master_modifier=1.7; -} -var tech_heretic_modifier =1 - i = 0; - repeat(array_length(item_cost)-2){ - i += 1; - if (shop != "warships"){ - item_cost[i] *= 2; - } - if (rene != 1){ - item_cost[i]*=mechanicus_modifier; - if (obj_controller.tech_status=="heretics"){ - tech_heretic_modifier = 1.05; - item_cost[i]*=tech_heretic_modifier - } - } - item_cost[i] *= forge_master_modifier; - item_cost[i] = ceil(item_cost[i]); -} - -item_cost_tooltip_info = ""; -item_cost_tooltip_info += $"Modifier from forge Master : X{forge_master_modifier}/n" -item_cost_tooltip_info += $"Mechanicus Relations : X{mechanicus_modifier}/n" -item_cost_tooltip_info += $"Chapter tech approach (obj_controller.tech_status) : X{tech_heretic_modifier}/n" - - -/* */ -/* */ +hover = 0; +shop = ""; +click = 0; +click2 = 0; +discount = 0; +construction_started = 0; +eta = 0; +target_comp = obj_controller.new_vehicles; + +slate_panel = new DataSlate(); +scroll_point=0; +tooltip_show = 0; +tooltip = ""; +tooltip_stat1 = 0; +tooltip_stat2 = 0; +tooltip_stat3 = 0; +tooltip_stat4 = 0; +tooltip_other = ""; +last_item = ""; +forge_master = scr_role_count("Forge Master", "", "units"); +if (array_length(forge_master)>0){ + forge_master=forge_master[0]; +} else { + forge_master="none"; +} +mechanicus_modifier = (((obj_controller.disposition[eFACTION.Mechanicus]-50)/200)*-1)+1 +var research = obj_controller.production_research; +shop = "equipment"; +/*if (obj_controller.menu=55) then shop="equipment"; +if (obj_controller.menu=56) then shop="vehicles"; +if (obj_controller.menu=57) then shop="warships"; +if (obj_controller.menu=58) then shop="equipment2";*/ +if (instance_number(obj_shop) > 1) { + var war; + war = instance_nearest(0, 0, obj_shop); + shop = war.shop; + with(war) { + instance_destroy(); + } + x = 0; + y = 0; +} + +var research = obj_controller.production_research; +var research_pathways = obj_controller.production_research_pathways; +var i, rene; +i = -1; +rene = 0; +repeat(80) { + i += 1; + item[i] = ""; + x_mod[i] = 0; + item_stocked[i] = 0; + mc_stocked[i] = 0; + item_cost[i] = 0; + nobuy[i] = 0; + forge_cost[i]=0; + tooltip_overide[i]=0; +} +if (obj_controller.faction_status[eFACTION.Imperium] = "War") { + rene = 1; + with(obj_temp6) { + instance_destroy(); + } + with(obj_star) { + var u; + u = 0; + repeat(4) { + u += 1; + if (p_type[u] = "Forge") and(p_owner[u] = 1) then instance_create(x, y, obj_temp6); + } + } + if (instance_exists(obj_temp6)) then rene = 0; + with(obj_temp6) { + instance_destroy(); + } +} + +tab_buttons = { + "equipment":new MainMenuButton(spr_ui_but_3, spr_ui_hov_3), + "armour":new MainMenuButton(spr_ui_but_3, spr_ui_hov_3), + "vehicles":new MainMenuButton(spr_ui_but_3, spr_ui_hov_3), + "ships":new MainMenuButton(spr_ui_but_3, spr_ui_hov_3), +} +var require_tool_tip = "requires: #" +if (shop = "equipment") { + i = 0; + i += 1; + item[i] = "Combat Knife"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 1; + forge_cost[i] = 10; + i += 1; + item[i] = "Chainsword"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 4; + forge_cost[i] = 40; + i += 1; + x_mod[i] = 9; + item[i] = "Eviscerator"; + if (research.chain[0]>0){ + forge_cost[i] = 150; + } else { + tooltip_overide[i] = $"{require_tool_tip} {research_pathways.chain[0][0]}" + } + item_stocked[i] = scr_item_count(item[i]); + nobuy[i] = 1; + i += 1; + item[i] = "Chainaxe"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 10; + forge_cost[i] = 40; + i += 1; + item[i] = "Power Axe"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 40; + if (research.power_fields[0]>1){ + forge_cost[i] = 100; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Power Sword"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 25; + if (research.power_fields[0]>1){ + forge_cost[i] = 100; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Power Spear"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 40; + if (research.power_fields[0]>1){ + forge_cost[i] = 100; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Crozius Arcanum"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 75; + if (research.power_fields[0]>1){ + forge_cost[i] = 150; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Power Fist"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 60; + if (research.power_fields[0]>1){ + forge_cost[i] = 150; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Boltstorm Gauntlet"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 90; + if (research.power_fields[0]>1&& research.bolt[0]>=2){ + forge_cost[i] = 300; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + /*i += 1; + item[i] = "Executioner Power Axe"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 100; + if (research.power_fields[0]>1){ + forge_cost[i] = 300; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + forge_cost[i] = 0; + }*/ + i += 1; + item[i] = "Power Mace"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 50; + if (research.power_fields[0]>1){ + forge_cost[i] = 140; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + if (global.chapter_name == "Dark Angels"){ + i += 1; + item[i] = "Mace of Absolution"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 70; + if (research.power_fields[0]>1){ + forge_cost[i] = 160; + } + } + i += 1; + item[i] = "Lightning Claw"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 90; + if (research.power_fields[0]>1){ + forge_cost[i] = 150; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Chainfist"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 75; + if (research.power_fields[0]>1 && research.chain[0]>0){ + forge_cost[i] = 150; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Force Staff"; + item_stocked[i] = scr_item_count(item[i]); + if (research.psi[0]>0){ + forge_cost[i] = 500; + } + item_cost[i] = 70; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Force Sword"; + item_stocked[i] = scr_item_count(item[i]); + if (research.psi[0]>0){ + forge_cost[i] = 400; + } + item_cost[i] = 55; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Force Axe"; + item_stocked[i] = scr_item_count(item[i]); + if (research.psi[0]>0){ + forge_cost[i] = 450; + } + item_cost[i] = 60; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Thunder Hammer"; + if (research.power_fields[0]>1){ + forge_cost[i] = 500; + } + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 90; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Heavy Thunder Hammer"; + if (research.power_fields[0]>1){ + forge_cost[i] = 750; + } + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 135; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Lascutter"; + forge_cost[i] = 500; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 15; + i += 1; + x_mod[i] = 9; + item[i] = "Boarding Shield"; + forge_cost[i] = 100; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 20; + i += 1; + x_mod[i] = 9; + item[i] = "Storm Shield"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 50; + if (research.power_fields[0]>1){ + forge_cost[i] = 500; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Company Standard"; + forge_cost[i] = 2000; + nobuy[i] = 1; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + + + i += 1; + item[i] = "Bolt Pistol"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 5; + forge_cost[i] = 50; + i += 1; + item[i] = "Bolter"; + forge_cost[i] = 100; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 10; + i += 1; + item[i] = "Stalker Pattern Bolter"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 80; + forge_cost[i] = 230; + i += 1; + item[i] = "Shotgun"; + forge_cost[i] = 100; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 10; + i += 1; + x_mod[i] = 9; + item[i] = "Combiflamer"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 200; + if (research.bolt[0]<1 || research.flame[0]<1) then forge_cost[i] = 0; + item_cost[i] = 35; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Combiplasma"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 450; + if (research.bolt[0]<1 || research.plasma[0]<1) then forge_cost[i] = 0; + item_cost[i] = 110; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Combimelta"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 350; + if (research.bolt[0]<1 || research.melta[0]<1) then forge_cost[i] = 0; + item_cost[i] = 40; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Combigrav"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 450; + if (research.bolt[0]<1 || research.grav[0]<1) then forge_cost[i] = 0; + item_cost[i] = 110; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Heavy Bolter"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 50; + if (research.bolt[0]>=2) then forge_cost[i] = 300; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Storm Bolter"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 50; + if (research.bolt[0]>=2) then forge_cost[i] = 300; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Infernus Pistol"; + forge_cost[i] = 100; + if (research.flame[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 12; + i += 1; + item[i] = "Wrist-Mounted Storm Bolter"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 80; + forge_cost[i] = 300; + if (research.bolt[0]<2) then forge_cost[i] = 0; + nobuy[i] = 1; + i += 1; + item[i] = "Hand Flamer"; + forge_cost[i] = 75; + if (research.flame[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 12; + i += 1; + item[i] = "Flamer"; + forge_cost[i] = 150; + if (research.flame[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 25; + i += 1; + item[i] = "Heavy Flamer"; + forge_cost[i] = 350; + if (research.flame[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 40; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + + i += 1; + item[i] = "Incinerator"; + item_stocked[i] = scr_item_count(item[i]); + nobuy[i] = 1; + forge_cost[i] = 350; + if (research.flame[0]<1) then forge_cost[i] = 0; + // i += 1; + // item[i] = "Integrated Bolter"; + // item_stocked[i] = scr_item_count(item[i]); + // item_cost[i] = 120; + i += 1; + item[i] = "Meltagun"; + forge_cost[i] = 250; + if (research.melta[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 30; + i += 1; + item[i] = "Multi-Melta"; + forge_cost[i] = 350; + if (research.melta[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 60; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Plasma Pistol"; + forge_cost[i] = 250; + if (research.plasma[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 60; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Plasma Gun"; + forge_cost[i] = 350; + if (research.plasma[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 100; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Plasma Cannon"; + forge_cost[i] = 600; + if (research.plasma[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 300; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Grav-Pistol"; + forge_cost[i] = 250; + if (research.grav[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 60; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Grav-Gun"; + forge_cost[i] = 350; + if (research.grav[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 100; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Grav-Cannon"; + forge_cost[i] = 600; + if (research.grav[0]<1) then forge_cost[i] = 0; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 300; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Archeotech Laspistol"; + item_stocked[i] = scr_item_count(item[i]); + nobuy[i] = 1; + i += 1; + x_mod[i] = 9; + item[i] = "Hellrifle"; + item_stocked[i] = scr_item_count(item[i]); + nobuy[i] = 1; + i += 1; + item[i] = "Sniper Rifle"; + forge_cost[i] = 200; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 10; + i += 1; + item[i] = "Needle Sniper Rifle"; + forge_cost[i] = 500; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 200; + i += 1; + item[i] = "Missile Launcher"; + forge_cost[i] = 300; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 70; + i += 1; + item[i] = "Lascannon"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 500; + if (research.las[0]<1) then forge_cost[i] = 0; + item_cost[i] = 70; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + var mc = 0; + repeat(i) { + mc++; + if (item[mc] != ""){ + mc_stocked[mc] = scr_item_count(item[mc], "master_crafted"); + } + } +} +if (shop = "equipment2") { + i = 0; + i += 1; + item[i] = "MK3 Iron Armour"; + item_stocked[i] = scr_item_count("MK3 Iron Armour"); + nobuy[i] = 1; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + if (obj_controller.in_forge){ + if (research.armour[1].armour[0]>2){ + forge_cost[i] = 1250; + } else { + tooltip_overide[i] = "requires : #"; + for (var r = research.armour[1].armour[0]; r < 3;r++){ + tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}#"; + } + } + } + + i += 1; + var mk_4_able = false; + var mk_4_tool_tip = "" + item[i] = "MK4 Maximus"; + item_stocked[i] = scr_item_count("MK4 Maximus"); + if (obj_controller.in_forge){ + if (research.armour[1].stealth[0] >0 && research.armour[1].armour[0] >1){ + forge_cost[i] = 1250; + mk_4_able=true; + } else { + tooltip_overide[i] = "requires : #"; + if (research.armour[1].stealth[0] < 1){ + tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}#"; + for (var r = research.armour[1].armour[0]; r < 2;r++){ + tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}#"; + } + } + mk_4_tool_tip = tooltip_overide[i]; + } + + } + nobuy[i] = 1; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "MK5 Heresy"; + item_stocked[i] = scr_item_count("MK5 Heresy"); + item_cost[i] = 45; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "MK6 Corvus"; + item_stocked[i] = scr_item_count("MK6 Corvus"); + item_cost[i] = 35; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + if (obj_controller.in_forge){ + if (research.armour[1].stealth[0] > 0){ + forge_cost[i] = 1400; + } else { + tooltip_overide[i] = "requires : #"; + if (research.armour[1].stealth[0] < 1){ + tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}#"; + } + } + } + + i += 1; + item[i] = "MK7 Aquila"; + item_stocked[i] = scr_item_count("MK7 Aquila"); + item_cost[i] = 20; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + if (obj_controller.in_forge){ + if (research.armour[0] > 0){ + forge_cost[i] = 1000; + } else { + tooltip_overide[i] = "requires : #"; + if (research.armour[0] < 1){ + tooltip_overide[i] += $" {research_pathways.armour[0][0]}#"; + } + } + } + + i += 1; + item[i] = "MK8 Errant"; + item_stocked[i] = scr_item_count("MK8 Errant"); + nobuy[i] = 1; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + if (obj_controller.in_forge){ + if (research.armour[0] > 1){ + forge_cost[i] = 1000; + } else { + tooltip_overide[i] = "requires : #"; + if (research.armour[0] < 2 && mk_4_able){ + tooltip_overide[i] += $" {research_pathways.armour[0][1]}#"; + } else { + tooltip_overide[i] = mk_4_tool_tip; + } + } + } + i += 1; + item[i] = "Scout Armour"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 200; + item_cost[i] = 5; + i += 1; + item[i] = "Artificer Armour"; + item_stocked[i] = scr_item_count("Artificer Armour"); + nobuy[i] = 1; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } +if (research.armour[1].stealth[0] > 0 && research.armour[1].armour[0] > 1) { + forge_cost[i] = 1500; +} else { + tooltip_overide[i] = "requires : \n"; + if (research.armour[1].stealth[0] < 1) { + tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}\n"; + for (var r = research.armour[1].armour[0]; r < 2; r++) { + tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}\n"; + } + } + mk_4_tool_tip = tooltip_overide[i]; + +} + i += 1; + item[i] = "Terminator Armour"; + item_stocked[i] = scr_item_count("Terminator Armour"); + nobuy[i] = 1; +if (research.armour[1].stealth[0] > 0 && research.armour[1].armour[0] > 1 && obj_controller.stc_wargear >= 6) { + forge_cost[i] = 2000; +} else { + tooltip_overide[i] = "requires : \n"; + if (research.armour[1].stealth[0] < 1) { + tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}\n"; + for (var r = research.armour[1].armour[0]; r < 2; r++) { + tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}\n"; + } + } + mk_4_tool_tip = tooltip_overide[i]; + tooltip_overide[i] += $"STC wargear component 6"; +} + // if (rene=1){nobuy[i]=1;item_cost[i]=0;} +i += 1; +item[i] = "Tartaros"; +item_stocked[i] = scr_item_count("Tartaros"); +nobuy[i] = 1; +if (research.armour[1].stealth[0] > 0 && research.armour[1].armour[0] > 1 && obj_controller.stc_wargear >= 6) { + forge_cost[i] = 2500; +} else { + tooltip_overide[i] = "requires : \n"; + if (research.armour[1].stealth[0] < 1) { + tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}\n"; + for (var r = research.armour[1].armour[0]; r < 2; r++) { + tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}\n"; + } + } + mk_4_tool_tip = tooltip_overide[i]; + tooltip_overide[i] += $"STC wargear component 6"; +} + + + i += 1; + x_mod[i] = 9; + item[i] = "Jump Pack"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 250; + item_cost[i] = 20; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + + i += 1; + x_mod[i] = 9; + item[i] = "Heavy Weapons Pack"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 250; + item_cost[i] = 25; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + + i += 1; + x_mod[i] = 9; + item[i] = "Servo-harness"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 1500; + item_cost[i] = 150; + if (obj_controller.stc_wargear >= 6) { + forge_cost[i] = 400; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + + i += 1; + x_mod[i] = 9; + item[i] = "Conversion Beamer Pack"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 180; + if (research.grav[0]>=1 && research.flame[0]>=1 && research.las[0]>=1 && research.plasma[0]>=1 ) then forge_cost[i] = 450; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + + i += 1; + x_mod[i] = 9; + item[i] = "Cyclone Missile System"; + forge_cost[i] = 350; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 150; + + i += 1; + x_mod[i] = 9; + item[i] = "Servo-arm"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 750; + item_cost[i] = 30; + forge_cost[i] = 150; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + + i += 1; + x_mod[i] = 9; + item[i] = "Bionics"; + forge_cost[i] = 20; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 5; + i += 1; + x_mod[i] = 9; + item[i] = "Narthecium"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 500; + item_cost[i] = 10; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Psychic Hood"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 1000; + item_cost[i] = 100; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Combat Shield"; + forge_cost[i] = 75; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 15; + i += 1; + x_mod[i] = 9; + item[i] = "Rosarius"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 1500; + item_cost[i] = 100; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Iron Halo"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 2000; + item_cost[i] = 300; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Plasma Bomb"; + forge_cost[i] = 1500; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 175; + + i += 1; + x_mod[i] = 9; + item[i] = "Exterminatus"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 2500; + + i += 1; + x_mod[i] = 9; + item[i] = "Gene Pod Incubator"; + item_stocked[i] = scr_item_count(item[i]); + nobuy[i] = 1; + item_cost[i] = 0; + forge_cost[i] = 80; + + mc=0; + repeat(i) { + mc += 1; + if (item[mc] != ""){ + mc_stocked[i] = scr_item_count(item[mc], "master_crafted"); + } + } + +} + +var player_hanger = min(array_length(obj_controller.player_forge_data.vehicle_hanger),1); +if (shop = "vehicles") { + i = 0; + i += 1; + item[i] = "Rhino"; + item_stocked[i] = scr_vehicle_count(item[i], ""); + forge_cost[i] = 1500*player_hanger; + item_cost[i] = 120; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Predator"; + item_stocked[i] = scr_vehicle_count(item[i], ""); + forge_cost[i] = 3000*player_hanger; + item_cost[i] = 240; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Autocannon Turret"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 30; + if (research.bolt[0]> 2) then forge_cost[i] = 150*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Twin Linked Lascannon Turret"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 60; + if (research.las[0]>1) then forge_cost[i] = 400*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Heavy Bolter Sponsons"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 38; + forge_cost[i] = 100*player_hanger; + if (research.bolt[0]> 2) then forge_cost[i] = 100*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Heavy Flamer Sponsons"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 50; + forge_cost[i] = 150*player_hanger; + if (research.flame[0]<1) then forge_cost[i] = 0; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Lascannon Sponsons"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 60; + if (research.las[0]>1) then forge_cost[i] = 300; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Land Raider"; + item_stocked[i] = scr_vehicle_count(item[i], ""); + nobuy[i] = 1; + if (obj_controller.stc_vehicles >= 6) { + nobuy[i] = 0; + item_cost[i] = 500; + forge_cost[i] = 4500*player_hanger; + } + if (rene=1) { + nobuy[i]=1; + item_cost[i]=0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Twin Linked Heavy Bolter Mount"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 28; + if (research.bolt[0]> 2) then forge_cost[i] = 250*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Quad Linked Heavy Bolter Sponsons"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 60; + if (research.bolt[0]> 3) then forge_cost[i] = 350*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Twin Linked Assault Cannon Mount"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 60; + if (research.bolt[0]> 3) then forge_cost[i] = 400*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Flamestorm Cannon Sponsons"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 100; + forge_cost[i] = 300*player_hanger; + if (research.flame[0]<1) then forge_cost[i] = 0; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Hurricane Bolter Sponsons"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 70; + if (research.bolt[0]> 3) then forge_cost[i] = 300*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Twin Linked Lascannon Sponsons"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 120; + if (research.las[0]>1) then forge_cost[i] = 250*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Whirlwind"; + item_stocked[i] = scr_vehicle_count(item[i], ""); + item_cost[i] = 180; + forge_cost[i] = 2000*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "HK Missile"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 10; + forge_cost[i] = 250*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Land Speeder"; + item_stocked[i] = scr_vehicle_count(item[i], ""); + nobuy[i] = 1; + if (obj_controller.stc_vehicles >= 6) { + nobuy[i] = 0; + item_cost[i] = 120; + forge_cost[i] = 700*player_hanger; + } + i += 1; + x_mod[i] = 9; + item[i] = "Twin Linked Bolters"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 8; + if (research.bolt[0]>= 2) then forge_cost[i] = 150*player_hanger; + i += 1; + item[i] = "Bike"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 35; + forge_cost[i] = 150*player_hanger; + i += 1; + item[i] = "Dreadnought"; + item_stocked[i] = scr_item_count(item[i]); + nobuy[i] = 1; // if (rene=1){nobuy[i]=1;item_cost[i]=0;} +if (research.armour[1].stealth[0] > 0 && research.armour[1].armour[0] > 1 && obj_controller.stc_wargear >= 6) { + forge_cost[i] = 3000; +} else { + tooltip_overide[i] = "requires : \n"; + if (research.armour[1].stealth[0] < 1) { + tooltip_overide[i] += $" {research_pathways.armour[1].stealth[0][0]}\n"; + for (var r = research.armour[1].armour[0]; r < 2; r++) { + tooltip_overide[i] += $" {research_pathways.armour[1].armour[0][r]}\n"; + } + } + mk_4_tool_tip = tooltip_overide[i]; + tooltip_overide[i] += $"STC wargear component 6"; +} + i += 1; + x_mod[i] = 9; + item[i] = "Close Combat Weapon"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 45; + forge_cost[i] = 200*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Twin Linked Heavy Bolter"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 110; + if (research.bolt[0]> 2) then forge_cost[i] = 150*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Twin Linked Lascannon"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 110; + if (research.las[0]>1) then forge_cost[i] = 150*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Autocannon"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 80; + if (research.bolt[0]> 2) then forge_cost[i] = 150; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Inferno Cannon"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 115; + forge_cost[i] = 250*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Dreadnought Lightning Claw"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 185; + forge_cost[i] = 250*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Assault Cannon"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 75; + if (research.bolt[0]> 2) then forge_cost[i] = 350; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Dreadnought Power Claw"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 150; + forge_cost[i] = 200*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Whirlwind Missiles"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 90; + forge_cost[i] = 250*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Heavy Conversion Beam Projector"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 350*player_hanger; + nobuy[i] = 1; + if (rene = 1) { + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Plasma Destroyer Turret"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 400*player_hanger; + nobuy[i] = 1; + if (rene = 1) { + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Flamestorm Cannon Turret"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 400*player_hanger; + nobuy[i] = 1; + if (rene = 1) { + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Magna-Melta Turret"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 400*player_hanger; + nobuy[i] = 1; + if (rene = 1) { + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Neutron Blaster Turret"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 450*player_hanger; + nobuy[i] = 1; + if (rene = 1) { + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Volkite Saker Turret"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 400*player_hanger; + nobuy[i] = 1; + if (rene = 1) { + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Volkite Culverin Sponsons"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 350*player_hanger; + nobuy[i] = 1; + if (rene = 1) { + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Twin Linked Volkite Culverin Sponsons"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 400*player_hanger; + nobuy[i] = 1; + if (rene = 1) { + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Twin Linked Multi-Melta Sponsons"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 200; + forge_cost[i] = 200*player_hanger; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Twin Linked Heavy Flamer Sponsons"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 200*player_hanger; + item_cost[i] = 150; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Reaper Autocannon Mount"; + item_stocked[i] = scr_item_count(item[i]); + forge_cost[i] = 250*player_hanger; + nobuy[i] = 1; + if (rene = 1) { + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Void Shield"; + item_stocked[i] = scr_item_count(item[i]); + nobuy[i] = 1; + if (obj_controller.stc_vehicles >= 6) { + nobuy[i] = 0; + item_cost[i] = 500; + forge_cost[i] = 2000*player_hanger; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Lucifer Pattern Engine"; + item_stocked[i] = scr_item_count(item[i]); + nobuy[i] = 1; + if (obj_controller.stc_vehicles >= 6) { + nobuy[i] = 0; + item_cost[i] = 90; + forge_cost[i] = 1250*player_hanger; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Artificer Hull"; + item_stocked[i] = scr_item_count(item[i]); + nobuy[i] = 1; + if (obj_controller.stc_vehicles >= 3) { + nobuy[i] = 0; + item_cost[i] = 200; + forge_cost[i] = 1000*player_hanger; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Armoured Ceramite"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 120; + if (obj_controller.stc_vehicles >= 3) { + item_cost[i] = 200; + forge_cost[i] = 500*player_hanger; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Heavy Armour"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 50; + if (obj_controller.stc_vehicles >= 3) { + item_cost[i] = 200; + forge_cost[i] = 250*player_hanger; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Smoke Launchers"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 10; + if (obj_controller.stc_vehicles >= 3) { + item_cost[i] = 200; + forge_cost[i] = 250*player_hanger; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Dozer Blades"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 10; + if (obj_controller.stc_vehicles >= 3) { + item_cost[i] = 200; + forge_cost[i] = 200*player_hanger; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Searchlight"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 15; + if (obj_controller.stc_vehicles >= 3) { + item_cost[i] = 200; + forge_cost[i] = 250*player_hanger; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Frag Assault Launchers"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 30; + if (obj_controller.stc_vehicles >= 3) { + item_cost[i] = 200; + forge_cost[i] = 250*player_hanger; + } + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } +} +if (shop = "warships") { + i = 0; + i += 1; + item[i] = "Battle Barge"; + item_stocked[i] = scr_ship_count(item[i]); + item_cost[i] = 20000; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Strike Cruiser"; + item_stocked[i] = scr_ship_count(item[i]); + item_cost[i] = 8000; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Gladius"; + item_stocked[i] = scr_ship_count(item[i]); + item_cost[i] = 2250; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + item[i] = "Hunter"; + item_stocked[i] = scr_ship_count(item[i]); + item_cost[i] = 3000; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } + i += 1; + x_mod[i] = 9; + item[i] = "Cyclonic Torpedo"; + item_stocked[i] = scr_item_count(item[i]); + nobuy[i] = 1; + if (rene = 1) { + nobuy[i] = 1; + item_cost[i] = 0; + } +} + + + +with(obj_p_fleet) { + if (capital_number > 0) and(action = "") { + var you; + you = instance_nearest(x, y, obj_star); + if (you.trader > 0) then obj_shop.discount = 1; + } +} +with(obj_star) { + if (array_contains(p_owner, 1)) and(trader > 0) then obj_shop.discount = 1; +} + + +if (shop = "equipment") or(shop = "equipment2") { + var disc; + disc = 1; + if (obj_controller.stc_wargear >= 1) then disc = 0.92; + if (obj_controller.stc_wargear >= 3) then disc = 0.86; + if (obj_controller.stc_wargear >= 5) then disc = 0.75; + var mc = 0; + repeat(i) { + mc++; + if (forge_cost[mc] > 1) then forge_cost[mc] = round(forge_cost[mc] * disc); + } +} +if (shop = "vehicles") { + var disc; + disc = 1; + if (obj_controller.stc_vehicles >= 1) then disc = 0.92; + if (obj_controller.stc_vehicles >= 3) then disc = 0.86; + if (obj_controller.stc_vehicles >= 5) then disc = 0.75; + var mc = 0; + repeat(31) { + mc += 1; + var ahuh; + ahuh = 1; + if (mc >= 7) and(mc <= 12) then ahuh = 0; + if (ahuh = 1) { + if (forge_cost[mc] > 1) then forge_cost[mc] = round(forge_cost[mc] * disc); + } + } +} +if (shop == "production"){ + i = 0; + var research_item; + if (research.flame[0] == 0){ + i++; + item[i] = ["research", research_pathways.flame[0][research.flame[0]], ["flame"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research grants the ability to fabricate and harness Promethium Tanks, allowing for the construction of flame-based weaponry. This technology taps into the potent destructive potential of Promethium, turning it into a terrifying tool of war, capable of reducing enemies to ash.\nUnlocks: Flamers, Heavy Flamers, Incinerator.\nRequired for: Heavy Flamer Sponsons, Flamestorm Cannon Sponsons, Inferno Cannon, Servo-harness, Combi-flamer."; + + } + if (research.psi[0] == 0){ + i++; + item[i] = ["research", research_pathways.psi[0][research.psi[0]], ["psi"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research unlocks the arcane art of crafting Force Weapons, allowing our trained psykers to channel the raw, untamed power of the Warp into tangible forms. It transforms ordinary melee implements into conduits of psychic fury, each blow imbued with devastating energy This grants our psykers the ability to strike down the mightiest foes, turning the tide of battle with the very power of the immaterium.\n\nUnlocks: Force Staff, Force Sword, Force Axe."; + } + if (research.las[0] == 0){ + i++; + item[i] = ["research", research_pathways.las[0][research.las[0]], ["las"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research unveils the secrets of advanced Las Weaponry, a testament to the Imperium's mastery of directed energy. It allows the construction of more potent and reliable las weapons, each pulse of light capable of searing through armor and flesh alike. This empowers our forces with vastly enhanced range, penetration, and damage, ensuring the Emperor's light shines brighter against the encroaching darkness.\n\nUnlocks: Lascannon.\nRequired for: Twin Linked Lascannon Turret, Twin Linked Lascannon Sponsons, Twin Linked Lascannon."; + } + if (research.chain[0] == 0){ + i++; + item[i] = ["research", research_pathways.chain[0][research.chain[0]], ["chain"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research unleashes the technology for Advanced Chain Weaponry, allowing us to produce tools of brutal, unrelenting destruction. It allows for the creation of weapons that tear and rend, leaving nothing but bloody ruin in their wake. Our warriors wield these instruments of carnage to devastating effect, carving through the ranks of our enemies with unstoppable fury. \n\nUnlocks: Eviscerator, Chainfist."; + } + if (research.plasma[0] == 0){ + i++; + item[i] = ["research", research_pathways.plasma[0][research.plasma[0]], ["plasma"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research delves into the dangerous art of Plasma Weaponry, granting us the means to unleash the raw power of superheated plasma upon the enemy. This volatile technology produces weapons that can inflict devastating wounds, but its very nature demands a careful hand, lest its power consume the wielder. These weapons provide a high damage potential, capable of obliterating even heavily armored foes.\n\nUnlocks: Plasma Pistol, Plasma Gun, Plasma Cannon.\nRequired for: Combiplasma."; + } + if (research.bolt[0] == 1){ + i++; + item[i] = ["research",research_pathways.bolt[0][research.bolt[0]], ["bolt"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research reveals the secrets of Advanced Bolt Weapons, an expansion of the Emperor's favored projectile weapons into more specialized and lethal forms. It is the pinnacle of projectile technology, combining explosive force with devastating impact. This provides our forces with a significant increase in firepower, ensuring that each shot finds its mark and shatters the foe. \n\nUnlocks: Stalker Pattern Bolter, Heavy Bolter, Heavy bolter Sponsons.\nRequired for: Combiflamer, Combiplasma, Combimelta, Combigrav, Assault Cannon, Autocannon Turret, Hurricane Bolter, Quad Linked Heavy Bolter Sponsons, Twin Linked Bolters, Twin Linked Heavy Bolter mount, Twin Linked assault cannon."; + } + if (research.bolt[0] == 2){ + i++; + item[i] = ["research","Advanced Weapon Integration and Targeting", ["bolt"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research unlocks the divine secrets of Advanced Weapon Integration and Targeting, allowing for the creation of systems that connect the chapter’s weaponry with the Astartes in perfect harmony, enhancing their coordination and tactical prowess upon the Emperor's battlefields. It also allows for the construction of the devastating Assault Cannon and the mighty Autocannon for Predator tanks, making them instruments of divine vengeance, ensuring that the enemies of Mankind tremble before their might. This knowledge shall improve the efficiency of standard bolter weaponry, while also unleashing newer and more devastating tools of annihilation. \nUnlocks: Assault Cannon, Autocannon Turret, Twin Linked Heavy Bolter mount, Twin Linked bolter.\nRequired for: Hurricane Bolter, Quad Linked Heavy Bolter Sponsons, Twin linked assault cannon."; + } + if (research.bolt[0] == 3){ + i++; + item[i] = ["research","Integrated Weapon Stabilization and Rate of Fire Enhancements", ["bolt"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research unlocks the sacred technology of Integrated Weapon Stabilization and Rate of Fire Enhancements, allowing our warriors to unleash bolter fire with unprecedented might, creating a maelstrom of righteous destruction upon the heretic and the alien. This divine advancement focuses on the inner workings of the weaponry, turning them into the Emperor's own instruments of divine wrath, rivaled only by the most sacred creations of the Machine God. Their might shall tear down the very fortresses of our foes, and their righteous fury shall cleanse the battlefield from all that would oppose the Imperium. \nUnlocks: Hurricane Bolter, Quad Linked Heavy Bolter Sponsons, Twin linked assault cannon."; + } + if (research.power_fields[0] < 2){ + i++; + item[i] = ["research",research_pathways.power_fields[0][research.power_fields[0]], ["power_fields"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research unlocks the ancient science of Advanced Power Weapons, enhancing melee armaments with potent energy fields that disrupt the very bonds of matter. It is a testament to the power of technology, transforming ordinary weapons into instruments of righteous fury. This allows our warriors to devastate the most armored foes, cleaving through enemy ranks with the raw energy of the machine god.\n\nUnlocks: Power Axe, Power Sword, Power Spear, Crozius Arcanum, Power Fist, Power Mace, Lightning Claw, Chainfist, Thunder Hammer, Heavy Thunder Hammer, Storm Shield."; + } + if (research.melta[0] == 0){ + i++; + item[i] = ["research",research_pathways.melta[0][research.melta[0]], ["melta"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research unlocks the terrifying potential of Basic Melta Weaponry, granting us the ability to unleash the searing heat of miniature suns upon the enemy. These weapons melt through armor and fortifications with unparalleled ease. This enhances our anti-tank capabilities, allowing our forces to shatter enemy vehicles and fortifications, leaving only molten slag in their wake.\n\nUnlocks: Meltagun, Multi-Melta.\nRequired for: Combimelta"; + } + if (research.grav[0] == 0){ + i++; + item[i] = ["research", research_pathways.grav[0][research.grav[0]], ["grav"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research unravels the enigmatic science of Grav Weapons, allowing us to manipulate the very fabric of gravity for destructive purposes. These weapons crush and pulverize their targets with the force of collapsing worlds. They become the bane of armored units, allowing our forces to annihilate heavy infantry and vehicles with the very force of celestial bodies. \n\nUnlocks: Grav-Pistol, Grav-Gun, Grav-Cannon.\nRequired for: Combigrav"; + } + if (research.armour[0]>0){ + if (research.armour[1].stealth[0] == 0){ + i++; + item[i] = ["research","Advanced Servo Motors", ["armour", "stealth"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research unlocks the secrets of Advanced Servo Motors, allowing the fabrication of enhanced movement systems, greatly boosting the speed and agility of our warriors. The speed and maneuverability increase will provide our troops with a significant advantage. It also unlocks the construction of specialized armors and advanced items.\n\nUnlocks: Mk6 Corvus.\nRequired for: Artificer Armour, Terminator Armour, Tartaros."; + } + if (research.armour[1].armour[0] == 0){ + i++; + item[i] = ["research","Advanced Ceramite Bonding", ["armour", "armour"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research uncovers the lost techniques of Advanced Ceramite Bonding, allowing us to create superior armors. It fortifies our war plate, offering unparalleled protection against enemy fire. This dramatically enhances the survivability of our units as well as unlocking new armor capabilities.\n\nUnlocks: MK3 Iron Armour.\nRequired for: MK8 Errant, Artificer Armour, Terminator Armour, Tartaros."; + } else if (research.armour[1].armour[0] == 2){ + i++; + item[i] = ["research","Ceremite Void Hardening", ["armour", "armour"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research grants the secrets of Ceramite Void Hardening techniques, reinforcing our armors to withstand the harshest conditions of the void. It is essential for warriors who brave the vacuum of space, ensuring they can perform their duties where others would falter. It increases the unit's resilience in harsh environments as well as providing a superior armor plating. \n\nUnlocks: MK3 Iron Armour.\nRequired for: MK8 Errant, Artificer Armour."; + } + if (research.armour[0]==1){ + i++; + item[i] = ["research",research_pathways.armour[0][1], ["armour"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research unlocks the knowledge to fabricate the Mk VIII 'Errant' pattern Power Armour, a refinement of the ubiquitous Aquila armour, often favored by veteran Astartes and officers due to its unparalleled protection. It features improved plating around the torso and neck, enhancing its resilience against both ranged and melee attacks. This technology marks the pinnacle of power armour technology and a significant step in the path to becoming a battle-hardened Astartes.\n\nUnlocks: MK8 Errant.\nRequired for: Artificer Armour."; + } + if (research.armour[1].stealth[0] == 1 && research.armour[1].armour[0] == 1){ + i++; + item[i] = ["research","Enhanced Nerve Interfacing", ["armour", "armour"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research allows the creation of Enhanced Nerve Interfacing systems, binding unit and armor in perfect harmony. It augments the link between warrior and war plate, unlocking new levels of effectiveness. This provides the user with better accuracy, damage output, and mobility, unlocking new levels of tactical potential. \n\nUnlocks: MK4 Maximus."; + } + } else if (research.armour[0]==0){ + i++; + item[i] = ["research",research_pathways.armour[0][0], ["armour"]]; + item_stocked[i] = 0; + forge_cost[i] = 3000; + tooltip_overide[i] = "This research unlocks the knowledge to fabricate Mk VII 'Aquila' pattern Power Armour, the standard armour pattern for the Adeptus Astartes. It is a reliable and ubiquitous armour used by many Chapters that is also easy to construct and maintain, making it a stable base for the might of the Imperium's warriors.\n\nUnlocks: MK7 Aquila.\nRequired for: MK8 Errant, Artificer Armour, Terminator Armour, Tartaros."; + } + +} +legitimate_items = i; +if (shop = "warships") { + var disc; + disc = 1; + if (obj_controller.stc_ships >= 1) then disc = 0.92; + if (obj_controller.stc_ships >= 3) then disc = 0.86; + if (obj_controller.stc_ships >= 5) then disc = 0.75; + i = 0; + repeat(31) { + i += 1; + if (item_cost[i] > 1) then item_cost[i] = round(item_cost[i] * disc); + } +} +if (discount = 1) { + discount = 2; + i = 0; + repeat(31) { + i += 1; + if (item_cost[i] >= 5) then item_cost[i] = round(item_cost[i] * 0.8); + if (item_cost[i] > 1) and(item_cost[i] < 5) then item_cost[i] -= 1; + } +} + +if (rene = 1) { + i = 0; + repeat(31) { + i += 1; + item_cost[i] *= 2; + } +} +forge_master_modifier=0; +if (forge_master!="none"){ + forge_master_modifier = 2500/((forge_master.charisma+10)*forge_master.technology); + if (forge_master.has_trait("flesh_is_weak") && forge_master_modifier>0.75){ + forge_master_modifier-=0.1; + }; +} else { + forge_master_modifier=1.7; +} +var tech_heretic_modifier =1 + i = 0; + repeat(array_length(item_cost)-2){ + i += 1; + if (shop != "warships"){ + item_cost[i] *= 2; + } + if (rene != 1){ + item_cost[i]*=mechanicus_modifier; + if (obj_controller.tech_status=="heretics"){ + tech_heretic_modifier = 1.05; + item_cost[i]*=tech_heretic_modifier + } + } + item_cost[i] *= forge_master_modifier; + item_cost[i] = ceil(item_cost[i]); +} + +item_cost_tooltip_info = ""; +item_cost_tooltip_info += $"Modifier from forge Master : X{forge_master_modifier}/n" +item_cost_tooltip_info += $"Mechanicus Relations : X{mechanicus_modifier}/n" +item_cost_tooltip_info += $"Chapter tech approach (obj_controller.tech_status) : X{tech_heretic_modifier}/n" + + +/* */ +/* */ diff --git a/scripts/scr_culture_visuals/scr_culture_visuals.gml b/scripts/scr_culture_visuals/scr_culture_visuals.gml index 91b2465257..6ffc9660d2 100644 --- a/scripts/scr_culture_visuals/scr_culture_visuals.gml +++ b/scripts/scr_culture_visuals/scr_culture_visuals.gml @@ -608,7 +608,14 @@ global.modular_drawing_items = [ overides : { "chest_fastening" : spr_backpack_fastening, }, - + }, + { + sprite : spr_cyclone_launcher, + body_types :[2], + position : "backpack_augment", + equipped : { + "mobi" : "Cyclone Missile System" + }, }, { sprite : spr_gear_hood2, diff --git a/scripts/scr_equipment_struct/scr_equipment_struct.gml b/scripts/scr_equipment_struct/scr_equipment_struct.gml index 797f292cad..52b2ef06a7 100644 --- a/scripts/scr_equipment_struct/scr_equipment_struct.gml +++ b/scripts/scr_equipment_struct/scr_equipment_struct.gml @@ -323,6 +323,7 @@ function EquipmentStruct(item_data, core_type, quality_request = "none") constru }; } +/// @param {string} search_area possible values: "any", "weapon", "gear', "armour", "mobility"; function gear_weapon_data(search_area = "any", item, wanted_data = "all", sub_class = false, quality_request = "standard") { var item_data_set = false; var equip_area = false; diff --git a/scripts/scr_unit_equip_functions/scr_unit_equip_functions.gml b/scripts/scr_unit_equip_functions/scr_unit_equip_functions.gml index 23386f8a3d..1c1a8f1256 100644 --- a/scripts/scr_unit_equip_functions/scr_unit_equip_functions.gml +++ b/scripts/scr_unit_equip_functions/scr_unit_equip_functions.gml @@ -1,3 +1,4 @@ +// TODO: Merge all update function into one; /// @mixin function scr_update_unit_armour(new_armour, from_armoury = true, to_armoury = true, quality = "any") { var is_artifact = !is_string(new_armour); @@ -314,6 +315,8 @@ function scr_update_unit_gear(new_gear, from_armoury = true, to_armoury = true, return "complete"; } +// TODO: Expand restriction tag checking and error logging to other update functions; +/// @mixin function scr_update_unit_mobility_item(new_mobility_item, from_armoury = true, to_armoury = true, quality = "any") { var is_artifact = !is_string(new_mobility_item); var _old_mobility_item = mobility_item(); @@ -325,42 +328,60 @@ function scr_update_unit_mobility_item(new_mobility_item, from_armoury = true, t new_mobility_item = obj_ini.artifact[artifact_id]; } - var _armour_data = get_armour_data(); - if (is_struct(_armour_data)) { - if (_armour_data.has_tag("terminator")) { - if (!array_contains(["Servo-arm", "Servo-harness", "Conversion Beamer Pack"], new_mobility_item)) { - return "incompatible with terminator"; - } + if (!unequipping) { + var _mobility_data = gear_weapon_data("mobility", new_mobility_item); + if (!is_struct(_mobility_data)) { + log_error($"Failed to equip {new_mobility_item} for {name()} - can't find the item in the item database!"); + return false; } - if (new_mobility_item == "Jump Pack" && !_armour_data.has_tag("power_armour")) { - return "requires power armour"; + + var exp_require = _mobility_data.req_exp; + if (exp_require > experience) { + log_error($"Failed to equip {new_mobility_item} for {name()} - not enough EXP! ({experience}<{exp_require})"); + return false; } - } else { - if (new_mobility_item == "Jump Pack") { - return "requires power armour"; + + var _armour_data = get_armour_data(); + if (is_struct(_armour_data)) { + if (_armour_data.has_tag("terminator") && !_mobility_data.has_tag("terminator")) { + log_error($"Failed to equip {new_mobility_item} for {name()} - requires terminator armour! (Current: {armour()})"); + return false; + } + if (new_mobility_item == "Jump Pack" && !_armour_data.has_tag("power_armour")) { + log_error($"Failed to equip {new_mobility_item} for {name()} - requires power armour! (Current: {armour()})"); + return false; + } + } else { + if (new_mobility_item == "Jump Pack") { + log_error($"Failed to equip {new_mobility_item} for {name()} - requires armour!)"); + return false; + } + if (_mobility_data.has_tag("terminator")) { + log_error($"Failed to equip {new_mobility_item} for {name()} - requires terminator armour!"); + return false; + } } } var same_quality = quality == "any" || quality == mobility_item_quality; if (_old_mobility_item == new_mobility_item && same_quality) { - return "no change"; + return true; } + // Have enough items check; if (from_armoury && !is_artifact && !unequipping) { if (scr_item_count(new_mobility_item, quality) > 0) { - var exp_require = gear_weapon_data("weapon", new_mobility_item, "req_exp", false, quality); - if (exp_require > experience) { - return "exp_low"; - } quality = scr_add_item(new_mobility_item, -1, quality); quality = quality != undefined ? quality : "standard"; } else { - return "no_items"; + log_error($"Failed to equip {new_mobility_item} for {name()} - not enough items of {quality} quality!"); + return false; } } else { quality = quality == "any" ? "standard" : quality; } + // Return old items to stockpile; if (_old_mobility_item != "") { if (to_armoury) { if (!is_string(mobility_item(true))) { @@ -388,7 +409,7 @@ function scr_update_unit_mobility_item(new_mobility_item, from_armoury = true, t update_health(portion * max_health()); get_unit_size(); - return "complete"; + return true; } diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index f0f33e27e0..5240bc8a78 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -1060,7 +1060,7 @@ global.weapons = { "range": 12, "spli": 20, "arp": 2, - "tags": ["heavy_ranged", "dreadnought"] + "tags": ["heavy_ranged", "terminator", "dreadnought"] }, "Autocannon": { "abbreviation": "Autocnn", @@ -2797,7 +2797,8 @@ global.gear = { "ranged_hands": -0.25, "specials": { "combi_tool": 1 - } + }, + "tags": ["terminator"] }, "Servo-harness": { "abbreviation": "SrvHrns", @@ -2812,7 +2813,8 @@ global.gear = { "ranged_hands": -0.5, "specials": { "combi_tool": 2 - } + }, + "tags": ["terminator"] }, "Conversion Beamer Pack": { "abbreviation": "CnvBmr", @@ -2820,8 +2822,16 @@ global.gear = { "description": "The Conversion Beam Projector is a heavy energy weapon that harnesses advanced technology to project a concentrated beam of destructive energy. Armor detonates as the matter that comproises it is transformed into pure energy.", "melee_hands": -0.5, "ranged_hands": -0.5, + "tags": ["terminator"] + }, + "Cyclone Missile System": { + "abbreviation": "CyclLnch", + "second_profiles": ["Cyclone Missile Launcher"], + "description": "Designed for use with Terminator armour. Valuable for their ability to launch missiles rapidly from the twin racks, this back-mounted missile system also makes up for some of Terminator armour's inflexibility by providing more options in combat.", + "melee_hands": -0.5, + "ranged_hands": -0.5, + "tags": ["terminator"] }, - // Add more mobility items as needed... } } diff --git a/sprites/spr_cyclone_launcher/8cb6d9eb-f4d0-4e70-8a60-33dd017f0b50.png b/sprites/spr_cyclone_launcher/8cb6d9eb-f4d0-4e70-8a60-33dd017f0b50.png new file mode 100644 index 0000000000000000000000000000000000000000..28214710a8f041d5784a2cea6789d3795d4b3401 GIT binary patch literal 5805 zcmeHLcTiL57LNr~5M&VrTy$fsDCs>C=}5#t9-vZ%o12>$NZTYN0mZV)+Lu*l#R4`& z$wMi!xKdOQEU4&;G^x5u6Oi&ml%nq@pyGQw^TwIonfHe`<$m`&=ls5Ne&0D~@?{st zYlVr?EF%O0VZ!oo^?~o%2*fzU$%gP~UUd0Q_*N9{=dbhu)JU0J$`^_tq%ukdAt8;B zk3eW@#GD}0BIMM;7K>%h>l|sOAK;pvz+`V3;1=lwXL5bF_huO3bBZ4%X0pv=ef_j zzil~Py6(7j8BrVchgl}4BTTz3fVFm~U}w?A(>_IjkiTbE+~yW znzR#~GG+c;M`shrFAU|Jx^nkci_TlYL-Q^;ht&PngLHP+9HZL?iu zYc*jAd#Dd@I#IQiUw`px96B{>{F~!jmu7dSQ?}%Im$i%08z;UJPq3^Kvuh?`)LWh| zVwbxG^*($x)2Lw3I>y)3D%T*oGNB=GkQRd=lvnhc$YhgOS=erq0PyfVDuY(?X= zc&a=*T+rEzK$xx;!s+GDUc~^VVhq5Oav_XHEQ9k7fv|Vb$N(?`QX;vKKqz6Ny7I1} zkU}04wU*4rv1KmMdZ9j-TA5%)9g53%c&VJ$YB;VK0qb?&iTnJC@*44xDe@)-Id1mbBlB7jG8 zc@zLm0_h|)olYU3i6EIurV)5tIzS%-#gZtLfCPkeP%t<~2;*>h1U#2O1kn^8z(ter zTr!$QBH_?n9G67kQvr}ig~mX5%Y|@O0-~{A>7aNp6qP{W(RdUR8jt5v&?GX*N7IQg zC?8KH(5QR@g$L2}P&|;~E|rS`csqq+KmcK75`kWzBb?#HVKGqz4DQnmM+7MOumM~H zLJ3c*R(ulq3B{1F643F9r;^~H$vC>se;f(_NofrvSHQWbL&f7TM2cRb+ZYBM4ooee z%TyRZKMzO4aFIiRQY!b8N<~bR&MBnM@}rmy7ZeXr0 zBylNR903jTAUHwsI6NBQ@knTZOCV5*0FgxHgP*(mmxQOwh!5e}V|5Mj!)DrJ|7*KP z6vlK=n3j<_xHH3z9{aJ=kMgDKsej`&nr46F3NZB7MZSpNuXKH->x&rpBIU2y^_8wK zV&IFEzh>88Mwij2vmzvcf8eR%lOS^HVQ2UhX~^|l;i^ARBHp^>ZH7lvWF7$u1j2Z_ z?lTT?G{Fja z;2wv6x=enWbW)r#oEI)PRSnN<*b{JKFeAuL@e9tVya`!`5lTa$GZB4hL?A|&=xVFl=iZsd-=pj z=gX;e&WRSy{%`lsdXs%~(|23ti=7TM%Ff%d5-VC})y{aCa5wILQ9s2G$a=iJrKP2N zXvoIvoG&fW3)s-=P?t`AZSzi?QmJ?EV0ddxwOhP;b1Qc3A*I1NJo(bjBa8+9-rn90?@IYuyY44M?3=y8^kLJr z?yldrm@*i}Kgwz%XR1BZ(d|DhnT{Ma7_18*-i;ej_O`<(xb=fzOat! z=H!dRKviCTX43UQaL;iqIL_0gG7ucRv!mVmP3~0swbwBR=q2u*#%jATZDC-9DD#xW zP_(`@r@7iGvace&c1`=MpA#m`9E?f>_n7ouaDr7D?PeRl%Hhx_ZMgH8L9R~Tho+SG zpC$jkKkT<(%ra{mlV5wbIHm}4|9BX!G3{9qqK=ZizNqgC&WVL5}L-O{=Yi2LnvpWBtQ1V>sWf9qi4&GF! z==YDvNPV3<9R18IJ2SGat?bzH>ZK=kzJRT$ESE?00=m8Cyr*}31AA#+)UyRD&!K_7 zOAp!)_crgrFhinC*zAz4rgMjK6;>N!LOVAx1L{@D;Ju1zA<@R6WrLF=X*Q?gSibSJ1r}GV}h?AxVcViyRaOrB@WKvm0qz3 z=(yu-6ztJ@y*Y#*`vu8zzVrS{a z_&iZ#=z zEMjDtC}vs>qc>O8>Q3+L-f@mDXrnu`2kF}bQwxsfDlWa7+}Bka$h`L*E&8zIwb=ev z)lb8$y*XYy%S0`0>hcPz21xlQih#mzQZT|adBLi3IVy~x6Kmk+J+O{)A> z`?hLTdvU)nw!2|r-dn=08OODzRf_vR(xr_K#xF^$7cQ%@Z!wzUGoUqY&%G-jT;gzf znR97<&-1&kXHzcpxf@4HwqB)IG;V%6vuTBD(JK1ToKuGI>&M>k!m@Jf^jkF)-JiYx cPuJn<_eoDNM!=5J89KLEZeFfw&S5|N8{=NYa{vGU literal 0 HcmV?d00001 diff --git a/sprites/spr_cyclone_launcher/layers/8cb6d9eb-f4d0-4e70-8a60-33dd017f0b50/0f31cf23-d758-4aec-a384-f40c841e8042.png b/sprites/spr_cyclone_launcher/layers/8cb6d9eb-f4d0-4e70-8a60-33dd017f0b50/0f31cf23-d758-4aec-a384-f40c841e8042.png new file mode 100644 index 0000000000000000000000000000000000000000..817864684de539b7005997084795323ab4c11981 GIT binary patch literal 5807 zcmeHLc~DbV7mr#2LD3=zDB2jeB4kepFA`A}CB;C>rfkB?%L_)bH3>-oQK?XI#bqj1 z!3|MTltqhWQ^5s9K@{0U0j;tL2vQN*>h}^*alX!c<4imA{o%_b@4kC~=XcNfopbNx zz8!40)zkE6>!VPpX-pR<59FSWLQT-o(?MDbBC3j!+sz2Cb#f0-iIzykJiY)%%flrw z8dmXnD3q#R$o4n9j-EQyYP@XXj_{ag_p%Qvw$0rVeY!f8H>G6H{y9c_D~3$wOcX|-UCo7WuCpy#o`GkgJCawqb?7HHtZn&An&@X1}8&dw7cbO47vrJd-d-HE? zP{pMa0-b#p$E{yTd2oAbFH=7M-5WV((*&BKuiw5C3u=()V)%}ZY^I~*`+$%z5~KDr zT&}OMxEbW{>b!Jw*o?1B*-4$JFnd#WI%l%$_0Q7}2MkVT%|2jky1FR)$&(UJb2b>MX|Gp^DO$GHC!%fSXTHbm2k6d=fs^GU#L}UZngNt7FrFP zIoazF7Ly!ZPn(h@bA$SOdirqJEx^VOJyyrc0T2Ga)KW1J@R)_yFBa7V`tls9!TpJe>cm2XCk1Mo}%(C!Z7d_Nj zHH-m+ZQ)^y%EOK%$3au3ES$f>VH)fejB!Z&ZfCS{S4qI|f=l*H+>QX4AhkZBKlxOb z?z?SG4YOn0EtgoDO&Z1@>LVI{rHJM=T(}aCO$(p+_E@x4c2|bY)?D|>4k32aSFeSW zOlyU#`bjwD)~8EYRnGps_g~M_FB~$D@-#Hdn;cP-*yuN88-*fORrgMlNc7eiTShiC zH#8(&9*I0t-84OcCe7X$($$MX8G7@P0$aygLx;pd9LN=OV4O-QK`IZ0va?r7KqwTJ zqd9O0U&O$4=U>I3`CJBOEtN%JNgUw~e3u9*>>1(a1x18H02gDwT;EPbM+k(l97L;x z0+EcaVqmnqbfm56#$(W0h&+^mS;u0d9mP@@O~Fxc1gx`)uOMNT>!aJYK0(;*?~ZSQ>&S0sw#~knkiD7C~TT;UYPx!ir=IG!&y8POuD;@+ES< zScKMaf*f&}oPoh0?_9sX=pZ8I$PkhsiXu}!r2x9($_Y?H{*tK8;#bVKXVJ*E=_qnV%16+?V3 zUE2g9h(@8o5SB>g(y$Z|;$cBs*ak}jr~t>thQy;0p>b49kxUMXAXr0%kmL9W50Atl z15~ap7KVsKECmKYEXV<-!!QgI>rDzQ`uBI)D{!4McP5rt?6G=kGtvY8AF2{#JW z_OJz@oQD`7Yk)7}ij}gDU@yK9_LPGfJ&A}ER9h;MKqTAJ01EXZ$Oo3nkXqER5(zl6 zjdnzn7&;OTA}y$?RD?j=k3>Uvl)|7~EcFtL1q_VF1+>QU!!Qe3P+U+BI)QQ+AtjKg zbOM!5wDlqa$S<8lv?7q{gmHK=m(L6TUuezpLEDWc-Gwhh<`36)jjkzA_=nM_(MJJa zyO_{u?XsYQ&}axUPyutbej;3>L(m3L6apjr$5_F>@8|zbF;Iv!k}YII!E%sV!cxdo z5X*r80+!1GY-uooNFfk7pR&uuJh>8-!Ye}%9TBaN0@Z4T{&p-?mY?F48(>Wy5XrCv zDt1gV0v*W~{@)Lez<~jX2f&)}cvuP*2Cx9KLa=0*Oym-&B+!OT`_$ckBs@(;ybsR~ zuh|gaC({o9U+EqNjN3sGSw{Piof+Ba@gH{jF}*Z<>c4o6mD#^I148{}lF!oji(Fsi z`YZ)L3;d9o>IRo~UX5T$)* zrt{?K3uDVua&^H%aiQz20|haU2ba1^n{m?pd;JsZFn3XtT0)99&$IL}K3+=fA#Ez$ z?imYLpS19v(0zX};FbNaj(Sg%PY5$d@;6Ei6(h46cljP4%JjFE{Y)@5?>sf}vOFg( z<$3}3NowP!CUc#k)hFi6FZB`VCXyd-IbgxYNjlTiWnz51Boh z+HX)hSl?f)w0 zUEFauF?7$|NW=ThS9`keZ8fCRZ~SQD-&l7pzow4kIM?BAc40)&_62v=wWM4a0c-OMvXZa)LA#Erp$V?jYW$#~+uJ+L-{wsPuD*#n0Fs&UV z8+rR7om!W&2WwN+e};N*fAH@=&&Ybzl=8;4bwz4O-XHfPREDpXNiFRcJYbvFr~K{~ zxXCe7)>)Z&(n3IRLSIal|D zMwV56__IX{*WtmwOBEf5ds}wl7=aO`ELLE&;r!t|nOS61P}gRLZ-XKQDyyCz7-0}p zIiwe6YhjoWYhiRQyExsluk=-2PI_}!$8Y|SAgg(`tY!CzU2RtBTD$ag`Hl5K7k*(T zG+ryh2?e)J;%j=(z8c(jwp4t%Bh@wjq2kb`+E)7a+%xRsk=whesadWH$1SbKw4mae z1|W%MO!aJfpzCmHveHHNpl{Md&)ECBuLP%-lvU-v)C;Vb-*}?SwAwQ&;M#%W^=iw- zRnQ~y&^&JWWn4@50h;6=gcyUVF z+{<}GD}scryj?4p+$j39eW{!HGc1_2PeouT))s_l#p#3F%S|+HF`eC<(j9_-{15(R$`t?r literal 0 HcmV?d00001 diff --git a/sprites/spr_cyclone_launcher/spr_cyclone_launcher.yy b/sprites/spr_cyclone_launcher/spr_cyclone_launcher.yy new file mode 100644 index 0000000000..f3df275762 --- /dev/null +++ b/sprites/spr_cyclone_launcher/spr_cyclone_launcher.yy @@ -0,0 +1,90 @@ +{ + "$GMSprite":"", + "%Name":"spr_cyclone_launcher", + "bboxMode":0, + "bbox_bottom":56, + "bbox_left":18, + "bbox_right":162, + "bbox_top":0, + "collisionKind":1, + "collisionTolerance":0, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"8cb6d9eb-f4d0-4e70-8a60-33dd017f0b50","name":"69575369-6061-47a6-b608-894dae3a1efd","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":262, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"0f31cf23-d758-4aec-a384-f40c841e8042","blendMode":0,"displayName":"default","isLocked":false,"name":"0f31cf23-d758-4aec-a384-f40c841e8042","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"spr_cyclone_launcher", + "nineSlice":null, + "origin":9, + "parent":{ + "name":"packs", + "path":"folders/Sprites/Marine Viewer/packs.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"v1", + "%Name":"spr_cyclone_launcher", + "autoRecord":true, + "backdropHeight":768, + "backdropImageOpacity":0.5, + "backdropImagePath":"", + "backdropWidth":1366, + "backdropXOffset":0.0, + "backdropYOffset":0.0, + "events":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "eventStubScript":null, + "eventToFunction":{}, + "length":1.0, + "lockOrigin":false, + "moments":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "name":"spr_cyclone_launcher", + "playback":1, + "playbackSpeed":30.0, + "playbackSpeedType":0, + "resourceType":"GMSequence", + "resourceVersion":"2.0", + "showBackdrop":true, + "showBackdropImage":false, + "timeUnits":1, + "tracks":[ + {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"8cb6d9eb-f4d0-4e70-8a60-33dd017f0b50","path":"sprites/spr_cyclone_launcher/spr_cyclone_launcher.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"f0c1f3a8-3480-46bb-990e-e40fbdd3727f","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange":null, + "volume":1.0, + "xorigin":7, + "yorigin":45, + }, + "swatchColours":null, + "swfPrecision":2.525, + "textureGroupId":{ + "name":"MarineViewer", + "path":"texturegroups/MarineViewer", + }, + "type":0, + "VTile":false, + "width":181, +} \ No newline at end of file From fcb610995f4f48f43221b6946e44dddf194bf570 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Sun, 18 May 2025 21:44:48 +0300 Subject: [PATCH 34/47] Needle sniper > Deathwatch Sniper --- objects/obj_shop/Create_0.gml | 4 +++- scripts/scr_culture_visuals/scr_culture_visuals.gml | 2 +- scripts/scr_weapon/scr_weapon.gml | 10 +++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/objects/obj_shop/Create_0.gml b/objects/obj_shop/Create_0.gml index c9689cc4b5..6d2a62790c 100644 --- a/objects/obj_shop/Create_0.gml +++ b/objects/obj_shop/Create_0.gml @@ -541,11 +541,13 @@ if (shop = "equipment") { forge_cost[i] = 200; item_stocked[i] = scr_item_count(item[i]); item_cost[i] = 10; + if (global.chapter_name == "Deathwatch"){ i += 1; - item[i] = "Needle Sniper Rifle"; + item[i] = "Deathwatch Sniper Rifle"; forge_cost[i] = 500; item_stocked[i] = scr_item_count(item[i]); item_cost[i] = 200; + } i += 1; item[i] = "Missile Launcher"; forge_cost[i] = 300; diff --git a/scripts/scr_culture_visuals/scr_culture_visuals.gml b/scripts/scr_culture_visuals/scr_culture_visuals.gml index 6ffc9660d2..449eff1714 100644 --- a/scripts/scr_culture_visuals/scr_culture_visuals.gml +++ b/scripts/scr_culture_visuals/scr_culture_visuals.gml @@ -1967,7 +1967,7 @@ global.weapon_visual_data = { ] }, -"Needle Sniper Rifle": { +"Deathwatch Sniper Rifle": { base: { weapon_data: { display_type: "melee_twohand", diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 5240bc8a78..87eba4aa40 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -1015,13 +1015,13 @@ global.weapons = { "tags": ["plasma","energy","heavy_ranged", "dreadnought"] }, "Sniper Rifle": { - "abbreviation": "SnprRfl", + "abbreviation": "SnpRfl", "attack": { "standard": 180, "master_crafted": 220, "artifact": 320 }, - "description": "The Sniper Rifle fires a solid shell over long range and boasts powerful telescopic sights to assist, allowing the user to target enemy weak points and distant foes.", + "description": "A form of Needle sniper rifle. Boasts a powerful telescopic sight that allows the wielder to target enemy weak points and distant foes with extreme accuracy, firing slivers of crystallized toxins.", "melee_hands": 1, "ranged_hands": 2, "ammo": 20, @@ -1030,14 +1030,14 @@ global.weapons = { "arp": 1, "tags": ["precision", "rifle"] }, - "Needle Sniper Rifle": { - "abbreviation": "NdlSnpr", + "Deathwatch Sniper Rifle": { + "abbreviation": "DwSnpRfl", "attack": { "standard": 250, "master_crafted": 300, "artifact": 350 }, - "description": "The Needle Sniper Rifle is a deadly weapon that uses both directed lasers and crystallised neurotoxic needles to dispatch enemies, commonly favoured by assasins and Deathwatch scouts.", + "description": "A heavy Needler sniper rifle used by the Deathwatch for long-range anti-personnel and anti-materiel work. A highly-respected and revered weapon, it is often selected as the weapon of choice for snipers in many Deathwatch Kill-teams.", "melee_hands": 1, "ranged_hands": 2, "ammo": 20, From d1ba9847c83f5d4bf87574e0880aa9aa53a1ffc2 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Mon, 19 May 2025 03:25:02 +0300 Subject: [PATCH 35/47] Bonus ammo from heavy packs, hopefully --- .../scr_player_combat_weapon_stacks.gml | 16 ++++++++++++++-- scripts/scr_weapon/scr_weapon.gml | 19 +++++++------------ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml index 9dfd28f6ec..7a28934439 100644 --- a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml +++ b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml @@ -34,7 +34,19 @@ function add_data_to_stack (stack_index, weapon, unit_damage=false, head_role=fa wep_num[stack_index]++; splash[stack_index]=weapon.spli; wep[stack_index]=weapon.name; - if (obj_ncombat.started=0) then ammo[stack_index]=weapon.ammo; + + if (obj_ncombat.started=0) { + ammo[stack_index] = weapon.ammo; + + if (is_struct(unit)) { + var _mobi = unit.get_mobility_data(); + if (is_struct(_mobi) && _mobi.has_tag("bonus_ammo")) { + ammo[stack_index] = weapon.ammo * 4; + } + } else if (unit == "vehicle") { + ammo[stack_index] = weapon.ammo * 10; + } + } if (unit!="none"){//this stops a potential infinite loop of secondary profiles add_second_profiles_to_stack(weapon, head_role, unit); @@ -272,7 +284,7 @@ function scr_player_combat_weapon_stacks() { if (is_struct(weapon)){ for (j=0;j<=40;j++){ if (wep[j]==""||wep[j]==weapon.name){ - add_data_to_stack(j,weapon); + add_data_to_stack(j,weapon,,,"vehicle"); break; } } diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 87eba4aa40..99457ed835 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -801,7 +801,7 @@ global.weapons = { }, "description": "A significantly heavier flamer typically utilized on vehicle mounts. To carry them on foot requires Power Armor.", "melee_hands": 1, - "ranged_hands": 2.25, + "ranged_hands": 2, "ammo": 8, "range": 4, "spli": 20, @@ -862,8 +862,7 @@ global.weapons = { "artifact": 1000 }, "description": "A huge vehicle-mounted flame weapon that fires with explosive force. The reservoir is liable to explode.", - "melee_hands": 0, - "ranged_hands": 3, + "ranged_hands": 5, "ammo": 0, "range": 4.1, "spli": 20, @@ -911,7 +910,7 @@ global.weapons = { }, "description": "Though bearing longer range than the Meltagun, this weapon's great size usually restricts it to vehicles though those with Power Armor can carry this cumbersome weapon into battle.", "melee_hands": 1, - "ranged_hands": 2.25, + "ranged_hands": 2, "ammo": 8, "range": 4.1, "spli": 10, @@ -1007,7 +1006,7 @@ global.weapons = { }, "description": "A heavy variant of the plasma gun, its power output is significantly higher and its damage capability shows. However, it maintains the overheating risk of the Plasma Gun", "melee_hands": 1, - "ranged_hands": 3, + "ranged_hands": 2, "ammo": 16, "range": 10, "spli": 8, @@ -1071,7 +1070,7 @@ global.weapons = { }, "description": "A rapid-firing weapon able to use a wide variety of ammunition, from mass-reactive explosive to solid shells. It has been found to be incredibly effective against large groups of targets and even Traitor Astartes to an extent.", "melee_hands": 0, - "ranged_hands": 2.25, + "ranged_hands": 2, "ammo": 25, "range": 14, "spli": 12, @@ -1120,7 +1119,7 @@ global.weapons = { }, "description": "A formidable laser weapon, the lascannon can pierce most vehicles or power armored targets from a tremendous range. The weapon is known for its reliability in combat.", "melee_hands": 1, - "ranged_hands": 2.25, + "ranged_hands": 2, "ammo": 8, "range": 20, "spli": 1, @@ -1767,8 +1766,6 @@ global.weapons = { "artifact": 1100 }, "description": "A heavy rotary autocannon with a devastating fire rate that can be counted in the hundreds per minute, in a twin mount. It is incredibly effective against infantry and lightly armored targets.", - "melee_hands": 2.1, - "ranged_hands": 2.25, "ammo": 5, "range": 12, "spli": 40, @@ -1816,7 +1813,6 @@ global.weapons = { }, "description": "A heavy variant of the plasma gun, its power output is significantly higher and its damage capability shows. However, it is mounted in a tank turret.", "melee_hands": 1, - "ranged_hands": 3, "ammo": 16, "range": 14, "spli": 12, @@ -2781,8 +2777,7 @@ global.gear = { "master_crafted": 10, "artifact": 15 }, - "melee_hands": -1, - "ranged_hands": 1, + "tags": ["bonus_ammo"] }, "Servo-arm": { "abbreviation": "SrvArm", From 918e192a3555a613ee45035fd5f67bfeccf29d99 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Mon, 19 May 2025 03:30:06 +0300 Subject: [PATCH 36/47] Dreadnought ammo bonus and smaller multipliers --- .../scr_player_combat_weapon_stacks.gml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml index 7a28934439..127e4817de 100644 --- a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml +++ b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml @@ -39,12 +39,17 @@ function add_data_to_stack (stack_index, weapon, unit_damage=false, head_role=fa ammo[stack_index] = weapon.ammo; if (is_struct(unit)) { + var _armour = unit.get_armour_data(); + if (is_struct(_armour) && _armour.has_tag("dreadnought")) { + ammo[stack_index] = weapon.ammo * 3; + } + var _mobi = unit.get_mobility_data(); if (is_struct(_mobi) && _mobi.has_tag("bonus_ammo")) { - ammo[stack_index] = weapon.ammo * 4; + ammo[stack_index] = weapon.ammo * 2; } } else if (unit == "vehicle") { - ammo[stack_index] = weapon.ammo * 10; + ammo[stack_index] = weapon.ammo * 4; } } From be4119bf72594e1337a72f816b5520b0cb402229 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Mon, 19 May 2025 16:04:09 +0300 Subject: [PATCH 37/47] Trying to do something to the enemy damage --- scripts/scr_clean/scr_clean.gml | 22 ++++++++++++++++------ scripts/scr_shoot/scr_shoot.gml | 12 +++--------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/scripts/scr_clean/scr_clean.gml b/scripts/scr_clean/scr_clean.gml index 9654735677..43eb5b3196 100644 --- a/scripts/scr_clean/scr_clean.gml +++ b/scripts/scr_clean/scr_clean.gml @@ -110,7 +110,7 @@ function check_dead_marines(unit_struct, unit_index) { return unit_lost; } -function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_damage, hostile_weapon, hostile_range, hostile_splash) { +function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_damage, hostile_weapon, hostile_range, hostile_splash, weapon_index_position) { // Converts enemy scr_shoot damage into player marine or vehicle casualties. // // Parameters: @@ -132,6 +132,15 @@ function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_dam var man_hits = 0; var total_hits = hostile_shots; var unit_type = ""; + var armour_pierce = apa[weapon_index_position]; + var _armour_mod = 1; + if (armour_pierce == 1) { + _armour_mod = 2; + } else if (armour_pierce == 0) { + _armour_mod = 4; + } else if (armour_pierce == -1) { + _armour_mod = 6; + } // ### Vehicle Damage Processing ### if (!target_is_infantry && veh > 0) { @@ -156,7 +165,7 @@ function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_dam you = random_index; // Apply damage - var _modified_damage = hostile_damage - veh_ac[you]; + var _modified_damage = hostile_damage - veh_ac[you] * _armour_mod; if (_modified_damage < 0) { _modified_damage = 0.25; } @@ -220,12 +229,13 @@ function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_dam // Apply damage var _shot_luck = roll_dice_chapter(1, 100, "low"); var _modified_damage = 0; - if (_shot_luck <= 5) { - _modified_damage = hostile_damage - (2 * marine_ac[marine_index]); - } else if (_shot_luck > 95) { + var _marine_armour = marine_ac[marine_index] * _armour_mod; + if (_shot_luck == 1) { + _modified_damage = hostile_damage - (2 * _marine_armour); + } else if (_shot_luck == 100) { _modified_damage = hostile_damage; } else { - _modified_damage = hostile_damage - marine_ac[marine_index]; + _modified_damage = hostile_damage - _marine_armour; } if (_modified_damage > 0) { diff --git a/scripts/scr_shoot/scr_shoot.gml b/scripts/scr_shoot/scr_shoot.gml index b15e33c1b1..ef43a1a068 100644 --- a/scripts/scr_shoot/scr_shoot.gml +++ b/scripts/scr_shoot/scr_shoot.gml @@ -97,7 +97,7 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat hostile_range = range[weapon_index_position]; hostile_splash = attack_count_mod; - scr_clean(target_object, hostile_type, hit_number, hostile_damage, hostile_weapon, hostile_range, hostile_splash); + scr_clean(target_object, hostile_type, hit_number, hostile_damage, hostile_weapon, hostile_range, hostile_splash, weapon_index_position); } } else if ((damage_type == "att") && (aggregate_damage > 0) && (stop == 0) && (shots_fired > 0)) { var damage_per_weapon, hit_number; @@ -132,11 +132,8 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat hostile_type = 1; hostile_range = range[weapon_index_position]; hostile_splash = attack_count_mod; - if (hostile_splash > 1) { - hostile_damage += attack_count_mod * 3; - } - scr_clean(target_object, hostile_type, hit_number, hostile_damage, hostile_weapon, hostile_range, hostile_splash); + scr_clean(target_object, hostile_type, hit_number, hostile_damage, hostile_weapon, hostile_range, hostile_splash, weapon_index_position); } } else if (((damage_type == "arp") || (damage_type == "dread")) && (armour_pierce > 0) && (stop == 0) && (shots_fired > 0)) { var damage_per_weapon, hit_number; @@ -168,9 +165,6 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat hostile_range = range[weapon_index_position]; hostile_splash = attack_count_mod; hostile_damage = damage_per_weapon / hit_number; - if (hostile_splash > 1) { - hostile_damage += attack_count_mod * 3; - } if (melee_or_ranged == "wall") { var dest = 0; @@ -190,7 +184,7 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat target_object.hostile_shooters = (wep_owner[weapon_index_position] == "assorted") ? 999 : 1; hostile_type = 0; - scr_clean(target_object, hostile_type, hit_number, hostile_damage, hostile_weapon, hostile_range, hostile_splash); + scr_clean(target_object, hostile_type, hit_number, hostile_damage, hostile_weapon, hostile_range, hostile_splash, weapon_index_position); } } } From e85ca01f77b319e98e0ebd118696747fdd04b1da Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Mon, 19 May 2025 23:46:30 +0300 Subject: [PATCH 38/47] Fix terminator mobi restriction --- .../scr_unit_equip_functions/scr_unit_equip_functions.gml | 6 +++++- scripts/scr_weapon/scr_weapon.gml | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/scripts/scr_unit_equip_functions/scr_unit_equip_functions.gml b/scripts/scr_unit_equip_functions/scr_unit_equip_functions.gml index 1c1a8f1256..e58c3b7ccb 100644 --- a/scripts/scr_unit_equip_functions/scr_unit_equip_functions.gml +++ b/scripts/scr_unit_equip_functions/scr_unit_equip_functions.gml @@ -344,10 +344,14 @@ function scr_update_unit_mobility_item(new_mobility_item, from_armoury = true, t var _armour_data = get_armour_data(); if (is_struct(_armour_data)) { if (_armour_data.has_tag("terminator") && !_mobility_data.has_tag("terminator")) { + log_error($"Failed to equip {new_mobility_item} for {name()} - can't use with terminator armour! (Current: {armour()})"); + return false; + } else if (!_armour_data.has_tag("terminator") && _mobility_data.has_tag("terminator_only")) { log_error($"Failed to equip {new_mobility_item} for {name()} - requires terminator armour! (Current: {armour()})"); return false; } - if (new_mobility_item == "Jump Pack" && !_armour_data.has_tag("power_armour")) { + + if (_mobility_data.has_tag("power_only") && !_armour_data.has_tag("power_armour")) { log_error($"Failed to equip {new_mobility_item} for {name()} - requires power armour! (Current: {armour()})"); return false; } diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 99457ed835..4b190be6d1 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -19,7 +19,7 @@ global.weapons = { "standard": 30, "master_crafted": 35, "artifact": 40 - }, + } }, "Boarding Shield": { "description": "Protects twice as well when boarding. Used in siege or boarding operations, this shield offers additional protection. It may be used with a 2-handed ranged weapon.", @@ -2767,7 +2767,7 @@ global.gear = { "master_crafted": 30, "artifact": 35 }, - "tags": ["jump"], + "tags": ["power_only", "jump"], }, "Heavy Weapons Pack": { "abbreviation": "HvyWpPck", @@ -2825,7 +2825,7 @@ global.gear = { "description": "Designed for use with Terminator armour. Valuable for their ability to launch missiles rapidly from the twin racks, this back-mounted missile system also makes up for some of Terminator armour's inflexibility by providing more options in combat.", "melee_hands": -0.5, "ranged_hands": -0.5, - "tags": ["terminator"] + "tags": ["terminator_only"] }, // Add more mobility items as needed... } From 9d2e484cfd021df8aa30f498d40884f7f2b6f204 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Mon, 19 May 2025 23:49:31 +0300 Subject: [PATCH 39/47] Proper restriction fix --- objects/obj_popup/Draw_0.gml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/objects/obj_popup/Draw_0.gml b/objects/obj_popup/Draw_0.gml index d39c60fcc5..226307db8c 100644 --- a/objects/obj_popup/Draw_0.gml +++ b/objects/obj_popup/Draw_0.gml @@ -1471,13 +1471,13 @@ try { if (armour_data.has_tag("terminator") && !mobility_data.has_tag("terminator")){ n_good5 = 0; warning = "Cannot use this with Terminator Armour."; - } else if (!armour_data.has_tag("terminator") && mobility_data.has_tag("terminator")){ + } else if (!armour_data.has_tag("terminator") && mobility_data.has_tag("terminator_only")){ n_good5 = 0; warning = "Cannot use this without Terminator Armour."; } else if (armour_data.has_tag("dreadnought") && !mobility_data.has_tag("dreadnought")) { n_good5 = 0; warning = "Cannot use this with Dreadnought Armour."; - } else if (!armour_data.has_tag("dreadnought") && mobility_data.has_tag("dreadnought")) { + } else if (!armour_data.has_tag("dreadnought") && mobility_data.has_tag("dreadnought_only")) { n_good5 = 0; warning = "Cannot use this without Dreadnought Armour."; } From 4a74bfd386e246f0eb1a3a429960e7fe0a8483e6 Mon Sep 17 00:00:00 2001 From: Da Fist <144086663+KRdaMystic@users.noreply.github.com> Date: Fri, 20 Jun 2025 13:45:59 +0900 Subject: [PATCH 40/47] feat: ARP and enemy weapon changes finalized (#877) --- objects/obj_enunit/Alarm_1.gml | 414 ++++++++++++------------ scripts/scr_clean/scr_clean.gml | 17 +- scripts/scr_en_weapon/scr_en_weapon.gml | 344 ++++++++++---------- scripts/scr_weapon/scr_weapon.gml | 12 +- 4 files changed, 400 insertions(+), 387 deletions(-) diff --git a/objects/obj_enunit/Alarm_1.gml b/objects/obj_enunit/Alarm_1.gml index 16bbcf6f19..5a01ac3914 100644 --- a/objects/obj_enunit/Alarm_1.gml +++ b/objects/obj_enunit/Alarm_1.gml @@ -73,7 +73,7 @@ repeat(20) { j += 1; if (obj_ncombat.started = 0) { if (dudes[j] = "Malcadon Spyrer") { - dudes_ac[j] = 35; + dudes_ac[j] = 25; dudes_hp[j] = 200; } } @@ -85,7 +85,7 @@ repeat(20) { if ((obj_ncombat.started = 0) or(neww = 1)) or(dudes_num[j] > 1) { if (dudes[j] = "Greater Daemon of Khorne") { - dudes_ac[j] = 12; + dudes_ac[j] = 25; dudes_hp[j] = 700; } } @@ -97,28 +97,28 @@ repeat(20) { } if ((obj_ncombat.started = 0) or(neww = 1)) or(dudes_num[j] > 1) { if (dudes[j] = "Greater Daemon of Slaanesh") { - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 500; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.3; } } if (dudes[j] = "Greater Daemon of Slaanesh") { scr_en_weapon("Demon Melee", true, dudes_num[j], dudes[j], j); scr_en_weapon("Lash Whip", true, dudes_num[j], dudes[j], j); - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.3; medi += dudes_num[j]; } if ((obj_ncombat.started = 0) or(neww = 1)) or(dudes_num[j] > 1) { if (dudes[j] = "Greater Daemon of Nurgle") { - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 900; - dudes_dr[j] = 0.2; + dudes_dr[j] = 0.4; } } if (dudes[j] = "Greater Daemon of Nurgle") { scr_en_weapon("Demon Melee", true, dudes_num[j], dudes[j], j); scr_en_weapon("Nurgle Vomit", true, dudes_num[j], dudes[j], j); - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.4; medi += dudes_num[j]; } if ((obj_ncombat.started = 0) or(neww = 1)) or(dudes_num[j] > 1) { @@ -136,28 +136,28 @@ repeat(20) { if (dudes[j] = "Bloodletter") { scr_en_weapon("Bloodletter Melee", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 200; men += dudes_num[j]; dudes_dr[j] = 0.4; } if (dudes[j] = "Daemonette") { scr_en_weapon("Daemonette Melee", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 150; men += dudes_num[j]; dudes_dr[j] = 0.3; } if (dudes[j] = "Pink Horror") { scr_en_weapon("Eldritch Fire", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 100; men += dudes_num[j]; dudes_dr[j] = 0.5; } if (dudes[j] = "Plaguebearer") { scr_en_weapon("Plaguebearer Melee", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 5; + dudes_ac[j] = 10; dudes_hp[j] = 300; men += dudes_num[j]; dudes_dr[j] = 0.4; @@ -170,13 +170,13 @@ repeat(20) { dudes_hp[j] = 300; veh += dudes_num[j]; dudes_vehicle[j] = 1; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; } if (dudes[j] = "Soul Grinder") { scr_en_weapon("Warpsword", false, dudes_num[j], dudes[j], j); scr_en_weapon("Iron Claw", false, dudes_num[j], dudes[j], j); scr_en_weapon("Battle Cannon", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 40; dudes_hp[j] = 350; veh += dudes_num[j]; dudes_vehicle[j] = 1; @@ -184,7 +184,7 @@ repeat(20) { } if (dudes[j] = "Maulerfiend") { scr_en_weapon("Maulerfiend Claws", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 40; dudes_hp[j] = 250; veh += dudes_num[j]; dudes_vehicle[j] = 1; @@ -350,7 +350,7 @@ if __b__ { if (dudes[j] = "Ogryn") { scr_en_weapon("Ripper Gun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Ogryn Melee", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 120; dudes_dr[j] = 0.75; men += dudes_num[j]; @@ -359,26 +359,27 @@ if __b__ { if (dudes[j] = "Chimera") { scr_en_weapon("Multi-Laster", false, dudes_num[j], dudes[j], j); scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Basilisk") { scr_en_weapon("Earthshaker Cannon", false, dudes_num[j], dudes[j], j); scr_en_weapon("Storm Bolter", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 30; dudes_hp[j] = 150; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Leman Russ Battle Tank") { scr_en_weapon("Battle Cannon", false, dudes_num[j], dudes[j], j); scr_en_weapon("Lascannon", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 45; + dudes_ac[j] = 40; dudes_hp[j] = 250; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -387,14 +388,14 @@ if __b__ { scr_en_weapon("Lascannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 250; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Vendetta") { scr_en_weapon("Twin-Linked Lascannon", false, dudes_num[j] * 3, dudes[j], j); dudes_ac[j] = 20; - dudes_hp[j] = 300; + dudes_hp[j] = 200; dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; @@ -422,14 +423,16 @@ if __b__ { if (dudes[j] = "Thallax") { scr_en_weapon("Lightning Gun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Thallax Melee", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 80; + dudes_ac[j] = 25; + dudes_hp[j] = 100; + dudes_dr[j] = 0.8; men += dudes_num[j]; } if (dudes[j] = "Praetorian Servitor") { scr_en_weapon("Phased Plasma-fusil", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 25; + dudes_ac[j] = 15; dudes_hp[j] = 150; + dudes_dr[j] = 0.85; medi += dudes_num[j]; } } @@ -448,7 +451,7 @@ if __b__ { scr_en_weapon("Blessed Weapon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Laser Mace", true, dudes_num[j], dudes[j], j); scr_en_weapon("Infernus Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 200; } @@ -458,14 +461,14 @@ if __b__ { if (dudes[j] = "Palatine") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 100; men += dudes_num[j]; dudes_dr[j] = 0.5; } if (dudes[j] = "Priest") { scr_en_weapon("Laspistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 0; + dudes_ac[j] = 5; dudes_hp[j] = 50; men += dudes_num[j]; dudes_dr[j] = 0.5; @@ -473,7 +476,7 @@ if __b__ { if (dudes[j] = "Arco-Flagellent") { scr_en_weapon("Electro-Flail", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 0; + dudes_ac[j] = 5; dudes_hp[j] = 150; men += dudes_num[j]; dudes_dr[j] = 0.7; @@ -482,21 +485,21 @@ if __b__ { if (dudes[j] = "Celestian") { scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 60; men += dudes_num[j]; dudes_dr[j] = 0.50; } if (dudes[j] = "Mistress") { scr_en_weapon("Neural Whip", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 60; men += dudes_num[j]; dudes_dr[j] = 0.50; } if (dudes[j] = "Sister Repentia") { scr_en_weapon("Eviscerator", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 0; + dudes_ac[j] = 5; dudes_hp[j] = 75; men += dudes_num[j]; dudes_dr[j] = 0.75; @@ -511,7 +514,7 @@ if __b__ { scr_en_weapon("Bolter", true, dudes_num[j] - nem, dudes[j], j); } scr_en_weapon("Sarissa", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 60; men += dudes_num[j]; dudes_dr[j] = 0.75; @@ -519,7 +522,7 @@ if __b__ { if (dudes[j] = "Seraphim") { scr_en_weapon("Seraphim Pistols", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 60; men += dudes_num[j]; dudes_dr[j] = 0.6; @@ -527,7 +530,7 @@ if __b__ { if (dudes[j] = "Dominion") { scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Meltabomb", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 60; men += dudes_num[j]; dudes_dr[j] = 0.75; @@ -541,34 +544,34 @@ if __b__ { scr_en_weapon("Heavy Bolter", true, dudes_num[j] - nem, dudes[j], j); } scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 60; men += dudes_num[j]; dudes_dr[j] = 0.6; } - if (dudes[j] = "Follower") { + if (dudes[j] = "Follower") { //Frateris Militia scr_en_weapon("Laspistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("melee0.5", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 0; + dudes_ac[j] = 5; dudes_hp[j] = 30; men += dudes_num[j]; } if (dudes[j] = "Rhino") { scr_en_weapon("Storm Bolter", false, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Chimera") { scr_en_weapon("Heavy Flamer", false, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -577,18 +580,18 @@ if __b__ { scr_en_weapon("Twin Linked Heavy Flamers", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 300; - dudes_dr[j] = 0.35; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Exorcist") { scr_en_weapon("Exorcist Missile Launcher", false, dudes_num[j], dudes[j], j); scr_en_weapon("Storm Bolter", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 30; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 200; } - dudes_dr[j] = 0.55; + dudes_dr[j] = 0.50; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -596,9 +599,9 @@ if __b__ { if (dudes[j] = "Penitent Engine") { scr_en_weapon("Close Combat Weapon", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Heavy Flamer", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 35; + dudes_ac[j] = 20; dudes_hp[j] = 150; - dudes_dr[j] = 0.50; + dudes_dr[j] = 0.8; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -625,7 +628,7 @@ if __b__ { if (dudes[j] = "Leader") { scr_en_weapon("Singing Spear", true, dudes_num[j], dudes[j], j); scr_en_weapon("Singing Spear Throw", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 150; men += dudes_num[j]; dudes_dr[j] = 0.5; @@ -634,7 +637,7 @@ if __b__ { if (dudes[j] = "Autarch") { scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Fusion Gun", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; + dudes_ac[j] = 15; dudes_hp[j] = 150; dudes_dr[j] = 0.75; men += dudes_num[j]; @@ -642,7 +645,7 @@ if __b__ { if (dudes[j] = "Farseer") { scr_en_weapon("Singing Spear", true, dudes_num[j], dudes[j], j); scr_en_weapon("Singing Spear Throw", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 120; dudes_dr[j] = 0.6; men += dudes_num[j]; @@ -658,15 +661,15 @@ if __b__ { if (dudes[j] = "Avatar") { scr_en_weapon("Wailing Doom", true, dudes_num[j], dudes[j], j); scr_en_weapon("Avatar Smite", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 30; dudes_hp[j] = 300; - dudes_dr[j] = 0.55; + dudes_dr[j] = 0.75; veh += dudes_num[j]; } if (dudes[j] = "Mighty Avatar") { scr_en_weapon("Wailing Doom", true, dudes_num[j], dudes[j], j); scr_en_weapon("Avatar Smite", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 50; + dudes_ac[j] = 40; dudes_hp[j] = 450; dudes_dr[j] = 0.5; veh += dudes_num[j]; @@ -674,16 +677,16 @@ if __b__ { if (dudes[j] = "Godly Avatar") { scr_en_weapon("Wailing Doom", true, dudes_num[j], dudes[j], j); scr_en_weapon("Avatar Smite", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 60; + dudes_ac[j] = 50; dudes_hp[j] = 600; - dudes_dr[j] = 0.40; + dudes_dr[j] = 0.25; veh += dudes_num[j]; } if (dudes[j] = "Ranger") { scr_en_weapon("Ranger Long Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Shuriken Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 5; dudes_hp[j] = 40; dudes_dr[j] = 0.9; men += dudes_num[j]; @@ -691,7 +694,7 @@ if __b__ { if (dudes[j] = "Pathfinder") { scr_en_weapon("Pathfinder Long Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 5; dudes_hp[j] = 60; dudes_dr[j] = 0.8; men += dudes_num[j]; @@ -712,7 +715,7 @@ if __b__ { if (dudes[j] = "Howling Banshee") { scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Shuriken Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 40; dudes_dr[j] = 0.8; men += dudes_num[j]; @@ -728,8 +731,9 @@ if __b__ { scr_en_weapon("Scorpion Chainsword", true, dudes_num[j], dudes[j], j); scr_en_weapon("Shuriken Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Mandiblaster", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 60; + dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Striking Scorpion Exarch") { @@ -738,26 +742,27 @@ if __b__ { scr_en_weapon("Mandiblaster", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 80; + dudes_dr[j] = 0.8; men += dudes_num[j]; } if (dudes[j] = "Fire Dragon") { scr_en_weapon("Fusion Gun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Meltabomb", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; + dudes_ac[j] = 15; dudes_hp[j] = 40; men += dudes_num[j]; } if (dudes[j] = "Fire Dragon Exarch") { scr_en_weapon("Firepike", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; + dudes_ac[j] = 15; dudes_hp[j] = 60; men += dudes_num[j]; } if (dudes[j] = "Warp Spider") { scr_en_weapon("Deathspinner", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 40; dudes_dr[j] = 0.9; men += dudes_num[j]; @@ -796,7 +801,7 @@ if __b__ { if (dudes[j] = "Guardian") { scr_en_weapon("Shuriken Catapult", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 5; dudes_hp[j] = 30; men += dudes_num[j]; } @@ -809,7 +814,7 @@ if __b__ { if (dudes[j] = "Trouper") { scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Fusion Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 50; dudes_dr[j] = 0.25; men += dudes_num[j]; @@ -817,14 +822,14 @@ if __b__ { if (dudes[j] = "Athair") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Harlequin's Kiss", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 75; dudes_dr[j] = 0.25; men += dudes_num[j]; } if (dudes[j] = "Wraithguard") { scr_en_weapon("Wraithcannon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; + dudes_ac[j] = 25; dudes_hp[j] = 125; dudes_dr[j] = 0.70; men += dudes_num[j]; @@ -832,7 +837,7 @@ if __b__ { if (dudes[j] = "Vyper") { scr_en_weapon("Twin Linked Shuriken Catapult", false, dudes_num[j], dudes[j], j); scr_en_weapon("Pulse Laser", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 20; dudes_hp[j] = 100; dudes_dr[j] = 0.8; veh += dudes_num[j]; @@ -842,9 +847,9 @@ if __b__ { scr_en_weapon("Pulse Laser", false, dudes_num[j], dudes[j], j); scr_en_weapon("Shuriken Cannon", false, dudes_num[j], dudes[j], j); scr_en_weapon("Bright Lance", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -859,9 +864,9 @@ if __b__ { } if (dudes[j] = "Nightspinner") { scr_en_weapon("Twin Linked Doomweaver", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -869,7 +874,7 @@ if __b__ { scr_en_weapon("Two Power Fists", false, dudes_num[j], dudes[j], j); scr_en_weapon("Flamer", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Starcannon", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 30; dudes_hp[j] = 200; dudes_dr[j] = 0.5; veh += dudes_num[j]; @@ -881,7 +886,7 @@ if __b__ { scr_en_weapon("Titan Starcannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 50; dudes_hp[j] = 800; - dudes_dr[j] = 0.35; + dudes_dr[j] = 0.25; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -899,18 +904,18 @@ if __b__ { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Rokkit Launcha", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; + dudes_ac[j] = 25; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 600; } veh += dudes_num[j]; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.65; } - if (dudes[j] = "Minor Warboss") { + if (dudes[j] = "Minor Warboss") { // 'Ead Nob scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 150; dudes_dr[j] = 0.75; @@ -920,7 +925,7 @@ if __b__ { if (dudes[j] = "Warboss") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Rokkit Launcha", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; + dudes_ac[j] = 15; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 200; dudes_dr[j] = 0.75; @@ -930,7 +935,7 @@ if __b__ { if (dudes[j] = "Big Warboss") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Rokkit Launcha", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; + dudes_ac[j] = 25; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 300; dudes_dr[j] = 0.5; @@ -940,7 +945,7 @@ if __b__ { if (dudes[j] = "Gretchin") { scr_en_weapon("Grot Blasta", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 0; + dudes_ac[j] = 5; dudes_hp[j] = 15; men += dudes_num[j]; } @@ -962,7 +967,7 @@ if __b__ { if (dudes[j] = "Mekboy") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; + dudes_ac[j] = 15; dudes_hp[j] = 100; dudes_dr[j] = 0.75; men += dudes_num[j]; @@ -970,7 +975,7 @@ if __b__ { if (dudes[j] = "Meganob") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; + dudes_ac[j] = 15; dudes_hp[j] = 150; dudes_dr[j] = 0.6; men += dudes_num[j]; @@ -978,14 +983,14 @@ if __b__ { if (dudes[j] = "Flash Git") { scr_en_weapon("Snazzgun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 100; men += dudes_num[j]; } if (dudes[j] = "Cybork") { scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j); scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 125; dudes_dr[j] = 0.75; men += dudes_num[j]; @@ -994,7 +999,7 @@ if __b__ { if (dudes[j] = "Ard Boy") { scr_en_weapon("Choppa", true, dudes_num[j], dudes[j], j); scr_en_weapon("Slugga", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 80; dudes_dr[j] = 0.9; men += dudes_num[j]; @@ -1027,6 +1032,7 @@ if __b__ { scr_en_weapon("Slugga", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 5; dudes_hp[j] = 80; + dudes_dr[j] = 0.8; dudes_special[j] = "Jetpack"; men += dudes_num[j]; } @@ -1036,8 +1042,8 @@ if __b__ { scr_en_weapon("Big Shoota", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Rokkit Launcha", false, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 30; - dudes_hp[j] = 200; - dudes_dr[j] = 0.5; + dudes_hp[j] = 350; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1045,9 +1051,9 @@ if __b__ { scr_en_weapon("Power Klaw", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Big Shoota", false, dudes_num[j], dudes[j], j); scr_en_weapon("Rokkit Launcha", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 200; - dudes_dr[j] = 0.75; + dudes_ac[j] = 30; + dudes_hp[j] = 300; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1064,36 +1070,36 @@ if __b__ { scr_en_weapon("Plasma Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Fusion Blaster", true, dudes_num[j], dudes[j], j); scr_en_weapon("Cyclic Ion Blaster", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; + dudes_ac[j] = 15; dudes_hp[j] = 300; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.65; men += dudes_num[j]; } if (dudes[j] = "XV8 Bodyguard") { scr_en_weapon("Plasma Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Burst Rifle", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 25; dudes_hp[j] = 200; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.65; men += dudes_num[j]; } if (dudes[j] = "XV8 Crisis") { scr_en_weapon("Plasma Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Missile Pod", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 150; dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "XV8 (Brightknife)") { scr_en_weapon("Fusion Blaster", true, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 15; dudes_hp[j] = 150; dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Shield Drone") { - dudes_ac[j] = 8; + dudes_ac[j] = 5; dudes_hp[j] = 50; men += dudes_num[j]; } @@ -1101,43 +1107,43 @@ if __b__ { if (dudes[j] = "XV88 Broadside") { scr_en_weapon("Smart Missile System", true, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Small Railgun", true, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 12; - dudes_hp[j] = 225; + dudes_ac[j] = 25; + dudes_hp[j] = 250; dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "XV25 Stealthsuit") { scr_en_weapon("Burst Rifle", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; - dudes_hp[j] = 50; + dudes_ac[j] = 15; + dudes_hp[j] = 75; dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Fire Warrior") { scr_en_weapon("Pulse Rifle", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; - dudes_hp[j] = 30; + dudes_ac[j] = 10; + dudes_hp[j] = 40; men += dudes_num[j]; } if (dudes[j] = "Pathfinder") { scr_en_weapon("Rail Rifle", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; - dudes_hp[j] = 30; + dudes_ac[j] = 5; + dudes_hp[j] = 40; men += dudes_num[j]; } if (dudes[j] = "Kroot") { scr_en_weapon("Kroot Rifle", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee2", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 5; - dudes_hp[j] = 30; + dudes_hp[j] = 50; men += dudes_num[j]; } if (dudes[j] = "Vespid") { scr_en_weapon("Vespid Crystal", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee2", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 5; - dudes_hp[j] = 50; + dudes_ac[j] = 10; + dudes_hp[j] = 75; men += dudes_num[j]; } @@ -1145,7 +1151,7 @@ if __b__ { scr_en_weapon("Smart Missile System", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 150; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1154,7 +1160,7 @@ if __b__ { scr_en_weapon("Smart Missile System", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 150; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1171,7 +1177,7 @@ if __b__ { scr_en_weapon("Bonesword", true, dudes_num[j], dudes[j], j); scr_en_weapon("Lashwhip", true, dudes_num[j], dudes[j], j); scr_en_weapon("Heavy Venom Cannon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 25; dudes_hp[j] = 400; dudes_dr[j] = 0.5; men += dudes_num[j]; @@ -1179,7 +1185,7 @@ if __b__ { if (dudes[j] = "Tyrant Guard") { scr_en_weapon("Crushing Claws", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; + dudes_ac[j] = 25; dudes_hp[j] = 200; dudes_dr[j] = 0.6; men += dudes_num[j]; @@ -1187,14 +1193,14 @@ if __b__ { if (dudes[j] = "Tyranid Warrior") { scr_en_weapon("Rending Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Devourer", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 15; dudes_hp[j] = 100; dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Zoanthrope") { scr_en_weapon("Zoanthrope Blast", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 300; dudes_dr[j] = 0.25; men += dudes_num[j]; @@ -1202,9 +1208,9 @@ if __b__ { if (dudes[j] = "Carnifex") { scr_en_weapon("Carnifex Claws", false, dudes_num[j], dudes[j], j); scr_en_weapon("Venom Cannon", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 30; dudes_hp[j] = 300; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1224,27 +1230,27 @@ if __b__ { if (dudes[j] = "Cultist") { scr_en_weapon("Autogun", true, dudes_num[j], dudes[j], j); scr_en_weapon("melee0.5", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 0; + dudes_ac[j] = 10; dudes_hp[j] = 35; men += dudes_num[j]; } if (dudes[j] = "Genestealer") { scr_en_weapon("Genestealer Claws", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 5; + dudes_ac[j] = 10; dudes_hp[j] = 75; men += dudes_num[j]; } if (dudes[j] = "Genestealer Patriarch") { scr_en_weapon("Genestealer Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Witchfire", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 15; dudes_hp[j] = 300; dudes_dr[j] = 0.60; men += dudes_num[j]; } if (dudes[j] = "Armoured Limousine") { scr_en_weapon("Autogun", false, dudes_num[j] * 4, dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 20; dudes_hp[j] = 150; dudes_dr[j] = 0.75; veh += dudes_num[j]; @@ -1253,7 +1259,7 @@ if __b__ { if (dudes[j] = "Lictor") { scr_en_weapon("Lictor Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Flesh Hooks", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 15; dudes_hp[j] = 300; dudes_dr[j] = 0.60; men += dudes_num[j]; @@ -1270,19 +1276,19 @@ if __b__ { repeat(20) { j += 1; - if (dudes[j] = "Leader") and(obj_controller.faction_gender[10] = 1) { + if (dudes[j] = "Leader") and(obj_controller.faction_gender[10] = 1) { // Terminator Chaos Lord scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 35; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 300; } men += dudes_num[j]; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.5; } - if (dudes[j] = "Leader") and(obj_controller.faction_gender[10] = 2) { + if (dudes[j] = "Leader") and(obj_controller.faction_gender[10] = 2) { // World Eater Lord scr_en_weapon("Khorne Demon Melee", true, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 25; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 300; } @@ -1293,8 +1299,8 @@ if __b__ { if (dudes[j] = "Fallen") { scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 120; + dudes_ac[j] = 25; + dudes_hp[j] = 150; men += dudes_num[j]; dudes_dr[j] = 0.5; } @@ -1302,7 +1308,7 @@ if __b__ { if (dudes[j] = "Chaos Lord") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; + dudes_ac[j] = 25; dudes_hp[j] = 150; dudes_dr[j] = 0.5; men += dudes_num[j]; @@ -1310,8 +1316,8 @@ if __b__ { if (dudes[j] = "Chaos Sorcerer") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); scr_en_weapon("Force Staff", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 100; + dudes_ac[j] = 25; + dudes_hp[j] = 150; dudes_dr[j] = 0.5; men += dudes_num[j]; } @@ -1319,8 +1325,8 @@ if __b__ { scr_en_weapon("Chainfist", true, dudes_num[j], dudes[j], j); scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Flamer", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 30; - dudes_hp[j] = 100; + dudes_ac[j] = 25; + dudes_hp[j] = 150; dudes_dr[j] = 0.5; men += dudes_num[j]; } @@ -1329,8 +1335,8 @@ if __b__ { scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j); scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j); scr_en_weapon("Combi-Flamer", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; - dudes_hp[j] = 100; + dudes_ac[j] = 35; + dudes_hp[j] = 125; men += dudes_num[j]; dudes_dr[j] = 0.5; } @@ -1338,31 +1344,31 @@ if __b__ { scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j); scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j); scr_en_weapon("Combi-Flamer", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; - dudes_hp[j] = 120; + dudes_ac[j] = 35; + dudes_hp[j] = 150; men += dudes_num[j]; - dudes_dr[j] = 0.4; + dudes_dr[j] = 0.5; } if (dudes[j] = "World Eaters Terminator") { scr_en_weapon("Power Fist", true, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; - dudes_hp[j] = 120; + dudes_ac[j] = 35; + dudes_hp[j] = 150; men += dudes_num[j]; - dudes_dr[j] = 0.4; + dudes_dr[j] = 0.5; } if (dudes[j] = "Obliterator") { scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j); scr_en_weapon("Obliterator Weapon", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 40; - dudes_hp[j] = 200; + dudes_ac[j] = 25; + dudes_hp[j] = 300; dudes_dr[j] = 0.5; men += dudes_num[j]; } if (dudes[j] = "Chaos Chosen") { scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 15; dudes_hp[j] = 125; dudes_dr[j] = 0.85; men += dudes_num[j]; @@ -1370,15 +1376,15 @@ if __b__ { if (dudes[j] = "Venerable Chaos Chosen") { scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 125; + dudes_ac[j] = 15; + dudes_hp[j] = 150; men += dudes_num[j]; dudes_dr[j] = 0.75; } if (dudes[j] = "Possessed") { scr_en_weapon("Possessed Claws", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 17; + dudes_ac[j] = 15; dudes_hp[j] = 150; dudes_dr[j] = 0.5; men += dudes_num[j]; @@ -1386,7 +1392,7 @@ if __b__ { if (dudes[j] = "Chaos Space Marine") { scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 15; dudes_hp[j] = 100; dudes_dr[j] = 0.9; men += dudes_num[j]; @@ -1394,7 +1400,7 @@ if __b__ { if (dudes[j] = "Havoc") { scr_en_weapon("Missile Launcher", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 15; dudes_hp[j] = 100; dudes_dr[j] = 0.9; men += dudes_num[j]; @@ -1402,7 +1408,7 @@ if __b__ { if (dudes[j] = "Raptor") { scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j); scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 15; dudes_hp[j] = 100; dudes_dr[j] = 0.75; dudes_special[j] = "Jump Pack"; @@ -1412,7 +1418,7 @@ if __b__ { if (dudes[j] = "World Eater") { scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 15; dudes_hp[j] = 100; dudes_dr[j] = 0.75; men += dudes_num[j]; @@ -1420,48 +1426,48 @@ if __b__ { if (dudes[j] = "World Eaters Veteran") { scr_en_weapon("Combi-Flamer", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 100; - dudes_dr[j] = 0.7; + dudes_ac[j] = 15; + dudes_hp[j] = 125; + dudes_dr[j] = 0.65; men += dudes_num[j]; } if (dudes[j] = "Khorne Berzerker") { scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j); scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 100; - dudes_dr[j] = 0.65; + dudes_ac[j] = 15; + dudes_hp[j] = 200; + dudes_dr[j] = 0.6; men += dudes_num[j]; } if (dudes[j] = "Plague Marine") { scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j); scr_en_weapon("Poison Chainsword", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 150; - dudes_dr[j] = 0.5; + dudes_ac[j] = 15; + dudes_hp[j] = 180; + dudes_dr[j] = 0.6; men += dudes_num[j]; } if (dudes[j] = "Noise Marine") { scr_en_weapon("Sonic Blaster", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 100; + dudes_ac[j] = 15; + dudes_hp[j] = 125; dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Rubric Marine") { scr_en_weapon("Rubric Bolter", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; - dudes_hp[j] = 125; - dudes_dr[j] = 0.65; + dudes_ac[j] = 15; + dudes_hp[j] = 150; + dudes_dr[j] = 0.75; men += dudes_num[j]; } if (dudes[j] = "Rubric Sorcerer") { scr_en_weapon("Witchfire", true, dudes_num[j], dudes[j], j); scr_en_weapon("Force Staff", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 15; dudes_hp[j] = 150; dudes_dr[j] = 0.5; men += dudes_num[j]; @@ -1478,33 +1484,33 @@ if __b__ { scr_en_weapon("Meltagun", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 300; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Rhino") { scr_en_weapon("Storm Bolter", false, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Predator") { scr_en_weapon("Lascannon", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Twin Linked Lascannon", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 45; + dudes_ac[j] = 40; dudes_hp[j] = 350; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Vindicator") { scr_en_weapon("Demolisher Cannon", false, dudes_num[j], dudes[j], j); scr_en_weapon("Havoc Launcher", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 45; + dudes_ac[j] = 40; dudes_hp[j] = 300; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1513,15 +1519,15 @@ if __b__ { scr_en_weapon("Twin Linked Lascannon", false, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 50; dudes_hp[j] = 400; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Heldrake") { scr_en_weapon("Baleflame", false, dudes_num[j] * 5, dudes[j], j); - dudes_ac[j] = 50; + dudes_ac[j] = 40; dudes_hp[j] = 400; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1540,7 +1546,7 @@ if __b__ { if (dudes[j] = "Arch Heretic") { scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 15; dudes_hp[j] = 40; dudes_dr[j] = 0.75; men += dudes_num[j]; @@ -1548,28 +1554,28 @@ if __b__ { if (dudes[j] = "Cultist Elite") { scr_en_weapon("Lasgun", true, dudes_num[j], dudes[j], j); scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 40; dudes_dr[j] = 0.9; men += dudes_num[j]; } if (dudes[j] = "Mutant") { scr_en_weapon("Flesh Hooks", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 0; - dudes_hp[j] = 30; + dudes_ac[j] = 5; + dudes_hp[j] = 50; men += dudes_num[j]; } if (dudes[j] = "Daemonhost") { scr_en_weapon("Daemonhost Claws", true, dudes_num[j], dudes[j], j); scr_en_weapon("Daemonhost_Powers", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; - dudes_hp[j] = 300; + dudes_ac[j] = 15; + dudes_hp[j] = 200; dudes_dr[j] = 0.5; medi += dudes_num[j]; } if (dudes[j] = "Possessed") { scr_en_weapon("Possessed Claws", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 100; dudes_dr[j] = 0.75; men += dudes_num[j]; @@ -1585,7 +1591,7 @@ if __b__ { if (dudes[j] = "Technical") { scr_en_weapon("Autogun", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 10; + dudes_ac[j] = 20; dudes_hp[j] = 100; dudes_dr[j] = 0.75; veh += dudes_num[j]; @@ -1595,16 +1601,16 @@ if __b__ { if (dudes[j] = "Chaos Leman Russ") { scr_en_weapon("Battle Cannon", false, dudes_num[j], dudes[j], j); scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 45; + dudes_ac[j] = 40; dudes_hp[j] = 250; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Chaos Basilisk") { scr_en_weapon("Earthshaker Cannon", false, dudes_num[j], dudes[j], j); scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); - dudes_ac[j] = 20; + dudes_ac[j] = 30; dudes_hp[j] = 150; veh += dudes_num[j]; dudes_vehicle[j] = 1; @@ -1633,7 +1639,7 @@ if __b__ { scr_en_weapon("Staff of Light", true, dudes_num[j], dudes[j], j); scr_en_weapon("Staff of Light Shooting", true, dudes_num[j], dudes[j], j); if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { - dudes_ac[j] = 12; + dudes_ac[j] = 15; dudes_hp[j] = 300; dudes_dr[j] = 0.5; } @@ -1641,7 +1647,7 @@ if __b__ { } if (dudes[j] = "Lychguard") { scr_en_weapon("Warscythe", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 12; + dudes_ac[j] = 25; dudes_hp[j] = 100; dudes_dr[j] = 0.75; men += dudes_num[j]; @@ -1649,7 +1655,7 @@ if __b__ { if (dudes[j] = "Flayed One") { scr_en_weapon("Melee5", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 75; dudes_dr[j] = 0.9; men += dudes_num[j]; @@ -1657,7 +1663,7 @@ if __b__ { if (dudes[j] = "Necron Warrior") { scr_en_weapon("Gauss Flayer", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee3", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 10; dudes_hp[j] = 75; dudes_dr[j] = 0.9; men += dudes_num[j]; @@ -1665,8 +1671,8 @@ if __b__ { if (dudes[j] = "Necron Immortal") { scr_en_weapon("Gauss Blaster", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee3", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 8; - dudes_hp[j] = 75; + dudes_ac[j] = 15; + dudes_hp[j] = 90; dudes_dr[j] = 0.85; men += dudes_num[j]; } @@ -1694,8 +1700,8 @@ if __b__ { scr_en_weapon("Overcharged Gauss Cannon", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Claws", false, dudes_num[j] * 5, dudes[j], j); if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { - dudes_ac[j] = 40; - dudes_hp[j] = 600; + dudes_ac[j] = 30; + dudes_hp[j] = 300; } dudes_dr[j] = 0.5; veh += dudes_num[j]; @@ -1704,16 +1710,16 @@ if __b__ { if (dudes[j] = "Canoptek Spyder") { scr_en_weapon("Claws", false, dudes_num[j] * 2, dudes[j], j); if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { - dudes_ac[j] = 30; - dudes_hp[j] = 300; + dudes_ac[j] = 20; + dudes_hp[j] = 200; } - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.80; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Canoptek Scarab") { scr_en_weapon("Melee3", false, dudes_num[j] * 2, dudes[j], j); - dudes_ac[j] = 8; + dudes_ac[j] = 5; dudes_hp[j] = 30; dudes_dr[j] = 0.75; men += dudes_num[j]; @@ -1722,18 +1728,18 @@ if __b__ { if (dudes[j] = "Necron Monolith") { scr_en_weapon("Gauss Flux Arc", false, dudes_num[j] * 4, dudes[j], j); scr_en_weapon("Particle Whip", false, dudes_num[j] * 1, dudes[j], j); - dudes_ac[j] = 50; + dudes_ac[j] = 40; dudes_hp[j] = 500; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } if (dudes[j] = "Doomsday Arc") { scr_en_weapon("Gauss Flayer Array", false, dudes_num[j] * 2, dudes[j], j); scr_en_weapon("Doomsday Cannon", false, dudes_num[j] * 1, dudes[j], j); - dudes_ac[j] = 40; + dudes_ac[j] = 30; dudes_hp[j] = 350; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } diff --git a/scripts/scr_clean/scr_clean.gml b/scripts/scr_clean/scr_clean.gml index 43eb5b3196..ee8422d7d1 100644 --- a/scripts/scr_clean/scr_clean.gml +++ b/scripts/scr_clean/scr_clean.gml @@ -133,14 +133,21 @@ function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_dam var total_hits = hostile_shots; var unit_type = ""; var armour_pierce = apa[weapon_index_position]; - var _armour_mod = 1; - if (armour_pierce == 1) { + var _armour_mod = 0; + switch (armour_pierce) { + case 3: _armour_mod = 2; - } else if (armour_pierce == 0) { + break; + case 2: _armour_mod = 4; - } else if (armour_pierce == -1) { + break; + case 1: _armour_mod = 6; - } + break; + default: + _armour_mod = 0; + break; +} // ### Vehicle Damage Processing ### if (!target_is_infantry && veh > 0) { diff --git a/scripts/scr_en_weapon/scr_en_weapon.gml b/scripts/scr_en_weapon/scr_en_weapon.gml index dcab092600..15173e0e90 100644 --- a/scripts/scr_en_weapon/scr_en_weapon.gml +++ b/scripts/scr_en_weapon/scr_en_weapon.gml @@ -17,7 +17,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 0; atta = 0; spli = 0; - arp = 0; + arp = 1; acr = 0; amm = -1; faith_bonus = 0; @@ -26,7 +26,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { var to; to = string_delete(name, 0, 5); atta = 10; - arp = 0; + arp = 1; rang = 1; spli = 3; } @@ -35,7 +35,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (name = "Venom Claws") { atta = 200; - arp = 1; + arp = 4; rang = 1; spli = 0; if (obj_ini.preomnor = 1) { @@ -44,50 +44,50 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Web Spinner") { atta = 40; - arp = 0; + arp = 1; rang = 2.1; spli = 3; amm = 1; } if (name = "Warpsword") { atta = 300; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (name = "Iron Claw") { atta = 400; - arp = 1; + arp = 4; rang = 1; spli = 0; } if (name = "Maulerfiend Claws") { atta = 300; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (name = "Eldritch Fire") { atta = 80; - arp = 1; + arp = 4; rang = 5.1; } if (name = "Bloodletter Melee") { atta = 70; - arp = 0; + arp = 2; rang = 1; spli = 3; } if (name = "Daemonette Melee") { atta = 65; - arp = 0; + arp = 1; rang = 1; spli = 3; } if (name = "Plaguebearer Melee") { atta = 60; - arp = 0; + arp = 1; rang = 1; spli = 3; if (obj_ini.preomnor = 1) { @@ -96,24 +96,24 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Khorne Demon Melee") { atta = 350; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (name = "Demon Melee") { atta = 250; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (name = "Lash Whip") { atta = 80; - arp = 0; + arp = 1; rang = 2; } if (name = "Nurgle Vomit") { atta = 100; - arp = 0; + arp = 1; rang = 2; spli = 3; if (obj_ini.preomnor = 1) { @@ -122,7 +122,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Multi-Melta") { atta = 200; - arp = 1; + arp = 4; rang = 4.1; spli = 0; amm = 6; @@ -131,19 +131,19 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 3) { if (name = "Phased Plasma-fusil") { atta = 80; - arp = 1; + arp = 4; rang = 7.1; spli = 3; } if (name = "Lightning Gun") { atta = choose(80, 80, 80, 150); - arp = 0; + arp = 2; rang = 5; spli = 0; } if (name = "Thallax Melee") { atta = 80; - arp = 0; + arp = 1; rang = 1; spli = 3; } @@ -153,228 +153,228 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Fusion Gun"){ atta = 180; - arp = 1; + arp = 4; rang = 2; amm = 4; } if (argument0 = "Firepike") { atta = 150; - arp = 1; + arp = 4; rang = 4; amm = 4; } if (argument0 = "Singing Spear") { atta = 150; - arp = 0; + arp = 2; rang = 1; spli = 3; } if (argument0 = "Singing Spear Throw") { atta = 120; - arp = 0; + arp = 2; rang = 2; spli = 3; } if (argument0 = "Witchblade") { atta = 130; - arp = 0; + arp = 3; rang = 1; } if (argument0 = "Psyshock") { - atta = 50; - arp = 0; + atta = 80; + arp = 3; rang = 2; } if (argument0 = "Wailing Doom") { atta = 200; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (argument0 = "Avatar Smite") { atta = 300; - arp = 1; + arp = 4; rang = 2; amm = 2; } if (argument0 = "Ranger Long Rifle") { atta = 60; - arp = 0; + arp = 2; rang = 25; } if (argument0 = "Pathfinder Long Rifle") { atta = 70; - arp = 0; + arp = 2; rang = 25; } if (argument0 = "Shuriken Catapult") { atta = 50; - arp = 0; + arp = 2; rang = 2; } if (argument0 = "Twin Linked Shuriken Catapult") { atta = 100; - arp = 0; + arp = 2; rang = 2; } if (argument0 = "Avenger Shuriken Catapult") { atta = 90; - arp = 0; + arp = 2; rang = 3; } if (argument0 = "Power Weapon") or(argument0 = "Power Blades") { atta = 100; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (argument0 = "Shuriken Pistol") { atta = 50; - arp = 0; + arp = 2; rang = 2.1; } if (argument0 = "Executioner") { atta = 150; - arp = 1; + arp = 4; rang = 1; } if (argument0 = "Scorpion Chainsword") { atta = 100; - arp = 0; + arp = 2; rang = 1; spli = 3; } if (argument0 = "Mandiblaster") { atta = 60; - arp = 0; + arp = 1; rang = 1; } if (argument0 = "Biting Blade") { atta = 125; - arp = 0; + arp = 2; rang = 1; spli = 3; } if (argument0 = "Scorpian's Claw") { atta = 150; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (argument0 = "Meltabomb") { atta = 200; - arp = 1; + arp = 4; rang = 1; amm = 1; } if (argument0 = "Deathspinner") { atta = 125; - arp = 0; + arp = 2; rang = 2; } if (argument0 = "Dual Deathspinner") { atta = 250; - arp = 0; + arp = 2; rang = 2; } if (argument0 = "Reaper Launcher") { atta = 120; - arp = 1; + arp = 4; rang = 20; amm = 8; spli = 3; } if (argument0 = "Tempest Launcher") { atta = 200; - arp = 0; + arp = 1; rang = 15; amm = 8; spli = 9; } if (argument0 = "Laser Lance") { atta = 180; - arp = 1; + arp = 4; rang = 2; spli = 3; } if (argument0 = "Fusion Pistol") { atta = 125; - arp = 1; + arp = 4; rang = 2.1; amm = 4; } if (argument0 = "Plasma Pistol") { atta = 100; - arp = 1; + arp = 4; rang = 3.1; } if (argument0 = "Harlequin's Kiss") { atta = 250; - arp = 1; + arp = 4; rang = 1; amm = 1; } if (argument0 = "Wraithcannon") { atta = 200; - arp = 1; + arp = 4; rang = 2.1; } if (argument0 = "Pulse Laser") { atta = 120; - arp = 0; + arp = 3; rang = 15; } if (argument0 = "Bright Lance") { atta = 200; - arp = 1; + arp = 4; rang = 8; } if (argument0 = "Shuriken Cannon") { atta = 160; - arp = 0; + arp = 2; rang = 3; } if (argument0 = "Prism Cannon") { atta = 400; - arp = 1; + arp = 4; rang = 20; spli = 1; } if (argument0 = "Twin Linked Doomweaver") { atta = 250; - arp = 1; + arp = 4; rang = 2; spli = 2; } // Also create difficult terrain? if (argument0 = "Starcannon") { atta = 250; - arp = 1; + arp = 4; rang = 8; spli = 4; } if (argument0 = "Two Power Fists") { atta = 300; - arp = 1; + arp = 4; rang = 1; spli = 2; } if (argument0 = "Flamer") { atta = 200; - arp = 0; + arp = 1; rang = 2; amm = 4; spli = 3; } if (argument0 = "Titan Starcannon") { atta = 500; - arp = 1; + arp = 4; rang = 4; spli = 8; } if (argument0 = "Phantom Pulsar") { atta = 500; - arp = 1; + arp = 4; rang = 20; spli = 3; } @@ -384,98 +384,98 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Choppa") { atta = 100; - arp = 0; + arp = 1; rang = 1; spli = 3; } if (argument0 = "Power Klaw") { atta = 160; - arp = 1; + arp = 3; rang = 1; spli = 3; } if (argument0 = "Slugga") { - atta = 80; - arp = 0; + atta = 70; + arp = 1; rang = 3.1; amm = 4; spli = 3; } if (argument0 = "Tankbusta Bomb") { atta = 150; - arp = 1; + arp = 4; rang = 1; amm = 1; spli = 1; } if (argument0 = "Big Shoota") { atta = 120; - arp = 0; + arp = 1; rang = 6; amm = 30; spli = 5; } if (argument0 = "Dakkagun") { atta = 140; - arp = 0; + arp = 1; rang = 8; amm = 20; spli = 10; } if (argument0 = "Deffgun") { atta = 150; - arp = 1; + arp = 4; rang = 8; amm = 20; spli = 1; } if (argument0 = "Snazzgun") { atta = 200; - arp = 0; + arp = 2; rang = 5; spli = 0; } if (argument0 = "Grot Blasta") { atta = 50; - arp = 0; + arp = 1; rang = 2; amm = 6; } if (argument0 = "Kannon") { atta = 200; - arp = 1; + arp = 4; rang = 10.1; amm = 5; spli = 3; } if (argument0 = "Shoota") { atta = 80; - arp = 0; + arp = 1; rang = 5; } if (argument0 = "Burna") { atta = 140; - arp = 0; + arp = 2; rang = 2; amm = 4; spli = 3; } if (argument0 = "Skorcha") { atta = 200; - arp = 1; + arp = 3; rang = 2; amm = 6; spli = 3; } if (argument0 = "Rokkit Launcha") { - atta = 125; - arp = 1; + atta = 150; + arp = 4; rang = 15; spli = 3; } if (argument0 = "Krooz Missile") { - atta = 250; - arp = 1; + atta = 300; + arp = 4; rang = 15; spli = 3; } @@ -485,68 +485,68 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 8) { if (name = "Fusion Blaster") { atta = 150; - arp = 1; + arp = 4; rang = 2; amm = 4; } if (name = "Plasma Rifle") { atta = 120; - arp = 1; + arp = 3; rang = 10; } if (name = "Cyclic Ion Blaster") { atta = 80; - arp = 0; + arp = 2; rang = 6; spli = 3; } // x6 if (name = "Burst Rifle") { atta = 130; - arp = 0; + arp = 1; rang = 16; spli = 3; } if (name = "Missile Pod") { atta = 150; - arp = 0; + arp = 2; rang = 15; amm = 6; spli = 3; } if (name = "Smart Missile System") { atta = 150; - arp = 0; + arp = 2; rang = 15; } if (name = "Small Railgun") { atta = 150; - arp = 1; + arp = 4; rang = 18; spli = 1; } if (name = "Pulse Rifle") { atta = 80; - arp = 0; + arp = 2; rang = 12; } if (name = "Rail Rifle") { atta = 80; - arp = 1; + arp = 4; rang = 14; } if (name = "Kroot Rifle") { atta = 100; - arp = 0; + arp = 1; rang = 6; } if (name = "Vespid Crystal") { atta = 100; - arp = 1; + arp = 3; rang = 2.1; } if (name = "Railgun") { atta = 250; - arp = 1; + arp = 4; rang = 20; } } @@ -555,61 +555,61 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Bonesword") { atta = 120; - arp = 1; + arp = 3; rang = 1; spli = 3; } if (argument0 = "Lash Whip") { atta = 100; - arp = 0; + arp = 1; rang = 2; } if (argument0 = "Heavy Venom Cannon") { atta = 200; - arp = 1; + arp = 4; rang = 8; } if (argument0 = "Crushing Claws") { atta = 150; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (argument0 = "Rending Claws") { atta = 80; - arp = 1; + arp = 3; rang = 1; spli = 3; } if (argument0 = "Devourer") { atta = 90; - arp = 0; + arp = 2; rang = 5; spli = 3 if (obj_ini.preomnor = 1) { - atta = 180; + atta = 120; } } if (argument0 = "Zoanthrope Blast") { atta = 250; - arp = 1; + arp = 4; rang = 6; spli = 1; } if (argument0 = "Carnifex Claws") { atta = 200; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (argument0 = "Venom Cannon") { atta = 100; - arp = 1; + arp = 4; rang = 5; } if (argument0 = "Deathspitter") { atta = 100; - arp = 0; + arp = 2; rang = 2.1; if (obj_ini.preomnor = 1) { atta = 150; @@ -617,7 +617,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Fleshborer") { atta = 70; - arp = 0; + arp = 1; rang = 2.1; if (obj_ini.preomnor = 1) { atta = 19; @@ -625,34 +625,34 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Scything Talons") { atta = 50; - arp = 0; + arp = 1; rang = 1; } if (argument0 = "Genestealer Claws") { atta = 70; - arp = 1; + arp = 3; rang = 1; } if (argument0 = "Witchfire") { atta = 100; - arp = 1; + arp = 3; rang = 2; } if (argument0 = "Autogun") { atta = 60; - arp = 0; + arp = 1; rang = 6; amm = 12; spli = 3; } if (argument0 = "Lictor Claws") { atta = 300; - arp = 1; + arp = 3; rang = 1; } if (argument0 = "Flesh Hooks") { atta = 100; - arp = 0; + arp = 2; rang = 2; amm = 1; } @@ -663,103 +663,103 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Plasma Pistol") { atta = 70; - arp = 1; + arp = 4; rang = 3.1; } if (argument0 = "Power Weapon") { atta = 120; - arp = 1; + arp = 4; rang = 1; } if (argument0 = "Power Sword") { atta = 120; - arp = 1; + arp = 4; rang = 1; } if (argument0 = "Force Weapon") { atta = 250; - arp = 1; + arp = 4; rang = 1; } if (argument0 = "Chainfist") { atta = 300; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (argument0 = "Meltagun") { atta = 200; - arp = 1; + arp = 4; rang = 2; amm = 4; } if (argument0 = "Flamer") { atta = 160; - arp = 0; + arp = 1; rang = 2.1; amm = 4; spli = 3; } if (argument0 = "Heavy Flamer") { atta = 200; - arp = 0; + arp = 2; rang = 2.1; amm = 6; spli = 3; } if (argument0 = "Combi-Flamer") { atta = 160; - arp = 0; + arp = 1; rang = 2.1; amm = 1; spli = 3; } if (argument0 = "Bolter") { atta = 120; - arp = 0; + arp = 1; rang = 12; amm = 15; if (obj_ncombat.enemy = 5) then atta = 80; } // Bursts if (argument0 = "Power Fist") { atta = 250; - arp = 1; + arp = 4; rang = 1; } if (argument0 = "Possessed Claws") { atta = 150; - arp = 0; + arp = 1; rang = 1; spli = 3; } if (argument0 = "Missile Launcher") { atta = 200; - arp = 0; + arp = 2; rang = 20; amm = 4; } if (argument0 = "Chainsword") { atta = 120; - arp = 0; + arp = 1; rang = 1; spli = 4; } if (argument0 = "Bolt Pistol") { atta = 100; - arp = 0; + arp = 1; rang = 3.1; amm = 18; spli = 1; } if (argument0 = "Chainaxe") { atta = 140; - arp = 0; + arp = 1; rang = 1; spli = 3; } if (argument0 = "Poisoned Chainsword") { atta = 150; - arp = 0; + arp = 1; rang = 1; spli = 1; if (obj_ini.preomnor = 1) { @@ -768,105 +768,105 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (argument0 = "Sonic Blaster") { atta = 150; - arp = 0; + arp = 3; rang = 3; spli = 6; } if (argument0 = "Rubric Bolter") { atta = 150; - arp = 0; + arp = 1; rang = 12; amm = 15; spli = 5; } // Bursts if (argument0 = "Witchfire") { atta = 200; - arp = 1; + arp = 4; rang = 5.1; spli = 1; } if (argument0 = "Autogun") { atta = 60; - arp = 0; + arp = 1; rang = 6; amm = 12; } if (argument0 = "Storm Bolter") { atta = 180; - arp = 0; + arp = 1; rang = 8; amm = 10; spli = 3; } if (argument0 = "Lascannon") { - atta = 300; - arp = 1; + atta = 400; + arp = 4; rang = 20; amm = 8; spli = 1; } if (argument0 = "Twin Linked Heavy Bolters") { atta = 240; - arp = 0; + arp = 2; rang = 16; spli = 3; } if (argument0 = "Twin-Linked Heavy Bolters") { atta = 240; - arp = 0; + arp = 2; rang = 16; spli = 3; } if (argument0 = "Twin Linked Lascannon") { - atta = 600; - arp = 1; + atta = 800; + arp = 4; rang = 20; spli = 2; } if (argument0 = "Twin-Linked Lascannon") { - atta = 600; - arp = 1; + atta = 800; + arp = 4; rang = 20; spli = 2; } if (argument0 = "Battle Cannon") { atta = 300; - arp = 0; + arp = 4; rang = 12; } if (argument0 = "Demolisher Cannon") { atta = 500; - arp = 1; + arp = 4; rang = 2; spli = 8; if (instance_exists(obj_nfort)) then rang = 5; } if (argument0 = "Earthshaker Cannon") { atta = 250; - arp = 0; + arp = 3; rang = 12; spli = 8; } if (argument0 = "Havoc Launcher") { atta = 300; - arp = 0; + arp = 2; rang = 12; spli = 12; } if (argument0 = "Baleflame") { atta = 225; - arp = 1; + arp = 4; rang = 2; } if (argument0 = "Defiler Claws") { atta = 350; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (argument0 = "Reaper Autocannon") { atta = 320; - arp = 0; + arp = 2; rang = 18; amm = 10; spli = 3; @@ -874,71 +874,71 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (name = "Ripper Gun") { atta = 120; - arp = 0; + arp = 1; rang = 3; amm = 5; spli = 0; } if (name = "Ogryn Melee") { atta = 90; - arp = 1; + arp = 4; rang = 1; } if (name = "Multi-Laser") { atta = 150; - arp = 0; + arp = 2; rang = 10; } if (argument0 = "Blessed Weapon") { atta = 150; - arp = 1; + arp = 4; rang = 1; } if (argument0 = "Electro-Flail") { atta = 125; - arp = 0; + arp = 1; rang = 1; spli = 3; } if (argument0 = "Neural Whip") { atta = 85; - arp = 0; + arp = 1; rang = 1; spli = 3 } if (argument0 = "Sarissa") { atta = 65; - arp = 0; + arp = 1; rang = 2; } if (argument0 = "Seraphim Pistols") { atta = 120; - arp = 0; + arp = 1; rang = 4; } if (argument0 = "Laser Mace") { atta = 150; - arp = 0; + arp = 3; rang = 5.1; amm = 3; } if (argument0 = "Heavy Bolter") { atta = 120; - arp = 0; + arp = 2; rang = 16; spli = 0; } if (name = "Lasgun") { - atta = 80; - arp = 0; + atta = 60; + arp = 1; rang = 6; amm = 30; } if (name = "Daemonhost Claws") { atta = 350; - arp = 1; + arp = 4; rang = 1; spli = 3; } @@ -953,85 +953,85 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 13) { // Some of these, like the Gauss Particle Cannon and Particle Whip, used to be more than twice as strong. if (name = "Staff of Light") { atta = 200; - arp = 1; + arp = 4; rang = 1; spli = 3; } if (name = "Staff of Light Shooting") { atta = 180; - arp = 1; + arp = 4; rang = 3; spli = 3; } if (name = "Warscythe") { atta = 200; - arp = 1; + arp = 4; rang = 1; spli = 0; } if (name = "Gauss Flayer") { atta = 50; - arp = 0; + arp = 2; rang = 6.1; spli = 1; } if (name = "Gauss Blaster") { atta = 80; - arp = 0; + arp = 2; rang = 6.1; spli = 0; } if (name = "Gauss Cannon") { atta = 120; - arp = 1; + arp = 4; rang = 10; spli = 3; } if (name = "Gauss Particle Cannon") { atta = 250; - arp = 1; + arp = 4; rang = 10.1; spli = 3; } if (name = "Overcharged Gauss Cannon") { atta = 250; - arp = 1; + arp = 4; rang = 8.1; spli = 3; } if (name = "Wraith Claws") { atta = 80; - arp = 0; + arp = 1; rang = 1; spli = 0; } if (name = "Claws") { atta = 300; - arp = 0; + arp = 1; rang = 1; spli = 0; } if (name = "Gauss Flux Arc") { atta = 180; - arp = 0; + arp = 2; rang = 8; spli = 3; } if (name = "Particle Whip") { atta = 300; - arp = 0; + arp = 4; rang = 4.1; spli = 3; } if (name = "Gauss Flayer Array") { atta = 180; - arp = 0; + arp = 2; rang = 8.1; spli = 3; } if (name = "Doomsday Cannon") { atta = 300; - arp = 1; + arp = 4; rang = 6.1; spli = 3; } diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 4b190be6d1..31995d2165 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -2135,7 +2135,12 @@ global.gear = { "hp_mod":{ "standard": 30, "master_crafted": 35, - "artifact": 60 + "artifact": 50 + }, + "damage_resistance_mod": { + "standard": 20, + "master_crafted": 25, + "artifact": 40 }, "melee_hands": 8, "ranged_hands": 8, @@ -2288,11 +2293,6 @@ global.gear = { "master_crafted": 5, "artifact": 10 }, - "damage_resistance_mod": { - "standard": -10, - "master_crafted": 0, - "artifact": 10 - }, "description": "Power Armor dating back to the end of the Great Crusade. It is considered the pinnacle of Power Armor by some Astartes. However, the components are no longer reproducible, the knowledge having been lost to time.", "tags": ["power_armour"], "maintenance" : 0.2, From 11137697766b5cb1644107086c99807785988cce Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Mon, 23 Jun 2025 05:38:25 +0300 Subject: [PATCH 41/47] Boarding fixes --- objects/obj_p_assra/Step_0.gml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/objects/obj_p_assra/Step_0.gml b/objects/obj_p_assra/Step_0.gml index 9adadc463c..17fab4fc2b 100644 --- a/objects/obj_p_assra/Step_0.gml +++ b/objects/obj_p_assra/Step_0.gml @@ -67,7 +67,7 @@ if (boarding=true) and (board_cooldown>=0) and (instance_exists(target)) and (in board_cooldown-=1; if (board_cooldown=0){board_cooldown=60; - var o,challenge,boarding_odds,boarding_difficulty,boarding_advantage,boarding_disadvantage,gear_bonus,marine_bonus,outcome_roll,damage_roll,attack,arp,wep,ac,dr,co,i,hits,hurt,damaged_ship,bridge_damage; + var o,challenge,boarding_odds,boarding_advantage,boarding_disadvantage,gear_bonus,marine_bonus,outcome_roll,damage_roll,attack,arp,wep,ac,dr,co,i,hits,hurt,damaged_ship,bridge_damage; o=firstest-1;boarding_odds=0;challenge=0;outcome_roll=0;damage_roll=0;attack=0;arp=0;wep="";hits=0;hurt=0;damaged_ship=0;bridge_damage=1; co=0;i=0;ac=0;dr=1; @@ -94,12 +94,12 @@ if (boarding=true) and (board_cooldown>=0) and (instance_exists(target)) and (in marine_bonus+=(1-(target.hp/target.maxhp))*33; // if wounded marine will perform worse var _weapons = [unit.get_weapon_one_data(), unit.get_weapon_two_data()]; - if (_weapons[0] == "" && _weapons[1] == "") { + if (!is_struct(_weapons[0]) && !is_struct(_weapons[1])) { gear_bonus -= 10; } else { for (var i = 0; i <= 1; i++) { var _weapon = _weapons[i]; - if (!is_struct(_weapon)) then break + if (!is_struct(_weapon)) then continue if (_weapon.has_tag("boarding 1")) { gear_bonus += 2; From 2ab1b43f173501c50d42570034d764716ffea884 Mon Sep 17 00:00:00 2001 From: Da Fist <144086663+KRdaMystic@users.noreply.github.com> Date: Tue, 23 Dec 2025 06:08:17 +0900 Subject: [PATCH 42/47] feat: Durability adjustments (#1077) --- objects/obj_enunit/Alarm_1.gml | 115 ++++++++++++------------ scripts/scr_clean/scr_clean.gml | 38 ++++---- scripts/scr_en_weapon/scr_en_weapon.gml | 9 +- scripts/scr_roster/scr_roster.gml | 8 +- 4 files changed, 89 insertions(+), 81 deletions(-) diff --git a/objects/obj_enunit/Alarm_1.gml b/objects/obj_enunit/Alarm_1.gml index 5a01ac3914..1b904441a6 100644 --- a/objects/obj_enunit/Alarm_1.gml +++ b/objects/obj_enunit/Alarm_1.gml @@ -91,7 +91,7 @@ repeat(20) { } if (dudes[j] = "Greater Daemon of Khorne") { scr_en_weapon("Khorne Demon Melee", true, dudes_num[j], dudes[j], j); - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; medi += dudes_num[j]; if (obj_ncombat.battle_special = "ship_demon") then dudes_dr[j] = 0.65; } @@ -99,26 +99,26 @@ repeat(20) { if (dudes[j] = "Greater Daemon of Slaanesh") { dudes_ac[j] = 15; dudes_hp[j] = 500; - dudes_dr[j] = 0.3; + dudes_dr[j] = 0.6; } } if (dudes[j] = "Greater Daemon of Slaanesh") { scr_en_weapon("Demon Melee", true, dudes_num[j], dudes[j], j); scr_en_weapon("Lash Whip", true, dudes_num[j], dudes[j], j); - dudes_dr[j] = 0.3; + dudes_dr[j] = 0.6; medi += dudes_num[j]; } if ((obj_ncombat.started = 0) or(neww = 1)) or(dudes_num[j] > 1) { if (dudes[j] = "Greater Daemon of Nurgle") { dudes_ac[j] = 10; dudes_hp[j] = 900; - dudes_dr[j] = 0.4; + dudes_dr[j] = 0.6; } } if (dudes[j] = "Greater Daemon of Nurgle") { scr_en_weapon("Demon Melee", true, dudes_num[j], dudes[j], j); scr_en_weapon("Nurgle Vomit", true, dudes_num[j], dudes[j], j); - dudes_dr[j] = 0.4; + dudes_dr[j] = 0.6; medi += dudes_num[j]; } if ((obj_ncombat.started = 0) or(neww = 1)) or(dudes_num[j] > 1) { @@ -139,28 +139,28 @@ repeat(20) { dudes_ac[j] = 15; dudes_hp[j] = 200; men += dudes_num[j]; - dudes_dr[j] = 0.4; + dudes_dr[j] = 0.6; } if (dudes[j] = "Daemonette") { scr_en_weapon("Daemonette Melee", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 150; men += dudes_num[j]; - dudes_dr[j] = 0.3; + dudes_dr[j] = 0.6; } if (dudes[j] = "Pink Horror") { scr_en_weapon("Eldritch Fire", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 100; men += dudes_num[j]; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; } if (dudes[j] = "Plaguebearer") { scr_en_weapon("Plaguebearer Melee", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 300; men += dudes_num[j]; - dudes_dr[j] = 0.4; + dudes_dr[j] = 0.6; } if (dudes[j] = "Helbrute") { @@ -180,7 +180,7 @@ repeat(20) { dudes_hp[j] = 350; veh += dudes_num[j]; dudes_vehicle[j] = 1; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; } if (dudes[j] = "Maulerfiend") { scr_en_weapon("Maulerfiend Claws", false, dudes_num[j], dudes[j], j); @@ -188,7 +188,7 @@ repeat(20) { dudes_hp[j] = 250; veh += dudes_num[j]; dudes_vehicle[j] = 1; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; } } @@ -396,7 +396,7 @@ if __b__ { scr_en_weapon("Twin-Linked Lascannon", false, dudes_num[j] * 3, dudes[j], j); dudes_ac[j] = 20; dudes_hp[j] = 200; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -456,7 +456,7 @@ if __b__ { dudes_hp[j] = 200; } men += dudes_num[j]; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.5; } if (dudes[j] = "Palatine") { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); @@ -471,7 +471,7 @@ if __b__ { dudes_ac[j] = 5; dudes_hp[j] = 50; men += dudes_num[j]; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.65; } if (dudes[j] = "Arco-Flagellent") { @@ -488,14 +488,14 @@ if __b__ { dudes_ac[j] = 15; dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.50; + dudes_dr[j] = 0.80; } if (dudes[j] = "Mistress") { scr_en_weapon("Neural Whip", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 15; dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.50; + dudes_dr[j] = 0.80; } if (dudes[j] = "Sister Repentia") { scr_en_weapon("Eviscerator", true, dudes_num[j], dudes[j], j); @@ -547,7 +547,7 @@ if __b__ { dudes_ac[j] = 15; dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.85; } if (dudes[j] = "Follower") { //Frateris Militia @@ -562,7 +562,7 @@ if __b__ { scr_en_weapon("Storm Bolter", false, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -571,7 +571,7 @@ if __b__ { scr_en_weapon("Heavy Flamer", false, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -580,7 +580,7 @@ if __b__ { scr_en_weapon("Twin Linked Heavy Flamers", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 300; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.65; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -591,7 +591,7 @@ if __b__ { if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 200; } - dudes_dr[j] = 0.50; + dudes_dr[j] = 0.65; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -671,7 +671,7 @@ if __b__ { scr_en_weapon("Avatar Smite", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 450; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; veh += dudes_num[j]; } if (dudes[j] = "Godly Avatar") { @@ -679,7 +679,7 @@ if __b__ { scr_en_weapon("Avatar Smite", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 50; dudes_hp[j] = 600; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.5; veh += dudes_num[j]; } @@ -831,7 +831,7 @@ if __b__ { scr_en_weapon("Wraithcannon", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 25; dudes_hp[j] = 125; - dudes_dr[j] = 0.70; + dudes_dr[j] = 0.7; men += dudes_num[j]; } if (dudes[j] = "Vyper") { @@ -849,7 +849,7 @@ if __b__ { scr_en_weapon("Bright Lance", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -858,7 +858,7 @@ if __b__ { scr_en_weapon("Prism Cannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 200; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.50; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -866,7 +866,7 @@ if __b__ { scr_en_weapon("Twin Linked Doomweaver", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -876,7 +876,7 @@ if __b__ { scr_en_weapon("Starcannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -886,7 +886,7 @@ if __b__ { scr_en_weapon("Titan Starcannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 50; dudes_hp[j] = 800; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.4; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -909,7 +909,7 @@ if __b__ { dudes_hp[j] = 600; } veh += dudes_num[j]; - dudes_dr[j] = 0.65; + dudes_dr[j] = 0.5; } if (dudes[j] = "Minor Warboss") { // 'Ead Nob @@ -928,7 +928,7 @@ if __b__ { dudes_ac[j] = 15; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 200; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.7; } men += dudes_num[j]; } @@ -938,7 +938,7 @@ if __b__ { dudes_ac[j] = 25; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 300; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.65; } men += dudes_num[j]; } @@ -977,7 +977,7 @@ if __b__ { scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 15; dudes_hp[j] = 150; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.65; men += dudes_num[j]; } if (dudes[j] = "Flash Git") { @@ -992,7 +992,7 @@ if __b__ { scr_en_weapon("Big Shoota", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 125; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.8; men += dudes_num[j]; } @@ -1043,7 +1043,7 @@ if __b__ { scr_en_weapon("Rokkit Launcha", false, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 350; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.55; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1109,14 +1109,14 @@ if __b__ { scr_en_weapon("Small Railgun", true, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 25; dudes_hp[j] = 250; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.7; men += dudes_num[j]; } if (dudes[j] = "XV25 Stealthsuit") { scr_en_weapon("Burst Rifle", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 15; dudes_hp[j] = 75; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.85; men += dudes_num[j]; } @@ -1187,7 +1187,7 @@ if __b__ { scr_en_weapon("Crushing Claws", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 25; dudes_hp[j] = 200; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.7; men += dudes_num[j]; } if (dudes[j] = "Tyranid Warrior") { @@ -1202,7 +1202,7 @@ if __b__ { scr_en_weapon("Zoanthrope Blast", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 10; dudes_hp[j] = 300; - dudes_dr[j] = 0.25; + dudes_dr[j] = 0.5; men += dudes_num[j]; } if (dudes[j] = "Carnifex") { @@ -1245,7 +1245,7 @@ if __b__ { scr_en_weapon("Witchfire", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 15; dudes_hp[j] = 300; - dudes_dr[j] = 0.60; + dudes_dr[j] = 0.65; men += dudes_num[j]; } if (dudes[j] = "Armoured Limousine") { @@ -1261,7 +1261,7 @@ if __b__ { scr_en_weapon("Flesh Hooks", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 15; dudes_hp[j] = 300; - dudes_dr[j] = 0.60; + dudes_dr[j] = 0.70; men += dudes_num[j]; } @@ -1293,7 +1293,7 @@ if __b__ { dudes_hp[j] = 300; } men += dudes_num[j]; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.6; } if (dudes[j] = "Fallen") { @@ -1386,7 +1386,7 @@ if __b__ { scr_en_weapon("Possessed Claws", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 15; dudes_hp[j] = 150; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.6; men += dudes_num[j]; } if (dudes[j] = "Chaos Space Marine") { @@ -1428,7 +1428,7 @@ if __b__ { scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 15; dudes_hp[j] = 125; - dudes_dr[j] = 0.65; + dudes_dr[j] = 0.7; men += dudes_num[j]; } @@ -1437,7 +1437,7 @@ if __b__ { scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 15; dudes_hp[j] = 200; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.65; men += dudes_num[j]; } if (dudes[j] = "Plague Marine") { @@ -1445,7 +1445,7 @@ if __b__ { scr_en_weapon("Poison Chainsword", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 15; dudes_hp[j] = 180; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.65; men += dudes_num[j]; } if (dudes[j] = "Noise Marine") { @@ -1492,7 +1492,7 @@ if __b__ { scr_en_weapon("Storm Bolter", false, dudes_num[j] * 2, dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 200; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1501,7 +1501,7 @@ if __b__ { scr_en_weapon("Twin Linked Lascannon", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 350; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.65; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1510,7 +1510,7 @@ if __b__ { scr_en_weapon("Havoc Launcher", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 300; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.65; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1538,7 +1538,7 @@ if __b__ { scr_en_weapon("Flamer", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 300; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.65; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1548,7 +1548,7 @@ if __b__ { scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 15; dudes_hp[j] = 40; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.85; men += dudes_num[j]; } if (dudes[j] = "Cultist Elite") { @@ -1570,7 +1570,7 @@ if __b__ { scr_en_weapon("Daemonhost_Powers", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 15; dudes_hp[j] = 200; - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.7; medi += dudes_num[j]; } if (dudes[j] = "Possessed") { @@ -1612,6 +1612,7 @@ if __b__ { scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 150; + dudes_dr[j] = 0.75; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1690,8 +1691,8 @@ if __b__ { scr_en_weapon("Gauss Cannon", true, dudes_num[j], dudes[j], j); scr_en_weapon("Melee3", true, dudes_num[j], dudes[j], j); dudes_ac[j] = 25; - dudes_hp[j] = 175; - dudes_dr[j] = 0.5; + dudes_hp[j] = 250; + dudes_dr[j] = 0.75; men += dudes_num[j]; } @@ -1703,7 +1704,7 @@ if __b__ { dudes_ac[j] = 30; dudes_hp[j] = 300; } - dudes_dr[j] = 0.5; + dudes_dr[j] = 0.65; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1730,7 +1731,7 @@ if __b__ { scr_en_weapon("Particle Whip", false, dudes_num[j] * 1, dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 500; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1739,7 +1740,7 @@ if __b__ { scr_en_weapon("Doomsday Cannon", false, dudes_num[j] * 1, dudes[j], j); dudes_ac[j] = 30; dudes_hp[j] = 350; - dudes_dr[j] = 0.6; + dudes_dr[j] = 0.65; veh += dudes_num[j]; dudes_vehicle[j] = 1; } diff --git a/scripts/scr_clean/scr_clean.gml b/scripts/scr_clean/scr_clean.gml index 236b51fe4b..2f8fcbd004 100644 --- a/scripts/scr_clean/scr_clean.gml +++ b/scripts/scr_clean/scr_clean.gml @@ -175,17 +175,20 @@ function damage_infantry(_damage_data, _shots, _damage, _weapon_index) { var _armour_pierce = apa[_weapon_index]; var _armour_mod = 0; switch (_armour_pierce) { - case 3: - _armour_mod = 2; - break; - case 2: - _armour_mod = 4; - break; - case 1: - _armour_mod = 6; - break; - default: - _armour_mod = 0; + 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; } @@ -275,18 +278,21 @@ function damage_vehicles(_damage_data, _shots, _damage, _weapon_index) { var _armour_pierce = apa[_weapon_index]; var _armour_mod = 0; switch (_armour_pierce) { + case 4: + _armour_mod = 0; + break; case 3: _armour_mod = 2; - break; + break; case 2: _armour_mod = 4; - break; + break; case 1: _armour_mod = 6; - break; + break; default: - _armour_mod = 0; - break; + _armour_mod = 6; + break; } var veh_index = -1; diff --git a/scripts/scr_en_weapon/scr_en_weapon.gml b/scripts/scr_en_weapon/scr_en_weapon.gml index 15173e0e90..c816b432f1 100644 --- a/scripts/scr_en_weapon/scr_en_weapon.gml +++ b/scripts/scr_en_weapon/scr_en_weapon.gml @@ -593,11 +593,11 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Zoanthrope Blast") { atta = 250; arp = 4; - rang = 6; + rang = 8; spli = 1; } if (argument0 = "Carnifex Claws") { - atta = 200; + atta = 225; arp = 4; rang = 1; spli = 3; @@ -790,6 +790,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { arp = 1; rang = 6; amm = 12; + spli = 3; } if (argument0 = "Storm Bolter") { atta = 180; @@ -1057,7 +1058,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { repeat(30) { if (wep[b] = name) and(goody = 0) { att[b] += atta * man_number; - apa[b] += arp * man_number; + apa[b] += arp; range[b] = rang; wep_num[b] += man_number; if (obj_ncombat.started = 0) then ammo[b] = amm; @@ -1073,7 +1074,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { wep[first] = name; splash[first] = spli; att[first] += atta * man_number; - apa[first] += arp * man_number; + apa[first] += arp; range[first] = rang; wep_num[first] += man_number; if (obj_ncombat.started = 0) then ammo[first] = amm; diff --git a/scripts/scr_roster/scr_roster.gml b/scripts/scr_roster/scr_roster.gml index 3b8c938794..50f2ab2ef2 100644 --- a/scripts/scr_roster/scr_roster.gml +++ b/scripts/scr_roster/scr_roster.gml @@ -723,7 +723,7 @@ function add_vehicle_to_battle(company, veh_index, is_local){ if (obj_ini.veh_role[company][v] = "Land Speeder") { targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 2.5; targ.veh_hp_multiplier[targ.veh] = 2.5; - targ.veh_ac[targ.veh] = 20; + targ.veh_ac[targ.veh] = 25; } else if (obj_ini.veh_role[company][v] = "Rhino") or(obj_ini.veh_role[company][v] = "Whirlwind") { targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 3; @@ -736,9 +736,9 @@ function add_vehicle_to_battle(company, veh_index, is_local){ targ.veh_ac[targ.veh] = 40; } else if (obj_ini.veh_role[company][v] = "Land Raider") { - targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 5; - targ.veh_hp_multiplier[targ.veh] = 5; - targ.veh_ac[targ.veh] = 50; + targ.veh_hp[targ.veh] = obj_ini.veh_hp[company][v] * 4; + targ.veh_hp_multiplier[targ.veh] = 4; + targ.veh_ac[targ.veh] = 40; } // STC Bonuses From e1b03a2adf4c5b49e86b91d82640c8b0fac84881 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Wed, 28 Jan 2026 19:27:20 +0300 Subject: [PATCH 43/47] DW Veteran type fix --- datafiles/main/chapters/33.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datafiles/main/chapters/33.json b/datafiles/main/chapters/33.json index c7929f2b9f..2bce5920ca 100644 --- a/datafiles/main/chapters/33.json +++ b/datafiles/main/chapters/33.json @@ -620,7 +620,7 @@ } ] ], - "sternguard_veteran_squad": [ + "veteran_squad": [ // Proteus Kill Team - Versatile [ "Veteran", From 38b80a9e945f2e3d46d2dc50c4876995ce9b50cf Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Wed, 28 Jan 2026 19:33:02 +0300 Subject: [PATCH 44/47] Can't fix it in one go, can't I? --- datafiles/main/chapters/33.json | 247 ++++++++++++++++---------------- 1 file changed, 124 insertions(+), 123 deletions(-) diff --git a/datafiles/main/chapters/33.json b/datafiles/main/chapters/33.json index 2bce5920ca..a0df79d6a7 100644 --- a/datafiles/main/chapters/33.json +++ b/datafiles/main/chapters/33.json @@ -717,129 +717,130 @@ } ] ], - "vanguard_veteran_squad": [ - // Malleus Kill Team - Anti Vehicle / Anti Large - // Vanguard Veteran Sergeant - [ - "Veteran Sergeant", - { - "max": 1, - "min": 1, - "role": "Malleus Watch Sergeant", - "loadout": { - "required": { - "wep1": [ - "Stalker Pattern Bolter", - 1 - ], - "wep2": [ - "Combat Knife", - 1 - ] - } - } - } - ], - // Vanguard Veterans - [ - "Veteran", - { - "max": 4, - "min": 1, - "role": "Vanguard Veteran", - "loadout": { - "required": { - "wep1": [ - "", - 0 - ], - "wep2": [ - "", - 0 - ] - }, - "option": { - "wep1": [ - [ - [ - "Infernus Heavy Bolter", - "Infernus Heavy Bolter", - "Infernus Heavy Bolter", - "Infernus Heavy Bolter", - "Missile Launcher", - "Missile Launcher", - "Multi-Melta", - "Lascannon" - ], - 3 - ], - [ - [ - "Stalker Pattern Bolter" - ], - 2, - { - "wep2": "Combat Knife" - } - ] - ] - } - } - } - ], - [ - "Terminator", - { - "max": 4, - "min": 1, - "role": "Terminator", - "loadout": { - "required": { - "wep1": [ - "Plasma Cannon", - 1 - ] - }, - "option": { - "wep1": [ - [ - [ - "Heavy Thunder Hammer" - ], - 1 - ], - [ - [ - "Lascannon" - ], - 1 - ], - [ - [ - "Multi-Melta" - ], - 1 - ], - ], - } - } - } - ], - [ - "type_data", - { - "display_data": "Malleus Kill Team", - "formation_options": [ - "devastator", - "veteran", - "assault", - "scout", - "tactical", - "terminator" - ] - } - ] - ], + // Will return as soon as custom squads are supported; + // "veteran_squad": [ + // // Malleus Kill Team - Anti Vehicle / Anti Large + // // Vanguard Veteran Sergeant + // [ + // "Veteran Sergeant", + // { + // "max": 1, + // "min": 1, + // "role": "Malleus Watch Sergeant", + // "loadout": { + // "required": { + // "wep1": [ + // "Stalker Pattern Bolter", + // 1 + // ], + // "wep2": [ + // "Combat Knife", + // 1 + // ] + // } + // } + // } + // ], + // // Vanguard Veterans + // [ + // "Veteran", + // { + // "max": 4, + // "min": 1, + // "role": "Vanguard Veteran", + // "loadout": { + // "required": { + // "wep1": [ + // "", + // 0 + // ], + // "wep2": [ + // "", + // 0 + // ] + // }, + // "option": { + // "wep1": [ + // [ + // [ + // "Infernus Heavy Bolter", + // "Infernus Heavy Bolter", + // "Infernus Heavy Bolter", + // "Infernus Heavy Bolter", + // "Missile Launcher", + // "Missile Launcher", + // "Multi-Melta", + // "Lascannon" + // ], + // 3 + // ], + // [ + // [ + // "Stalker Pattern Bolter" + // ], + // 2, + // { + // "wep2": "Combat Knife" + // } + // ] + // ] + // } + // } + // } + // ], + // [ + // "Terminator", + // { + // "max": 4, + // "min": 1, + // "role": "Terminator", + // "loadout": { + // "required": { + // "wep1": [ + // "Plasma Cannon", + // 1 + // ] + // }, + // "option": { + // "wep1": [ + // [ + // [ + // "Heavy Thunder Hammer" + // ], + // 1 + // ], + // [ + // [ + // "Lascannon" + // ], + // 1 + // ], + // [ + // [ + // "Multi-Melta" + // ], + // 1 + // ], + // ], + // } + // } + // } + // ], + // [ + // "type_data", + // { + // "display_data": "Malleus Kill Team", + // "formation_options": [ + // "devastator", + // "veteran", + // "assault", + // "scout", + // "tactical", + // "terminator" + // ] + // } + // ] + // ], "terminator_squad": [ // Purgatus Kill Team - Librarian Led assassins // Librarian Leader From 26fca21ff6eeb1b3910b7f2871ecd3ee4d946113 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Wed, 28 Jan 2026 20:08:19 +0300 Subject: [PATCH 45/47] scr_weapon merge fixes --- scripts/scr_weapon/scr_weapon.gml | 93 +++++++++++++++++++++++++++++-- 1 file changed, 87 insertions(+), 6 deletions(-) diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 87efc4fea6..1c224f88d8 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -760,6 +760,28 @@ global.weapons = { "maintenance" : 0.1, "tags": ["power", "dual", "dreadnought", "fist"], }, + "Contemptor CCW": { + "abbreviation": "ConCCW", + "attack": { + "standard": 600, + "master_crafted": 700, + "artifact": 850 + }, + "melee_mod": { + "standard": 1.2, + "master_crafted": 1.2, + "artifact": 1.2 + }, + "description": "A specialized Lightning Claw variant designed for Dreadnoughts, these claws are capable of ripping through enemy vehicles and infantry with ease.", + "melee_hands": 5, + "ranged_hands": 0, + "ammo": 0, + "range": 1, + "spli": 15, + "arp": 3, + "maintenance" : 0.1, + "tags": ["power", "dual", "dreadnought", "fist"], + }, "Thunder Hammer": { "abbreviation": "ThndHmr", "attack": { @@ -1366,6 +1388,22 @@ global.weapons = { "arp": 2, "tags": ["heavy_ranged", "terminator", "dreadnought"] }, + "Kheres Assault Cannon": { + "abbreviation": "KhrAssCnn", + "attack": { + "standard": 440, + "master_crafted": 460, + "artifact": 480 + }, + "description": "Forged in the forges of Mars and carried into battle by the mightiest of the Emperor's warriors, the Kheres Assault Cannon is a weapon of devastating reputation. Its rotary barrels roar with unceasing fury, unleashing a deluge of mass-reactive shells that tear through flesh, ceramite, and adamantium alike.", + "melee_hands": 2.1, + "ranged_hands": 3, + "ammo": 5, + "range": 14, + "spli": 20, + "arp": 2, + "tags": ["heavy_ranged", "terminator", "dreadnought", "ancient"] + }, "Autocannon": { "abbreviation": "Autocnn", "attack": { @@ -1529,17 +1567,17 @@ global.weapons = { "Infernus Heavy Bolter": { "abbreviation": "InfrHvyBltr", "attack": { - "standard": 320, - "master_crafted": 352, - "artifact": 384 + "standard": 250, + "master_crafted": 300, + "artifact": 450 }, "description": "The Deathwatch mag-clamp rare suspensor discs onto their infernus heavy bolters that reduce the weapon’s effective weight considerably. Such weapons are further bolstered by underslung heavy flamers that can incinerate those enemies that make it through the hail of explosive bolts.", "melee_hands": 1, "ranged_hands": 2.2, "ammo": 10, - "range": 16, - "spli": 6, - "arp": 1, + "range": 14, + "spli": 12, + "arp": 2, "second_profiles": ["Flamer"], "tags": ["heavy_ranged", "combi", "bolt"] }, @@ -2477,6 +2515,39 @@ global.gear = { "tags": ["dreadnought"], "maintenance" : 1, }, + "Contemptor Dreadnought": { + "abbreviation": "Cntmptr", + "armour_value": { + "standard": 40, + "master_crafted": 45, + "artifact": 50 + }, + "ranged_mod": { + "standard": -10, + "master_crafted": 0, + "artifact": 10 + }, + "melee_mod": { + "standard": -10, + "master_crafted": 0, + "artifact": 10 + }, + "hp_mod":{ + "standard": 30, + "master_crafted": 35, + "artifact": 50 + }, + "damage_resistance_mod": { + "standard": 20, + "master_crafted": 25, + "artifact": 40 + }, + "melee_hands": 8, + "ranged_hands": 8, + "description": "PLACEHOLDER", + "tags": ["dreadnought", "ancient"], + "maintenance" : 1, + }, "Tartaros": { "abbreviation": "Tartrs", "armour_value": { @@ -3098,6 +3169,16 @@ global.gear = { }, "tags": ["power_only", "jump"], }, + "Serpha Jump Pack": { + "abbreviation": "SphJmpPck", + "special_properties": ["Hammer of Wrath"], + "description": "Once the mainstay of the Legiones Astartes, now the Serpha Pattern Jump Pack is nothing but a sad reminder of these better times and of the terrible atrocities that followed. Mainly used by the Traitors in the modern Imperium, it is nonetheless seen in the Loyalist armouries in which it is prized for its superior energy cells and power cabling, but doesn't provide as reliable of a thruster as, for instance, the most common in the 41st millennium Mark VII Mars Pattern.", + "damage_resistance_mod": { + "standard": 30, + "master_crafted": 35, + "artifact": 40 + }, + "tags": ["power_only", "jump", "ancient"], "Heavy Weapons Pack": { "abbreviation": "HvyWpPck", "description": "A heavy ammunition backpack commonly used by devastators in conjunction with a heavy support weapon.", From 3290cd5d142373ca4901da269e7f5fa7a41b0f46 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Wed, 28 Jan 2026 21:21:40 +0300 Subject: [PATCH 46/47] Typo fix --- scripts/scr_weapon/scr_weapon.gml | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/scr_weapon/scr_weapon.gml b/scripts/scr_weapon/scr_weapon.gml index 1c224f88d8..1c3e96ac2d 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -3179,6 +3179,7 @@ global.gear = { "artifact": 40 }, "tags": ["power_only", "jump", "ancient"], + }, "Heavy Weapons Pack": { "abbreviation": "HvyWpPck", "description": "A heavy ammunition backpack commonly used by devastators in conjunction with a heavy support weapon.", From 2115872b5bd5a582a3191b7264141b29e306dd08 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Thu, 29 Jan 2026 19:17:45 +0300 Subject: [PATCH 47/47] Suggested fixes --- objects/obj_pnunit/Alarm_0.gml | 72 ++++++++++--------- scripts/scr_en_weapon/scr_en_weapon.gml | 20 +++--- .../scr_equipment_struct.gml | 2 +- .../scr_marine_struct/scr_marine_struct.gml | 2 +- 4 files changed, 50 insertions(+), 46 deletions(-) diff --git a/objects/obj_pnunit/Alarm_0.gml b/objects/obj_pnunit/Alarm_0.gml index 3aed55c8b0..fa9b5895bc 100644 --- a/objects/obj_pnunit/Alarm_0.gml +++ b/objects/obj_pnunit/Alarm_0.gml @@ -19,8 +19,12 @@ try { move_unit_block("east"); } -if (!instance_exists(enemy)) then exit; -engaged = collision_point(x-14, y, obj_enunit, 0, 1) || collision_point(x+14, y, obj_enunit, 0, 1); + if (!instance_exists(enemy)) { + engaged = false; + exit; + } + + engaged = collision_point(x-14, y, obj_enunit, 0, 1) || collision_point(x+14, y, obj_enunit, 0, 1); var once_only=0; var range_shoot=""; @@ -67,26 +71,26 @@ engaged = collision_point(x-14, y, obj_enunit, 0, 1) || collision_point(x+14, y, enemy2=enemy; } - + if (range[i]>=dist) and (ammo[i]!=0 || range[i]==1){ if (range[i]!=1) and (engaged=0) then range_shoot="ranged"; if ((range[i]!=floor(range[i]) || floor(range[i])=1) && engaged=1) then range_shoot="melee"; } - + if (range_shoot="ranged") and (range[i]>=dist){// Weapon meets preliminary checks var ap=0; if (apa[i]>att[i]) then ap=1;// Determines if it is AP or not if (wep[i]="Missile Launcher") then ap=1; if (string_count("Lascan",wep[i])>0) then ap=1; if (instance_number(obj_enunit)=1) and (obj_enunit.men=0) and (obj_enunit.veh>0) then ap=1; - - + + if (instance_exists(enemy)){ if (obj_enunit.veh>0) and (obj_enunit.men=0) and (apa[i]>10) then ap=1; - + if (ap=1) and (once_only=0){// Check for vehicles var enemy2,g=0,good=0; - + if (enemy.veh>0){ good=scr_target(enemy,"veh");// First target has vehicles, blow it to hell scr_shoot(i,enemy,good,"arp","ranged"); @@ -108,17 +112,17 @@ engaged = collision_point(x-14, y, obj_enunit, 0, 1) || collision_point(x+14, y, if (good=0) then ap=0;// Fuck it, shoot at infantry } } - - - - - - + + + + + + if (instance_exists(enemy)) and (once_only=0){ if (enemy.medi>0) and (enemy.veh=0){ good=scr_target(enemy,"medi");// First target has vehicles, blow it to hell scr_shoot(i,enemy,good,"medi","ranged"); - + if (good=0) and (instance_number(obj_enunit)>1){// First target does not have vehicles, cycle through objects to find one that has vehicles var x2=enemy.x; repeat(instance_number(obj_enunit)-1){ @@ -135,15 +139,15 @@ engaged = collision_point(x-14, y, obj_enunit, 0, 1) || collision_point(x+14, y, // Was previously ap=1; } } - - - - - + + + + + if (instance_exists(enemy)){ if (ap=0) and (once_only=0){// Check for men var g,good,enemy2;g=0;good=0; - + if (enemy.men+enemy.medi>0){ good=scr_target(enemy,"men");// First target has vehicles, blow it to hell scr_shoot(i,enemy,good,"att","ranged"); @@ -162,17 +166,17 @@ engaged = collision_point(x-14, y, obj_enunit, 0, 1) || collision_point(x+14, y, } } } - }else if (range_shoot="melee") and ((range[i]==1) or (range[i]!=floor(range[i]))){// Weapon meets preliminary checks + }else if (range_shoot="melee") and ((range[i]==1) or (range[i]!=floor(range[i]))){// Weapon meets preliminary checks var ap=0; if (apa[i]==1) then ap=1;// Determines if it is AP or not - + if (enemy.men=0) and (apa[i]=0) and (att[i]>=80){ apa[i]=floor(att[i]/2);ap=1; } - + if (apa[i]==1) and (once_only=0){// Check for vehicles var enemy2,g=0,good=0; - + if (enemy.veh>0){ good=scr_target(enemy,"veh");// First target has vehicles, blow it to hell if (range[i]=1) then scr_shoot(i,enemy,good,"arp","melee"); @@ -180,10 +184,10 @@ engaged = collision_point(x-14, y, obj_enunit, 0, 1) || collision_point(x+14, y, if (good!=0) then once_only=1; if (good=0) and (att[i]>0) then ap=0;// Fuck it, shoot at infantry } - + if (enemy.veh=0) and (enemy.medi>0) and (once_only=0){// Check for vehicles var enemy2,g=0,good=0; - + if (enemy.medi>0){ good=scr_target(enemy,"medi");// First target has vehicles, blow it to hell if (range[i]=1) then scr_shoot(i,enemy,good,"medi","melee"); @@ -191,12 +195,12 @@ engaged = collision_point(x-14, y, obj_enunit, 0, 1) || collision_point(x+14, y, if (good!=0) then once_only=1; if (good=0) and (att[i]>0) then ap=0;// Fuck it, shoot at infantry } - - - + + + if (ap=0) and (once_only=0){// Check for men var g=0,good=0,enemy2; - + if (enemy.men>0) and (once_only=0){ // show_message(string(wep[i])+" attacking"); good=scr_target(enemy,"men"); @@ -205,9 +209,9 @@ engaged = collision_point(x-14, y, obj_enunit, 0, 1) || collision_point(x+14, y, if (good!=0) then once_only=1; } } - - - + + + } } diff --git a/scripts/scr_en_weapon/scr_en_weapon.gml b/scripts/scr_en_weapon/scr_en_weapon.gml index e46a2ab419..89b18785f8 100644 --- a/scripts/scr_en_weapon/scr_en_weapon.gml +++ b/scripts/scr_en_weapon/scr_en_weapon.gml @@ -127,7 +127,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { amm = 6; break; default: - show_debug_message_adv($"Unkown weapon name: {name}; script: scr_en_weapon.gml"); + show_debug_message_adv($"Unknown weapon name: {name}; script: scr_en_weapon.gml"); break; } @@ -152,7 +152,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; break; default: - show_debug_message_adv($"Unkown weapon name: {name}; script: scr_en_weapon.gml"); + show_debug_message_adv($"Unknown weapon name: {name}; script: scr_en_weapon.gml"); break; } } @@ -387,7 +387,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; break; default: - show_debug_message_adv($"Unkown weapon name: {name}; script: scr_en_weapon.gml"); + show_debug_message_adv($"Unknown weapon name: {name}; script: scr_en_weapon.gml"); break; } } @@ -492,7 +492,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; break; default: - show_debug_message_adv($"Unkown weapon name: {name}; script: scr_en_weapon.gml"); + show_debug_message_adv($"Unknown weapon name: {name}; script: scr_en_weapon.gml"); break; } } @@ -566,7 +566,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { rang = 20; break; default: - show_debug_message_adv($"Unkown weapon name: {name}; script: scr_en_weapon.gml"); + show_debug_message_adv($"Unknown weapon name: {name}; script: scr_en_weapon.gml"); break; } } @@ -640,7 +640,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { arp = 1; rang = 2.1; if (obj_ini.preomnor = 1) { - atta = 19; + atta = 90; } break; case "Scything Talons": @@ -677,12 +677,12 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { amm = 1; break; default: - show_debug_message_adv($"Unkown weapon name: {name}; script: scr_en_weapon.gml"); + show_debug_message_adv($"Unknown weapon name: {name}; script: scr_en_weapon.gml"); break; } } - if (obj_ncombat.enemy >= 10) or(obj_ncombat.enemy = 2) or(obj_ncombat.enemy = 5) or(obj_ncombat.enemy = 1) { + if (obj_ncombat.enemy >= 10 || obj_ncombat.enemy == 2 || obj_ncombat.enemy == 5 || obj_ncombat.enemy == 1) { switch(name) { case "Plasma Pistol": atta = 70; @@ -970,7 +970,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = choose(0, 1); break; default: - show_debug_message_adv($"Unkown weapon name: {name}; script: scr_en_weapon.gml"); + show_debug_message_adv($"Unknown weapon name: {name}; script: scr_en_weapon.gml"); break; } } @@ -1062,7 +1062,7 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { spli = 3; break; default: - show_debug_message_adv($"Unkown weapon name: {name}; script: scr_en_weapon.gml"); + show_debug_message_adv($"Unknown weapon name: {name}; script: scr_en_weapon.gml"); break; } } diff --git a/scripts/scr_equipment_struct/scr_equipment_struct.gml b/scripts/scr_equipment_struct/scr_equipment_struct.gml index 2a0804f79b..c14be36dd0 100644 --- a/scripts/scr_equipment_struct/scr_equipment_struct.gml +++ b/scripts/scr_equipment_struct/scr_equipment_struct.gml @@ -365,7 +365,7 @@ function EquipmentStruct(item_data, core_type, quality_request = "none", arti_st }; } -/// @param {string} search_area possible values: "any", "weapon", "gear', "armour", "mobility"; +/// @param {string} search_area possible values: "any", "weapon", "gear", "armour", "mobility" function gear_weapon_data(search_area = "any", item, wanted_data = "all", sub_class = false, quality_request = "standard", arti_struct = -1) { var item_data_set = false; var equip_area = false; diff --git a/scripts/scr_marine_struct/scr_marine_struct.gml b/scripts/scr_marine_struct/scr_marine_struct.gml index 28f762d2cb..11fa22474a 100644 --- a/scripts/scr_marine_struct/scr_marine_struct.gml +++ b/scripts/scr_marine_struct/scr_marine_struct.gml @@ -1809,7 +1809,7 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data = {} psychic_bonus *= IsSpecialist(SPECIALISTS_LIBRARIANS) ? 1 : 0.25; psychic_bonus = round(psychic_bonus); primary_weapon.attack += psychic_bonus; - basic_wep_string += $"Psychic Power: +{psychic_bonus}#"; + explanation_string += $"Psychic Power: +{psychic_bonus}#"; } }