diff --git a/ChapterMaster.yyp b/ChapterMaster.yyp index 369434b4c2..7ce25f5e91 100644 --- a/ChapterMaster.yyp +++ b/ChapterMaster.yyp @@ -1075,6 +1075,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",},}, @@ -1669,6 +1670,7 @@ {"id":{"name":"spr_weapon_mmelta","path":"sprites/spr_weapon_mmelta/spr_weapon_mmelta.yy",},}, {"id":{"name":"spr_weapon_phobos_bolter","path":"sprites/spr_weapon_phobos_bolter/spr_weapon_phobos_bolter.yy",},}, {"id":{"name":"spr_weapon_phobos_boltpis","path":"sprites/spr_weapon_phobos_boltpis/spr_weapon_phobos_boltpis.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",},}, @@ -1689,6 +1691,7 @@ {"id":{"name":"spr_weapon_ryza_plasg","path":"sprites/spr_weapon_ryza_plasg/spr_weapon_ryza_plasg.yy",},}, {"id":{"name":"spr_weapon_ryza_plasp","path":"sprites/spr_weapon_ryza_plasp/spr_weapon_ryza_plasp.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/datafiles/main/chapters/8.JSON b/datafiles/main/chapters/8.JSON index f873483ba1..405741b694 100644 --- a/datafiles/main/chapters/8.JSON +++ b/datafiles/main/chapters/8.JSON @@ -225,7 +225,7 @@ "custom_roles": { "veteran": { "name": "Firedrake", - "wep1": "Power Sword" + "wep2": "Power Sword" }, "veteran_sergeant": { "name": "Firedrake Master" diff --git a/objects/obj_controller/Step_0.gml b/objects/obj_controller/Step_0.gml index 07f08714e6..a1d8a216f2 100644 --- a/objects/obj_controller/Step_0.gml +++ b/objects/obj_controller/Step_0.gml @@ -575,7 +575,7 @@ try { temp[130] += $"{name}: {dr}%\n"; } } - temp[130] += string("CON: {0}%\nEXP: {1}%", round(unit.constitution / 2), round(unit.experience / 10)); + temp[130] += $"CON: {round(unit.constitution / 2)}%"; if (is_struct(temp[121])) { try { temp[121].destroy_image(); diff --git a/objects/obj_enunit/Alarm_0.gml b/objects/obj_enunit/Alarm_0.gml index ba93e60882..e5f01e978f 100644 --- a/objects/obj_enunit/Alarm_0.gml +++ b/objects/obj_enunit/Alarm_0.gml @@ -259,7 +259,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 c9e59fd214..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,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] = 25; + dudes_hp[j] = 700; } } if (dudes[j] = "Greater Daemon of Khorne") { @@ -97,96 +97,98 @@ 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] = 15; + dudes_hp[j] = 500; + 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.7; + 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] = 25; - dudes_hp[j] = 700; + dudes_ac[j] = 10; + dudes_hp[j] = 900; + 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) { 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] = 15; - dudes_hp[j] = 120; + dudes_hp[j] = 200; men += dudes_num[j]; - dudes_dr[j] = 0.7; + dudes_dr[j] = 0.4; } if (dudes[j] = "Daemonette") { scr_en_weapon("Daemonette Melee", true, dudes_num[j], dudes[j], j); - dudes_ac[j] = 15; - dudes_hp[j] = 100; + dudes_ac[j] = 10; + dudes_hp[j] = 150; men += dudes_num[j]; - dudes_dr[j] = 0.7; + 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] = 15; + dudes_ac[j] = 10; dudes_hp[j] = 100; men += dudes_num[j]; - dudes_dr[j] = 0.8; + dudes_dr[j] = 0.5; } 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] = 10; + dudes_hp[j] = 300; men += dudes_num[j]; - dudes_dr[j] = 0.6; + 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.75; + 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; - dudes_dr[j] = 1; + 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] = 40; dudes_hp[j] = 250; veh += dudes_num[j]; dudes_vehicle[j] = 1; - dudes_dr[j] = 1; + dudes_dr[j] = 0.5; } } @@ -332,39 +334,43 @@ 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.9; 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] = 15; dudes_hp[j] = 120; + dudes_dr[j] = 0.75; 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] = 30; + dudes_hp[j] = 200; + 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] = 15; + dudes_ac[j] = 30; dudes_hp[j] = 150; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -373,6 +379,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.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -381,13 +388,15 @@ 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.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; } @@ -414,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]; } } @@ -440,56 +451,56 @@ 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] = 15; 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.25; } 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] = 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_hp[j] = 30; + dudes_ac[j] = 5; + dudes_hp[j] = 50; men += dudes_num[j]; dudes_dr[j] = 0.5; } 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.65; + dudes_dr[j] = 0.7; } 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] = 15; + 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] = 15; + 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] = 5; + dudes_hp[j] = 75; men += dudes_num[j]; dudes_dr[j] = 0.75; } @@ -503,24 +514,24 @@ 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] = 15; + dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.8; + dudes_dr[j] = 0.75; } 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] = 15; + dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.6; } 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] = 15; + dudes_hp[j] = 60; men += dudes_num[j]; dudes_dr[j] = 0.75; } @@ -533,40 +544,43 @@ 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] = 15; + dudes_hp[j] = 60; men += dudes_num[j]; - dudes_dr[j] = 0.75; + 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_hp[j] = 20; + 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] = 20; + dudes_ac[j] = 30; dudes_hp[j] = 200; + 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] = 23; + dudes_ac[j] = 30; dudes_hp[j] = 200; + dudes_dr[j] = 0.5; 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.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -575,8 +589,9 @@ if __b__ { scr_en_weapon("Storm Bolter", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 30; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { - dudes_hp[j] = 300; + dudes_hp[j] = 200; } + dudes_dr[j] = 0.50; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -584,8 +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.8; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -612,8 +628,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] = 15; + dudes_hp[j] = 150; men += dudes_num[j]; dudes_dr[j] = 0.5; } @@ -621,100 +637,112 @@ 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] = 15; 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] = 15; + 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") { 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.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] = 55; + dudes_ac[j] = 40; 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] = 50; dudes_hp[j] = 600; + 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] = 10; - dudes_hp[j] = 30; + dudes_ac[j] = 5; + 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] = 5; 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] = 10; + 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] = 10; + dudes_hp[j] = 60; + dudes_dr[j] = 0.9; 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; + dudes_dr[j] = 0.8; men += dudes_num[j]; } if (dudes[j] = "Fire Dragon") { @@ -722,88 +750,96 @@ if __b__ { 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_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] = 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] = 15; - dudes_hp[j] = 30; + dudes_ac[j] = 10; + 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] = 5; 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] = 10; 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] = 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] = 20; - dudes_hp[j] = 80; + dudes_ac[j] = 25; + dudes_hp[j] = 125; + dudes_dr[j] = 0.70; men += dudes_num[j]; } 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]; dudes_vehicle[j] = 1; } @@ -811,8 +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.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -821,22 +858,25 @@ 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_ac[j] = 30; + dudes_hp[j] = 200; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } 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); - dudes_ac[j] = 40; + scr_en_weapon("Starcannon", false, dudes_num[j], dudes[j], j); + dudes_ac[j] = 30; dudes_hp[j] = 200; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -846,6 +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; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -863,126 +904,135 @@ 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] = 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] = 40; + dudes_ac[j] = 10; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 150; + dudes_dr[j] = 0.75; } 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] = 15; if (obj_ncombat.started = 0) or(dudes_num[j] > 1) { dudes_hp[j] = 200; + dudes_dr[j] = 0.75; } 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] = 25; 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") { 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]; } 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.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] = 40; - dudes_hp[j] = 120; + dudes_ac[j] = 15; + dudes_hp[j] = 150; + 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] = 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] = 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] = 20; - dudes_hp[j] = 70; + dudes_ac[j] = 10; + 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] = 80; + dudes_hp[j] = 125; + dudes_dr[j] = 0.9; 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_dr[j] = 0.8; dudes_special[j] = "Jetpack"; men += dudes_num[j]; } @@ -991,8 +1041,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_hp[j] = 200; + dudes_ac[j] = 30; + dudes_hp[j] = 350; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1000,8 +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] = 35; - dudes_hp[j] = 150; + dudes_ac[j] = 30; + dudes_hp[j] = 300; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1018,81 +1070,80 @@ 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.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] = 30; - dudes_hp[j] = 100; - medi += dudes_num[j]; - dudes_vehicle[j] = 1; + dudes_ac[j] = 25; + dudes_hp[j] = 200; + 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] = 30; - dudes_hp[j] = 75; - medi += dudes_num[j]; - dudes_vehicle[j] = 1; + 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] = 30; - dudes_hp[j] = 75; - medi += dudes_num[j]; - dudes_vehicle[j] = 1; + 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] = 30; - dudes_hp[j] = 100; - medi += dudes_num[j]; - dudes_vehicle[j] = 1; + dudes_ac[j] = 5; + 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] = 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] = 20; - dudes_hp[j] = 50; + dudes_ac[j] = 15; + dudes_hp[j] = 75; + dudes_dr[j] = 0.75; 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] = 40; 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] = 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] = 10; - dudes_hp[j] = 50; + dudes_hp[j] = 75; men += dudes_num[j]; } @@ -1100,14 +1151,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.6; 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.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1124,91 +1177,94 @@ 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] = 25; + dudes_hp[j] = 400; + 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] = 30; - dudes_hp[j] = 100; + dudes_ac[j] = 25; + dudes_hp[j] = 200; + 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] = 20; + 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] = 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.25; + 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] = 30; dudes_hp[j] = 300; - dudes_dr[j] = 0.75; + dudes_dr[j] = 0.6; 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]; } 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] = 20; + 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] = 10; - dudes_hp[j] = 50; + 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_dr[j] = 0.75; + 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]; 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] = 15; + dudes_hp[j] = 300; + dudes_dr[j] = 0.60; men += dudes_num[j]; } - dudes_dr[j] += 0.25; } /* */ @@ -1220,31 +1276,31 @@ 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] = 40; + 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.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] = 44; + dudes_ac[j] = 25; 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") { 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_hp[j] = 120; + dudes_ac[j] = 25; + dudes_hp[j] = 150; men += dudes_num[j]; dudes_dr[j] = 0.5; } @@ -1252,23 +1308,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] = 25; 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_hp[j] = 100; + dudes_hp[j] = 150; + 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_hp[j] = 100; + dudes_ac[j] = 25; + dudes_hp[j] = 150; + dudes_dr[j] = 0.5; men += dudes_num[j]; } @@ -1276,76 +1335,82 @@ 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.7; + dudes_dr[j] = 0.5; } if (dudes[j] = "Venerable Chaos Terminator") { 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.6; + 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.6; + 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] = 30; - 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] = 17; + dudes_ac[j] = 15; dudes_hp[j] = 125; + dudes_dr[j] = 0.85; men += dudes_num[j]; } 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]; } 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]; } 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]; } 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"; men += dudes_num[j]; } @@ -1353,81 +1418,90 @@ 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]; } 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_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_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_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] = 25; - dudes_hp[j] = 125; + 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] = 25; + dudes_ac[j] = 15; 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") { 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.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] = 20; + dudes_ac[j] = 30; dudes_hp[j] = 200; + 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] = 30; - dudes_hp[j] = 300; + dudes_ac[j] = 40; + dudes_hp[j] = 350; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1436,21 +1510,24 @@ 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; 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.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] = 25; + dudes_ac[j] = 40; dudes_hp[j] = 400; + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1461,6 +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; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1468,36 +1546,38 @@ 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] = 15; + dudes_hp[j] = 40; + 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_hp[j] = 20; + 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] = 30; - 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] = 17; + dudes_ac[j] = 10; dudes_hp[j] = 100; + dudes_dr[j] = 0.75; men += dudes_num[j]; } @@ -1511,8 +1591,9 @@ 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]; dudes_vehicle[j] = 1; } @@ -1522,13 +1603,14 @@ if __b__ { scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j); dudes_ac[j] = 40; dudes_hp[j] = 250; + 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; @@ -1557,53 +1639,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] = 15; 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] = 25; dudes_hp[j] = 100; + 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] = 25; - dudes_hp[j] = 100; + dudes_ac[j] = 10; + 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] = 25; - dudes_hp[j] = 100; + dudes_ac[j] = 10; + 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] = 25; - dudes_hp[j] = 100; + dudes_ac[j] = 15; + dudes_hp[j] = 90; + dudes_dr[j] = 0.85; 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.75; } 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]; } @@ -1613,41 +1701,45 @@ if __b__ { 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_hp[j] = 600; + dudes_hp[j] = 300; } + dudes_dr[j] = 0.5; veh += dudes_num[j]; dudes_vehicle[j] = 1; } 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.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] = 10; + dudes_ac[j] = 5; dudes_hp[j] = 30; + dudes_dr[j] = 0.75; 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] = 40; + dudes_hp[j] = 500; + dudes_dr[j] = 0.6; 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_hp[j] = 350; + dudes_dr[j] = 0.6; veh += dudes_num[j]; dudes_vehicle[j] = 1; } @@ -1679,16 +1771,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 f91f63f383..2531ccb64a 100644 --- a/objects/obj_ncombat/KeyPress_13.gml +++ b/objects/obj_ncombat/KeyPress_13.gml @@ -82,31 +82,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-=1; 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 = 24;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)){ @@ -144,25 +135,16 @@ else if (timer_stage=3){ obj_enunit.alarm[8]=4; turns+=1; } - var messages=0;messages_to_show = 24;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 = 24;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_p_assra/Step_0.gml b/objects/obj_p_assra/Step_0.gml index 8175b49f48..17fab4fc2b 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_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 (!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 continue + + 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/objects/obj_pnunit/Alarm_0.gml b/objects/obj_pnunit/Alarm_0.gml index 293a1c15b1..e6c4c1e173 100644 --- a/objects/obj_pnunit/Alarm_0.gml +++ b/objects/obj_pnunit/Alarm_0.gml @@ -19,11 +19,10 @@ try { move_unit_block("east"); } - 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; +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); - var once_only;once_only=0; + var once_only=0; var range_shoot=""; var 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 9a02730af4..a2fd833d24 100644 --- a/objects/obj_pnunit/Create_0.gml +++ b/objects/obj_pnunit/Create_0.gml @@ -121,8 +121,6 @@ hostile_splash=0; alarm[1]=4; -action_set_alarm(1, 3); - hit = function() { return scr_hit(x1, y1, x2, y2) && obj_ncombat.fadein <= 0; }; diff --git a/objects/obj_popup/Draw_0.gml b/objects/obj_popup/Draw_0.gml index 5225f9aa40..226307db8c 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_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_only")) { + n_good5 = 0; + warning = "Cannot use this without Dreadnought Armour."; + } } } } diff --git a/objects/obj_popup/Mouse_50.gml b/objects/obj_popup/Mouse_50.gml index 876c23571e..5c5480eb6b 100644 --- a/objects/obj_popup/Mouse_50.gml +++ b/objects/obj_popup/Mouse_50.gml @@ -322,7 +322,7 @@ if (scr_hit(xx+1465, yy+499,xx+1576,yy+518)){// Promoting right here 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;i0){ - 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; - if (global.cheat_debug) { - //Debug space for 30k weapons - //Volkite Pack - item[i] = "Volkite Serpenta"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - forge_cost[i] = 0; - i += 1; - item[i] = "Volkite Charger"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - forge_cost[i] = 0; - i += 1; - item[i] = "Volkite Caliver"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - forge_cost[i] = 0; - i += 1; - item[i] ="Volkite Culverin"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - forge_cost[i] = 0; - i += 1; - //Bolt Pack - item[i] = "Phobos Bolt Pistol"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - forge_cost[i] = 0; - i += 1; - item[i] = "Phobos Bolter"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - forge_cost[i] = 0; - i += 1; - item[i] = "Mars Heavy Bolter"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - forge_cost[i] = 0; - i += 1; - item[i] = "Tigris Combi Bolter"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - forge_cost[i] = 0; - i += 1; - //Plasma Pack - item[i] = "Ryza Plasma Gun"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - forge_cost[i] = 0; - i += 1; - item[i] = "Ryza Plasma Pistol"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - forge_cost[i] = 0; - i += 1; - item[i] = "Mars Plasma Cannon"; - item_stocked[i] = scr_item_count(item[i]); - item_cost[i] = 0; - forge_cost[i] = 0; - i += 1; - //End of debug space for 30k weapons - } - 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; - 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] = "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] = "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] = "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]); -} - -if (global.cheat_debug) { - var i_count = array_length(item_cost); - var empty_array = array_create(i_count, 0); - item_cost = empty_array; - forge_cost = array_create(i_count, 1); - nobuy = empty_array; -} - -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" - - -/* */ -/* */ - -/// @description Sells an item and adds resources to the player -/// @param {Real} item_index The index of the item in the global array -/// @param {Real} sell_count The quantity to sell -/// @param {Real} sell_modifier The value modifier (0.0-1.0) -/// @returns {Boolean} Whether the sale was successful -sell_item = function (item_index, sell_count, sell_modifier) { - if (item_stocked[item_index] >= sell_count) { - scr_add_item(item[item_index], (-sell_count), "standard"); - item_stocked[item_index] -= (sell_count); - var sell_price = (item_cost[item_index] * sell_modifier) * sell_count; - obj_controller.requisition += sell_price; - - return true; - } - return false; -} +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; + if (global.cheat_debug) { + //Debug space for 30k weapons + //Volkite Pack + item[i] = "Volkite Serpenta"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + forge_cost[i] = 0; + i += 1; + item[i] = "Volkite Charger"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + forge_cost[i] = 0; + i += 1; + item[i] = "Volkite Caliver"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + forge_cost[i] = 0; + i += 1; + item[i] ="Volkite Culverin"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + forge_cost[i] = 0; + i += 1; + //Bolt Pack + item[i] = "Phobos Bolt Pistol"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + forge_cost[i] = 0; + i += 1; + item[i] = "Phobos Bolter"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + forge_cost[i] = 0; + i += 1; + item[i] = "Mars Heavy Bolter"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + forge_cost[i] = 0; + i += 1; + item[i] = "Tigris Combi Bolter"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + forge_cost[i] = 0; + i += 1; + //Plasma Pack + item[i] = "Ryza Plasma Gun"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + forge_cost[i] = 0; + i += 1; + item[i] = "Ryza Plasma Pistol"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + forge_cost[i] = 0; + i += 1; + item[i] = "Mars Plasma Cannon"; + item_stocked[i] = scr_item_count(item[i]); + item_cost[i] = 0; + forge_cost[i] = 0; + i += 1; + //End of debug space for 30k weapons + } + 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; + if (global.chapter_name == "Deathwatch"){ + i += 1; + 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; + 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]); +} + +if (global.cheat_debug) { + var i_count = array_length(item_cost); + var empty_array = array_create(i_count, 0); + item_cost = empty_array; + forge_cost = array_create(i_count, 1); + nobuy = empty_array; +} + +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" + + +/* */ +/* */ + +/// @description Sells an item and adds resources to the player +/// @param {Real} item_index The index of the item in the global array +/// @param {Real} sell_count The quantity to sell +/// @param {Real} sell_modifier The value modifier (0.0-1.0) +/// @returns {Boolean} Whether the sale was successful +sell_item = function (item_index, sell_count, sell_modifier) { + if (item_stocked[item_index] >= sell_count) { + scr_add_item(item[item_index], (-sell_count), "standard"); + item_stocked[item_index] -= (sell_count); + var sell_price = (item_cost[item_index] * sell_modifier) * sell_count; + obj_controller.requisition += sell_price; + + return true; + } + return false; +} diff --git a/scripts/scr_after_combat/scr_after_combat.gml b/scripts/scr_after_combat/scr_after_combat.gml index 2cf8ed2f75..997357d43d 100644 --- a/scripts/scr_after_combat/scr_after_combat.gml +++ b/scripts/scr_after_combat/scr_after_combat.gml @@ -456,13 +456,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_clean/scr_clean.gml b/scripts/scr_clean/scr_clean.gml index a9062f10c4..236b51fe4b 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: @@ -136,23 +136,23 @@ function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_dam // ### Vehicle Damage Processing ### if (!target_is_infantry && veh > 0) { - damage_vehicles(damage_data, hostile_shots, hostile_damage); + damage_vehicles(damage_data, hostile_shots, hostile_damage, weapon_index_position); } // ### Marine + Dreadnought Processing ### if (target_is_infantry && (men + dreads > 0)) { - damage_infantry(damage_data, hostile_shots, hostile_damage); + damage_infantry(damage_data, hostile_shots, hostile_damage, weapon_index_position); } if (damage_data.hits < hostile_shots) { // ### Vehicle Damage Processing ### if (target_is_infantry && veh > 0) { - damage_vehicles(damage_data, hostile_shots, hostile_damage); + damage_vehicles(damage_data, hostile_shots, hostile_damage, weapon_index_position); } // ### Marine + Dreadnought Processing ### if (!target_is_infantry && (men + dreads > 0)) { - damage_infantry(damage_data, hostile_shots, hostile_damage); + damage_infantry(damage_data, hostile_shots, hostile_damage, weapon_index_position); } } @@ -170,7 +170,25 @@ function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_dam } } -function damage_infantry(_damage_data, _shots, _damage) { +/// @mixin +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; + break; + } + // Find valid infantry targets var valid_marines = []; for (var m = 0, l = array_length(unit_struct); m < l; m++) { @@ -196,12 +214,13 @@ function damage_infantry(_damage_data, _shots, _damage) { // Apply damage var _shot_luck = roll_dice_chapter(1, 100, "low"); var _modified_damage = 0; - if (_shot_luck <= 5) { - _modified_damage = _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 = _damage - (2 * _marine_armour); + } else if (_shot_luck == 100) { _modified_damage = _damage; } else { - _modified_damage = _damage - marine_ac[marine_index]; + _modified_damage = _damage - _marine_armour; } if (_modified_damage > 0) { @@ -251,7 +270,25 @@ function damage_infantry(_damage_data, _shots, _damage) { return; } -function damage_vehicles(_damage_data, _shots, _damage) { +/// @mixin +function damage_vehicles(_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; + break; + } + var veh_index = -1; // Find valid vehicle targets @@ -274,7 +311,7 @@ function damage_vehicles(_damage_data, _shots, _damage) { veh_index = array_random_element(valid_vehicles); // Apply damage - var _modified_damage = _damage - veh_ac[veh_index]; + var _modified_damage = _damage - (veh_ac[veh_index] * _armour_mod); if (_modified_damage < 0) { _modified_damage = 0.25; } diff --git a/scripts/scr_company_order/scr_company_order.gml b/scripts/scr_company_order/scr_company_order.gml index 81d0c70f75..e13c88737f 100644 --- a/scripts/scr_company_order/scr_company_order.gml +++ b/scripts/scr_company_order/scr_company_order.gml @@ -255,8 +255,7 @@ function scr_company_order(company) { var squad_builder = [ ["tactical_squad",_roles[eROLE.Tactical],5], ["devastator_squad",_roles[eROLE.Devastator],5], - ["sternguard_veteran_squad",_roles[eROLE.Veteran],5], - ["vanguard_veteran_squad",_roles[eROLE.Veteran],5], + ["veteran_squad",_roles[eROLE.Veteran],5], ["terminator_squad",_roles[eROLE.Terminator],4], ["terminator_assault_squad",_roles[eROLE.Terminator],4], ["assault_squad",_roles[eROLE.Assault],5], diff --git a/scripts/scr_culture_visuals/scr_culture_visuals.gml b/scripts/scr_culture_visuals/scr_culture_visuals.gml index 33d0ad0855..2bd2f75172 100644 --- a/scripts/scr_culture_visuals/scr_culture_visuals.gml +++ b/scripts/scr_culture_visuals/scr_culture_visuals.gml @@ -643,7 +643,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, @@ -2163,18 +2170,56 @@ global.weapon_visual_data = { ] }, -"Relic Blade": { +"Wrist-Mounted Storm Bolter": { + base: { + weapon_data: { + display_type: "normal_ranged", + new_weapon_draw: true + }, + }, + variants: [{ + sprite: spr_weapon_sbolter, + }] +}, + +"Shotgun": { + base: { + weapon_data: { + display_type: "normal_ranged", + new_weapon_draw: true + }, + }, + variants: [{ + sprite: spr_weapon_shotgun, + }] +}, + +"Omnissian Axe": { base: { weapon_data: { - hand_on_top: true, display_type: "melee_onehand", hand_type: 3, - arm_type : 3, + arm_type : 3, + new_weapon_draw: true + }, + }, + variants: [ + { + sprite: spr_weapon_omnissian_axe + } + ] +}, + +"Deathwatch Sniper Rifle": { + base: { + weapon_data: { + display_type: "melee_twohand", + new_weapon_draw: true, }, }, variants: [ { - sprite: spr_weapon_relic_blade + sprite: spr_weapon_sniper } ] } diff --git a/scripts/scr_en_weapon/scr_en_weapon.gml b/scripts/scr_en_weapon/scr_en_weapon.gml index dce60ac22b..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 = 0; + 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 = 300; + 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; @@ -130,20 +130,20 @@ 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; + atta = 80; + 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; } @@ -151,220 +151,230 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 6) { - if (argument0 = "Fusion Gun") or(argument0 = "Firepike") { - atta = 200; - arp = 1; + if (argument0 = "Fusion Gun"){ + atta = 180; + arp = 4; rang = 2; amm = 4; } + + if (argument0 = "Firepike") { + atta = 150; + arp = 4; + rang = 4; + amm = 4; + } if (argument0 = "Singing Spear") { - atta = 120; - arp = 0; + atta = 150; + arp = 2; rang = 1; spli = 3; } if (argument0 = "Singing Spear Throw") { atta = 120; - arp = 1; + arp = 2; rang = 2; spli = 3; } if (argument0 = "Witchblade") { - atta = 100; - arp = 1; + atta = 130; + 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 = 35; - arp = 0; + atta = 50; + arp = 2; rang = 2; } if (argument0 = "Twin Linked Shuriken Catapult") { - atta = 50; - arp = 0; + atta = 100; + arp = 2; rang = 2; } if (argument0 = "Avenger Shuriken Catapult") { - atta = 40; - arp = 0; + atta = 90; + arp = 2; rang = 3; } if (argument0 = "Power Weapon") or(argument0 = "Power Blades") { - atta = 80; - arp = 0; + atta = 100; + arp = 4; rang = 1; spli = 3; } if (argument0 = "Shuriken Pistol") { - atta = 25; - arp = 0; + atta = 50; + arp = 2; rang = 2.1; } if (argument0 = "Executioner") { - atta = 200; - arp = 1; + atta = 150; + arp = 4; rang = 1; } if (argument0 = "Scorpion Chainsword") { - atta = 40; - arp = 0; + atta = 100; + arp = 2; rang = 1; spli = 3; } if (argument0 = "Mandiblaster") { - atta = 20; - arp = 0; + atta = 60; + arp = 1; rang = 1; } if (argument0 = "Biting Blade") { - atta = 70; - arp = 0; + atta = 125; + 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 = 0; - arp = 200; + atta = 200; + arp = 4; rang = 1; amm = 1; } if (argument0 = "Deathspinner") { - atta = 50; - arp = 0; + atta = 125; + arp = 2; rang = 2; } if (argument0 = "Dual Deathspinner") { - atta = 80; - arp = 0; + atta = 250; + arp = 2; rang = 2; } if (argument0 = "Reaper Launcher") { - atta = 150; - arp = 80; + atta = 120; + arp = 4; rang = 20; amm = 8; spli = 3; } - if (argument0 = "Eldar Missile Launcher") { + if (argument0 = "Tempest Launcher") { atta = 200; arp = 1; - rang = 20; - amm = 4; - spli = 3; + rang = 15; + amm = 8; + spli = 9; } if (argument0 = "Laser Lance") { - atta = 80; - arp = 0; + atta = 180; + arp = 4; rang = 2; spli = 3; } if (argument0 = "Fusion Pistol") { - atta = 100; - arp = 1; - rang = 1.1; + atta = 125; + arp = 4; + rang = 2.1; amm = 4; } if (argument0 = "Plasma Pistol") { - atta = 60; - arp = 1; + atta = 100; + arp = 4; rang = 3.1; } if (argument0 = "Harlequin's Kiss") { - atta = 350; - arp = 0; + atta = 250; + arp = 4; rang = 1; amm = 1; } if (argument0 = "Wraithcannon") { - atta = 80; - arp = 1; + atta = 200; + arp = 4; rang = 2.1; } if (argument0 = "Pulse Laser") { - atta = 80; - arp = 1; + atta = 120; + arp = 3; rang = 15; } if (argument0 = "Bright Lance") { - atta = 100; - arp = 1; + atta = 200; + arp = 4; rang = 8; } if (argument0 = "Shuriken Cannon") { - atta = 65; - arp = 0; + atta = 160; + arp = 2; rang = 3; } if (argument0 = "Prism Cannon") { - atta = 250; - arp = 1; + atta = 400; + arp = 4; rang = 20; + spli = 1; } if (argument0 = "Twin Linked Doomweaver") { - atta = 100; - arp = 0; + atta = 250; + arp = 4; rang = 2; + spli = 2; } // Also create difficult terrain? if (argument0 = "Starcannon") { - atta = 140; - arp = 1; - rang = 3; - spli = 3; + atta = 250; + 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 = 100; - arp = 0; + atta = 200; + arp = 1; rang = 2; amm = 4; spli = 3; } if (argument0 = "Titan Starcannon") { - atta = 220; - arp = 1; + atta = 500; + arp = 4; rang = 4; - spli = 3; + spli = 8; } if (argument0 = "Phantom Pulsar") { atta = 500; - arp = 1; + arp = 4; rang = 20; spli = 3; } @@ -373,99 +383,99 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 7) { if (argument0 = "Choppa") { - atta = 28; - arp = 0; + atta = 100; + arp = 1; rang = 1; spli = 3; } if (argument0 = "Power Klaw") { - atta = 150; - arp = 1; + atta = 160; + arp = 3; rang = 1; spli = 3; } if (argument0 = "Slugga") { - atta = 27; - arp = 0; + atta = 70; + arp = 1; rang = 3.1; amm = 4; spli = 3; } if (argument0 = "Tankbusta Bomb") { - atta = 264; - arp = 1; + atta = 150; + arp = 4; rang = 1; amm = 1; - spli = 0; + spli = 1; } if (argument0 = "Big Shoota") { - atta = 100; - arp = 0; - rang = 12; + atta = 120; + arp = 1; + rang = 6; amm = 30; - spli = 0; + spli = 5; } if (argument0 = "Dakkagun") { - atta = 150; - arp = 0; - rang = 10; + atta = 140; + arp = 1; + rang = 8; amm = 20; - spli = 0; + spli = 10; } if (argument0 = "Deffgun") { - atta = 120; - arp = 0; + atta = 150; + arp = 4; rang = 8; amm = 20; - spli = 0; + spli = 1; } if (argument0 = "Snazzgun") { - atta = 80; - arp = 0; - rang = 10; + atta = 200; + arp = 2; + rang = 5; spli = 0; } if (argument0 = "Grot Blasta") { - atta = 12; - arp = 0; + atta = 50; + 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 = 30; - arp = 0; - rang = 6; + atta = 80; + arp = 1; + rang = 5; } if (argument0 = "Burna") { atta = 140; - arp = 1; + arp = 2; rang = 2; amm = 4; spli = 3; } if (argument0 = "Skorcha") { - atta = 160; - arp = 1; + atta = 200; + arp = 3; rang = 2; amm = 6; spli = 3; } if (argument0 = "Rokkit Launcha") { atta = 150; - arp = 1; + arp = 4; rang = 15; spli = 3; } if (argument0 = "Krooz Missile") { - atta = 250; - arp = 1; + atta = 300; + arp = 4; rang = 15; spli = 3; } @@ -474,68 +484,69 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (obj_ncombat.enemy = 8) { if (name = "Fusion Blaster") { - atta = 200; - arp = 1; + atta = 150; + arp = 4; rang = 2; amm = 4; } if (name = "Plasma Rifle") { atta = 120; - arp = 1; + arp = 3; rang = 10; } if (name = "Cyclic Ion Blaster") { - atta = 180; - arp = 0; + atta = 80; + 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 = 160; - arp = 1; + atta = 150; + arp = 2; rang = 15; amm = 6; spli = 3; } if (name = "Smart Missile System") { atta = 150; - arp = 1; + arp = 2; rang = 15; } if (name = "Small Railgun") { atta = 150; - arp = 1; + arp = 4; rang = 18; + spli = 1; } if (name = "Pulse Rifle") { - atta = 37; - arp = 0; + atta = 80; + arp = 2; rang = 12; } if (name = "Rail Rifle") { - atta = 65; - arp = 0; + atta = 80; + arp = 4; rang = 14; } if (name = "Kroot Rifle") { - atta = 25; - arp = 0; + atta = 100; + arp = 1; rang = 6; } if (name = "Vespid Crystal") { - atta = 60; - arp = 0; + atta = 100; + arp = 3; rang = 2.1; } if (name = "Railgun") { - atta = 400; - arp = 1; + atta = 250; + arp = 4; rang = 20; } } @@ -544,102 +555,104 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { if (argument0 = "Bonesword") { atta = 120; - arp = 0; + arp = 3; rang = 1; spli = 3; } if (argument0 = "Lash Whip") { - atta = 80; - arp = 0; + atta = 100; + arp = 1; rang = 2; } if (argument0 = "Heavy Venom Cannon") { - atta = 150; - arp = 1; + atta = 200; + arp = 4; rang = 8; } if (argument0 = "Crushing Claws") { - atta = 90; - arp = 1; + atta = 150; + arp = 4; rang = 1; spli = 3; } if (argument0 = "Rending Claws") { atta = 80; - arp = 1; + arp = 3; rang = 1; spli = 3; } if (argument0 = "Devourer") { - atta = choose(40, 60, 80, 100); - arp = 0; + atta = 90; + arp = 2; rang = 5; + spli = 3 if (obj_ini.preomnor = 1) { - atta = choose(48, 72, 96, 120); + atta = 120; } } if (argument0 = "Zoanthrope Blast") { - atta = 200; - arp = 1; - rang = 2; + atta = 250; + arp = 4; + rang = 6; + spli = 1; } if (argument0 = "Carnifex Claws") { - atta = 300; - arp = 1; + atta = 200; + arp = 4; rang = 1; spli = 3; } if (argument0 = "Venom Cannon") { - atta = 150; - arp = 0; + atta = 100; + arp = 4; rang = 5; } if (argument0 = "Deathspitter") { atta = 100; - arp = 0; + arp = 2; rang = 2.1; if (obj_ini.preomnor = 1) { - atta = 120; + atta = 150; } } if (argument0 = "Fleshborer") { - atta = 15; - arp = 0; + atta = 70; + arp = 1; rang = 2.1; if (obj_ini.preomnor = 1) { atta = 19; } } 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; + atta = 70; + arp = 3; rang = 1; } if (argument0 = "Witchfire") { atta = 100; - arp = 1; + arp = 3; rang = 2; } if (argument0 = "Autogun") { - atta = 20; - arp = 0; + atta = 60; + arp = 1; rang = 6; amm = 12; spli = 3; } if (argument0 = "Lictor Claws") { atta = 300; - arp = 0; + arp = 3; rang = 1; } if (argument0 = "Flesh Hooks") { - atta = 50; - arp = 0; + atta = 100; + arp = 2; rang = 2; amm = 1; } @@ -650,226 +663,236 @@ 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 = 0; + arp = 4; rang = 1; } if (argument0 = "Power Sword") { atta = 120; - arp = 0; + arp = 4; rang = 1; } if (argument0 = "Force Weapon") { - atta = 400; - arp = 1; + atta = 250; + 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 = 250; - arp = 0; + atta = 200; + 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 = 45; - arp = 0; + atta = 120; + arp = 1; rang = 12; amm = 15; - if (obj_ncombat.enemy = 5) then atta = 35; + if (obj_ncombat.enemy = 5) then atta = 80; } // Bursts if (argument0 = "Power Fist") { - atta = 425; - arp = 1; + atta = 250; + arp = 4; rang = 1; } if (argument0 = "Possessed Claws") { - atta = 250; + atta = 150; arp = 1; rang = 1; spli = 3; } if (argument0 = "Missile Launcher") { atta = 200; - arp = 1; + arp = 2; rang = 20; amm = 4; - spli = 3; } if (argument0 = "Chainsword") { - atta = 45; - arp = 0; + atta = 120; + arp = 1; rang = 1; + spli = 4; } if (argument0 = "Bolt Pistol") { - atta = 35; - arp = 0; + atta = 100; + arp = 1; rang = 3.1; amm = 18; + spli = 1; } if (argument0 = "Chainaxe") { - atta = 55; - arp = 0; + atta = 140; + arp = 1; rang = 1; + spli = 3; } if (argument0 = "Poisoned Chainsword") { - atta = 90; - arp = 0; + atta = 150; + arp = 1; rang = 1; + spli = 1; if (obj_ini.preomnor = 1) { - atta = 130; + atta = 180; } } if (argument0 = "Sonic Blaster") { - atta = 120; - arp = 0; + atta = 150; + arp = 3; rang = 3; - spli = 3; + spli = 6; } if (argument0 = "Rubric Bolter") { - atta = 80; - arp = 0; + atta = 150; + 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 = 20; - arp = 0; + atta = 60; + arp = 1; rang = 6; amm = 12; } if (argument0 = "Storm Bolter") { - atta = 65; - arp = 0; + atta = 180; + arp = 1; rang = 8; amm = 10; spli = 3; } if (argument0 = "Lascannon") { - atta = 200; - 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 = 300; - arp = 1; + atta = 800; + arp = 4; rang = 20; + spli = 2; } if (argument0 = "Twin-Linked Lascannon") { - atta = 300; - arp = 1; + atta = 800; + arp = 4; rang = 20; + spli = 2; } if (argument0 = "Battle Cannon") { atta = 300; - arp = 1; + 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 = 300; - arp = 0; + atta = 250; + arp = 3; rang = 12; - spli = 3; + spli = 8; } if (argument0 = "Havoc Launcher") { - atta = 100; - arp = 0; + atta = 300; + arp = 2; rang = 12; + spli = 12; } if (argument0 = "Baleflame") { - atta = 120; - arp = 0; + atta = 225; + 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; } if (name = "Ripper Gun") { - atta = 40; - arp = 0; + atta = 120; + arp = 1; rang = 3; amm = 5; spli = 0; } if (name = "Ogryn Melee") { atta = 90; - arp = 0; + arp = 4; rang = 1; } if (name = "Multi-Laser") { - atta = choose(60, 75, 90, 105); - arp = 0; + atta = 150; + arp = 2; rang = 10; } if (argument0 = "Blessed Weapon") { atta = 150; - arp = 1; + arp = 4; rang = 1; } if (argument0 = "Electro-Flail") { @@ -880,42 +903,42 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } 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 = 200; + atta = 120; arp = 1; rang = 4; } if (argument0 = "Laser Mace") { - atta = 200; - arp = 1; + atta = 150; + 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 = 20; - arp = 0; + atta = 60; + arp = 1; rang = 6; amm = 30; } if (name = "Daemonhost Claws") { atta = 350; - arp = 1; + arp = 4; rang = 1; spli = 3; } @@ -930,48 +953,49 @@ 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 = 0; + arp = 4; rang = 3; spli = 3; } if (name = "Warscythe") { atta = 200; - arp = 1; + arp = 4; rang = 1; spli = 0; } if (name = "Gauss Flayer") { - atta = choose(30, 30, 30, 50, 50, 70); + atta = 50; + arp = 2; rang = 6.1; - spli = 0; + spli = 1; } if (name = "Gauss Blaster") { - atta = choose(70, 70, 70, 70, 70, 100); - arp = choose(0, 0, 0, 0, 0, 1); + atta = 80; + arp = 2; rang = 6.1; spli = 0; } if (name = "Gauss Cannon") { - atta = 180; - arp = 1; + atta = 120; + arp = 4; rang = 10; spli = 3; } if (name = "Gauss Particle Cannon") { - atta = 300; - arp = 1; + atta = 250; + arp = 4; rang = 10.1; spli = 3; } if (name = "Overcharged Gauss Cannon") { atta = 250; - arp = 1; + arp = 4; rang = 8.1; spli = 3; } @@ -989,25 +1013,25 @@ function scr_en_weapon(name, is_man, man_number, man_type, group) { } if (name = "Gauss Flux Arc") { atta = 180; - arp = 1; + arp = 2; rang = 8; spli = 3; } if (name = "Particle Whip") { atta = 300; - arp = 1; + arp = 4; rang = 4.1; spli = 3; } if (name = "Gauss Flayer Array") { atta = 180; - arp = 1; + 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_equipment_struct/scr_equipment_struct.gml b/scripts/scr_equipment_struct/scr_equipment_struct.gml index b4b673d841..52b2ef06a7 100644 --- a/scripts/scr_equipment_struct/scr_equipment_struct.gml +++ b/scripts/scr_equipment_struct/scr_equipment_struct.gml @@ -46,7 +46,7 @@ function EquipmentStruct(item_data, core_type, quality_request = "none") constru // Placeholder maintenance values; if (maintenance == 0) { if (has_tags(["heavy_ranged", "power", "plasma", "melta"])) { - maintenance = 0.05; + maintenance += 0.05; } } @@ -166,10 +166,17 @@ function EquipmentStruct(item_data, core_type, quality_request = "none") constru array_push(special_properties_array, special_properties[k]); } } - if (arp > 0) { - array_push(special_properties_array, "Armour Piercing"); - } else if (arp < 0) { - array_push(special_properties_array, "Low Penetration"); + if (arp=4){ + array_push(special_properties_array, "Anti Vehicle") + } + else if (arp=1){ + array_push(special_properties_array, "Low Penetration") + } + else if (arp=2){ + array_push(special_properties_array, "Medium Penetration") + } + else if (arp=3){ + array_push(special_properties_array, "High Penetration") } if (array_length(second_profiles) > 0) { for (var h = 0; h < array_length(second_profiles); h++) { @@ -316,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_flavor/scr_flavor.gml b/scripts/scr_flavor/scr_flavor.gml index 82980dd773..39359363ad 100644 --- a/scripts/scr_flavor/scr_flavor.gml +++ b/scripts/scr_flavor/scr_flavor.gml @@ -54,21 +54,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_initialize_custom/scr_initialize_custom.gml b/scripts/scr_initialize_custom/scr_initialize_custom.gml index 9fe1a78ea7..f287a41e5c 100644 --- a/scripts/scr_initialize_custom/scr_initialize_custom.gml +++ b/scripts/scr_initialize_custom/scr_initialize_custom.gml @@ -45,6 +45,36 @@ enum eCHAPTER_TYPE { CUSTOM, } +#macro WEAPON_LIST_RANGED_HEAVY_TERMINATOR ["Heavy Flamer", "Heavy Flamer", "Heavy Flamer", "Assault Cannon", "Assault Cannon", "Multi-Melta", "Plasma Cannon", "Grav-Cannon"] +#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"] +#macro WEAPON_LIST_RANGED_SPECIAL array_concat(WEAPON_LIST_RANGED_SPECIAL_LONG, WEAPON_LIST_RANGED_SPECIAL_ASSAULT) + +#macro WEAPON_LIST_RANGED_COMBI_LONG ["Storm Bolter", "Storm Bolter", "Storm Bolter", "Storm Bolter", "Combiplasma", "Combiplasma", "Combigrav"] +#macro WEAPON_LIST_RANGED_COMBI_ASSAULT ["Combiflamer", "Combiflamer", "Combiflamer", "Combimelta"] +#macro WEAPON_LIST_RANGED_COMBI array_concat(WEAPON_LIST_RANGED_COMBI_LONG, WEAPON_LIST_RANGED_COMBI_ASSAULT) + +#macro WEAPON_LIST_RANGED_PISTOLS_LONG ["Bolt Pistol", "Bolt Pistol", "Bolt Pistol", "Plasma Pistol", "Plasma Pistol", "Grav-Pistol"] +#macro WEAPON_LIST_RANGED_PISTOLS_ASSAULT ["Hand Flamer", "Hand Flamer", "Hand Flamer", "Infernus Pistol"] +#macro WEAPON_LIST_RANGED_PISTOLS array_concat(WEAPON_LIST_RANGED_PISTOLS_LONG, WEAPON_LIST_RANGED_PISTOLS_ASSAULT) + +#macro WEAPON_LIST_RANGED_VETERAN array_concat(["Bolter", "Bolter", "Bolter"], WEAPON_LIST_RANGED_COMBI) +#macro WEAPON_LIST_RANGED array_concat(WEAPON_LIST_RANGED_PISTOLS_LONG, WEAPON_LIST_RANGED_VETERAN) + + +#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]] + function progenitor_map(){ var founding_chapters = [ "", @@ -1428,11 +1458,11 @@ 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", STR_ANY_POWER_ARMOUR, "", "Rosarius"); load_default_gear(eROLE.Apothecary, "Apothecary", "Chainsword", "Bolt Pistol", STR_ANY_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", STR_ANY_POWER_ARMOUR, "", "Psychic Hood"); load_default_gear(eROLE.Sergeant, "Sergeant", "Chainsword", "Bolt Pistol", STR_ANY_POWER_ARMOUR, "", ""); load_default_gear(eROLE.VeteranSergeant, "Veteran Sergeant", "Chainsword", "Plasma Pistol", STR_ANY_POWER_ARMOUR, "", ""); - + if(struct_exists(obj_creation, "custom_roles")){ var c_roles = obj_creation.custom_roles; @@ -1512,23 +1542,7 @@ function scr_initialize_custom() { veteran_sergeant: role[defaults_slot][eROLE.VeteranSergeant], } // log_message($"roles: {json_stringify(roles, true)}") - - 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"], - 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]], - } + #endregion #region Squad Loadouts @@ -1595,8 +1609,15 @@ function scr_initialize_custom() { "min": 0, "loadout": { "required": { - "wep1": [wep1[defaults_slot][eROLE.Veteran], 5], - "wep2": [wep2[defaults_slot][eROLE.Veteran], 5], + "wep1": ["", 0], + "wep2": ["Combat Knife", max], + }, + "option": { + "wep1": [ + [ + WEAPON_LIST_RANGED_VETERAN, 5 + ], + ], } }, "role": $"Company {roles.veteran}" @@ -1625,9 +1646,21 @@ function scr_initialize_custom() { "role": $"{roles.terminator} {roles.sergeant}", "loadout": { "required": { - "wep1": [wep1[defaults_slot][eROLE.Terminator], 1], - "wep2": [wep2[defaults_slot][eROLE.Terminator], 1], + "wep1": ["", 0], + "wep2": ["", 0], }, + "option": { + "wep1": [ + [ + ["Power Fist", "Chainfist"], 1 + ], + ], + "wep2": [ + [ + WEAPON_LIST_RANGED_COMBI, 1 + ], + ] + } } }], // Terminator @@ -1637,7 +1670,7 @@ function scr_initialize_custom() { "loadout": { "required": { "wep1": ["", 0], - "wep2": [wep2[100, 4], 3], + "wep2": ["", 0], }, "option": { "wep1": [ @@ -1647,9 +1680,14 @@ function scr_initialize_custom() { ], "wep2": [ [ - ["Assault Cannon", "Heavy Flamer"], 1 + WEAPON_LIST_RANGED_COMBI, 3 ], ], + "wep2": [ + [ + WEAPON_LIST_RANGED_HEAVY_TERMINATOR, 1 + ], + ] } } }], @@ -1699,12 +1737,11 @@ function scr_initialize_custom() { }] ], - "sternguard_veteran_squad": [ - // Sternguard Veteran - [roles.veteran, { - "max": 9, - "min": 4, - "role": $"Sternguard {roles.veteran}", + "veteran_squad": [ + [roles.veteran_sergeant, { + "max": 1, + "min": 1, + "role": $"{roles.veteran_sergeant}", "loadout": { "required": { "wep1": ["", 0], @@ -1713,92 +1750,40 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - ["Bolter", "Stalker Pattern Bolter", "Storm Bolter"], 5 - ], - [ - ["Combiflamer"], 2 + WEAPON_LIST_RANGED_VETERAN, 1 ], - [ - weapon_lists.special_weapons, 1 - ], - [ - weapon_lists.heavy_weapons, 1, { - "wep2":"Combat Knife", - "mobi":"Heavy Weapons Pack", - } - ], - ] + ], } - } - }], - // Sternguard Veteran Sergeant - [roles.veteran_sergeant, { - "max": 1, - "min": 1, - "role": $"Sternguard {roles.veteran_sergeant}", - "loadout": { - "required": { - "wep1": ["Stalker Pattern Bolter", 1], - "wep2": [wep2[100][eROLE.Veteran], 1], - }, - } + }, }], - ["type_data", { - "display_data": $"Sternguard {roles.veteran} {squad_name}", - "formation_options": ["veteran", "assault", "devastator", "scout", "tactical"], - }] - ], - - "vanguard_veteran_squad": [ - // Vanguard Veterans [roles.veteran, { "max": 9, "min": 4, - "role": $"Vanguard {roles.veteran}", + "role": $"{roles.veteran}", "loadout": { "required": { "wep1": ["", 0], - "wep2": ["Bolt Pistol", 4], - "mobi": ["Jump Pack", 9] + "wep2": ["Combat Knife", max], }, "option": { "wep1": [ [ - ["Chainsword", "Power Sword", "Power Axe", "Lightning Claw"], 6 + WEAPON_LIST_RANGED_VETERAN, 7 ], [ - ["Power Fist"], 2 + WEAPON_LIST_RANGED_SPECIAL, 1 ], [ - ["Thunder Hammer"], 1 - ], + WEAPON_LIST_RANGED_HEAVY, 1, { + "mobi": "Heavy Weapons Pack", + } + ] ], - "wep2": [ - [ - ["Storm Shield"], 2, - ], - [ - ["Plasma Pistol"], 3 - ], - ] } - } - }], - // Vanguard Veteran Sergeant - [roles.veteran_sergeant, { - "max": 1, - "min": 1, - "role": $"Vanguard {roles.veteran_sergeant}", - "loadout": { - "required": { - "wep1": ["Thunder Hammer", 1], - "wep2": ["Storm Shield", 1], - "mobi": ["Jump Pack", 1] - }, - } - }], + }, + }, ], ["type_data", { - "display_data": $"Vanguard {roles.veteran} {squad_name}", + "display_data": $"{roles.veteran} {squad_name}", "formation_options": ["veteran", "assault", "devastator", "scout", "tactical"], }] ], @@ -1817,7 +1802,7 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - weapon_lists.heavy_weapons, 4, { + WEAPON_LIST_RANGED_HEAVY, 4, { "mobi":"Heavy Weapons Pack", } ], @@ -1832,19 +1817,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 + WEAPON_LIST_RANGED, 1 ], - ], - "wep2": [ - [ - weapon_lists.melee_weapons, 1 - ], - ], + ] } } }], @@ -1866,10 +1847,10 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - weapon_lists.special_weapons, 1 + WEAPON_LIST_RANGED_SPECIAL, 1 ], [ - weapon_lists.heavy_weapons, 1, { + WEAPON_LIST_RANGED_HEAVY, 1, { "wep2":"Combat Knife", "mobi":"Heavy Weapons Pack", } @@ -1885,17 +1866,17 @@ function scr_initialize_custom() { "loadout": { "required": { "wep1": ["", 0], - "wep2": ["Chainsword", 1] + "wep2": ["", 0] }, "option": { "wep1": [ [ - weapon_lists.pistols, 1 + WEAPON_LIST_RANGED_PISTOLS_LONG, 1 ], ], "wep2": [ [ - weapon_lists.melee_weapons, 1 + WEAPON_LIST_MELEE_BASIC, 1 ], ], } @@ -1929,7 +1910,7 @@ function scr_initialize_custom() { ], "wep2": [ [ - ["Plasma Pistol", "Flamer"], 2 + ["Flamer", "Flamer", "Flamer", "Plasma Pistol"], 2 ] ] } @@ -1948,12 +1929,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 ], ], } @@ -1971,13 +1952,13 @@ function scr_initialize_custom() { "min": 4, "loadout": { "required": { - "wep1": [wep1[100][12], 6], - "wep2": [wep2[100][12], 9] + "wep1": ["", 0], + "wep2": ["Combat Knife", max] }, "option": { "wep1": [ [ - ["Bolter", "Stalker Pattern Bolter"], 2 + ["Bolter", "Bolter", "Shotgun", "Sniper Rifle", "Stalker Pattern Bolter"], 8 ], [ ["Missile Launcher", "Heavy Bolter"], 1 @@ -1990,15 +1971,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": [ - [ - ["Power Sword", "Chainsword", "Power Axe"], 1 + WEAPON_LIST_RANGED, 1 ] ] } @@ -2011,45 +1991,6 @@ function scr_initialize_custom() { "formation_options": ["scout", "tactical", "assault", "devastator"], }], ], - - "scout_sniper_squad": [ - [roles.scout, - { - "max": 9, - "min": 4, - "loadout": { - "required": { - "wep1": ["Sniper Rifle", 8], - "wep2": ["Combat Knife", 9] - }, - "option": { - "wep1": [ - [ - ["Missile Launcher"], 1 - ] - ], - } - }, - "role": $"{roles.scout} Sniper", - }], - [roles.sergeant, { - "max": 1, - "min": 1, - "loadout": { - "required": { - "wep1": ["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}"); @@ -2079,60 +2020,35 @@ 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 - variable_struct_set(st, "assault_squad", [ + if (global.chapter_name == "Salamanders") { + st[$ "assault_squad"][0] = [roles.assault, { "max": 9, "min": 4, - "loadout": { //assault_marine - "required": { - "wep1": [wep1[100, 10], 4], - "wep2": [wep2[100, 10], 4], - "gear": ["Combat Shield", 4] - }, - "option": { - "wep1": [ - [ - ["Power Sword", "Power Axe", "Eviscerator"], 2 - ], - ], - "wep2": [ - [ - ["Flamer", "Meltagun", "Plasma Pistol", "Bolt Pistol"], 2 - ], - - ], - } - } - }], - [roles.sergeant, { - "max": 1, - "min": 1, //sergeant "loadout": { "required": { - "wep1": ["Bolt Pistol", 0], - "wep2": ["Chainsword", 0], + "wep1": [wep1[100, 10], 5], + "wep2": [wep2[100, 10], 5], }, "option": { "wep1": [ [ - ["Power Sword", "Thunder Hammer", "Power Fist", "Chainsword"], 1 - ] + ["Eviscerator"], 2, { + "wep2":"", + } + ], ], "wep2": [ [ - ["Plasma Pistol", "Combiflamer", "Meltagun"], 1 + ["Flamer"], 2 ] ] } - }, - "role": $"{roles.sergeant} {roles.assault}" - }], - ["type_data", { - "display_data": $"{roles.assault} {squad_name}" - }] - ]) + } + } + ] } + if (scr_has_adv("Lightning Warriors")) { variable_struct_set(st, "bikers", [ [roles.assault, { @@ -2166,6 +2082,7 @@ function scr_initialize_custom() { }] ]) } + if (scr_has_adv("Boarders")) { variable_struct_set(st, "breachers", [ [roles.tactical, { @@ -2182,10 +2099,10 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - ["Flamer", "Grav-Gun", "Meltagun", "Lascutter"], 2, + ["Flamer", "Flamer", "Flamer", "Grav-Gun", "Meltagun", "Lascutter"], 2, ], ] - } + } }, "role": $"Breacher" }], @@ -2202,7 +2119,7 @@ function scr_initialize_custom() { "option": { "wep1": [ [ - ["Bolter", "Bolter", "Bolter", "Combiflamer"], 1 + WEAPON_LIST_RANGED_COMBI, 1 ] ], } @@ -2214,60 +2131,94 @@ function scr_initialize_custom() { "formation_options": ["tactical", "assault", "devastator", "scout" ], }] ]) - variable_struct_set(st,"assault_squad", [ - [roles.assault, { - "max": 9, - "min": 4, + } + + 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": [wep1[100, 10], 7], - "wep2": [wep2[100, 10], 7], + "wep1": ["", 0], + "wep2": ["", 0], + "mobi": ["Jump Pack", max], + "gear": ["Combat Shield", max] }, "option": { "wep1": [ [ - weapon_lists.melee_weapons, 2 + WEAPON_LIST_RANGED_PISTOLS, 1 ], ], "wep2": [ [ - ["Plasma Pistol", "Flamer"], 2 - ] + WEAPON_LIST_MELEE_VETERAN, 1 + ], ] } - } + }, }], - [roles.sergeant, { - "max": 1, - "min": 1, - "role": $"{roles.assault} {roles.sergeant}", + [roles.veteran, { + "max": 9, + "min": 4, + "role": $"{roles.veteran}", "loadout": { "required": { "wep1": ["", 0], "wep2": ["", 0], - "gear": ["Combat Shield", 1] + "mobi": ["Jump Pack", max], + "gear": ["Combat Shield", max] }, "option": { "wep1": [ [ - weapon_lists.pistols, 1 + WEAPON_LIST_RANGED_PISTOLS, 9 ], ], "wep2": [ [ - weapon_lists.melee_weapons, 1 + WEAPON_LIST_MELEE_VETERAN, 9 ], - ], + ] } - } - }], + }, + }, ], ["type_data", { - "display_data": $"{roles.assault} {squad_name}", - "formation_options": ["assault"], + "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}"); @@ -2381,7 +2332,7 @@ function scr_initialize_custom() { // Forge Master name[company, 1] = obj_creation.fmaster; - var _forge_master = add_unit_to_company("marine", company, 1, "Forge Master", eROLE.Techmarine, "Infernus Pistol", "Power Axe", "default", "Servo-harness", _hq_armour); + var _forge_master = add_unit_to_company("marine", company, 1, "Forge Master", eROLE.Techmarine, "Infernus Pistol", "Omnissian Axe", "default", "Servo-harness", _hq_armour); if (_forge_master.technology < 40) { _forge_master.technology = 40; } @@ -2438,7 +2389,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 @@ -2446,14 +2397,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 @@ -2461,7 +2412,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 @@ -2469,7 +2420,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 @@ -2477,7 +2428,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 @@ -2891,7 +2842,7 @@ function scr_initialize_custom() { commands++; _rolename = roles.captain; _erole = eROLE.Captain; - _wep2 = choose_weighted(weapon_weighted_lists.pistols); + _wep2 = choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS); if (equal_specialists == false && _coy.coy == 8) { _mobi = "Jump Pack"; } @@ -2905,7 +2856,7 @@ function scr_initialize_custom() { commands++; _rolename = roles.chaplain; _erole = eROLE.Chaplain; - _wep2 = choose_weighted(weapon_weighted_lists.pistols); + _wep2 = choose_weighted(WEAPON_LIST_WEIGHTED_RANGED_PISTOLS); if (equal_specialists == false && _coy.coy == 8) { _mobi = "Jump Pack"; } diff --git a/scripts/scr_marine_struct/scr_marine_struct.gml b/scripts/scr_marine_struct/scr_marine_struct.gml index 2de84589a9..558167aaa0 100644 --- a/scripts/scr_marine_struct/scr_marine_struct.gml +++ b/scripts/scr_marine_struct/scr_marine_struct.gml @@ -676,7 +676,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"); @@ -688,7 +688,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 @@ -1376,7 +1376,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; }; @@ -1628,14 +1628,16 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data = {} }; 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)), "%#"); - - melee_carrying = melee_hands_limit(); + var _melee_mod = 1; + var explanation_string = ""; + + var melee_carrying = melee_hands_limit(); var _wep1 = get_weapon_one_data(); var _wep2 = get_weapon_two_data(); if (!is_struct(_wep1)) { @@ -1659,7 +1661,6 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data = {} primary_weapon.attack = strength / 3; //calculate damage from player fists primary_weapon.name = "fists"; primary_weapon.range = 1; - primary_weapon.ammo = -1; } else { if (!valid1 && valid2) { primary_weapon = _wep2; @@ -1676,7 +1677,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")) { @@ -1693,9 +1694,42 @@ 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 (psionic > 0) { if (has_force_weapon()) { var psychic_bonus = psionic * 20; @@ -1707,12 +1741,10 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data = {} basic_wep_string += $"Psychic Power: +{psychic_bonus}#"; } } - - 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) { @@ -1722,23 +1754,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; @@ -1756,12 +1789,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_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml index 58d028443f..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 @@ -34,7 +34,24 @@ 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 _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 * 2; + } + } else if (unit == "vehicle") { + ammo[stack_index] = weapon.ammo * 4; + } + } if (unit!="none"){//this stops a potential infinite loop of secondary profiles add_second_profiles_to_stack(weapon, head_role, unit); @@ -154,7 +171,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); } @@ -273,7 +289,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; } } @@ -313,6 +329,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 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; @@ -144,7 +141,9 @@ function scr_shoot(weapon_index_position, target_object, target_type, damage_dat if (aggregate_damage == 0) { damage_per_weapon = shots_fired; } - + if (melee_or_ranged != "wall") { + shots_fired *= attack_count_mod; + } if (melee_or_ranged == "melee") { if (shots_fired > ((target_object.veh + target_object.dreads) * 5)) { doom = ((target_object.veh + target_object.dreads) * 5) / shots_fired; @@ -156,9 +155,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) { damage_per_weapon = shots_fired * doom; @@ -169,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; @@ -191,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); } } } @@ -299,30 +292,43 @@ 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 == 0) { - target_armour_value = target_armour_value * 6; + if (armour_pierce == 4) { + target_armour_value = 0; } - if (armour_pierce == -1) { - target_armour_value = damage_per_weapon; + if (armour_pierce == 3) { + target_armour_value = target_armour_value * 2; + } + if (armour_pierce == 2) { + target_armour_value = target_armour_value * 4; } - } else { if (armour_pierce == 1) { + target_armour_value = target_armour_value * 6; + } + } else { + if (armour_pierce == 4) { target_armour_value = 0; } - if (armour_pierce == -1) { - target_armour_value = target_armour_value * 6; + if (armour_pierce == 3) { + target_armour_value = target_armour_value * 1.5; + } + if (armour_pierce == 2) { + target_armour_value = target_armour_value * 2; + } + if (armour_pierce == 1) { + target_armour_value = target_armour_value * 3; } } @@ -423,18 +429,27 @@ 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) { - target_armour_value2 = 0; + target_armour_value2 = target_armour_value2 * 3; } - if (ap2 == -1) { - target_armour_value2 = target_armour_value2 * 6; + if (ap2 == 2) { + target_armour_value2 = target_armour_value2 * 2; + } + if (ap2 == 3) { + target_armour_value2 = target_armour_value2 * 1.5; + } + if (ap2 == 4) { + target_armour_value2 = 0; } } if (target_object.dudes_vehicle[godd] == 1) { - if (ap2 == 0) { + if (ap2 == 1) { target_armour_value2 = target_armour_value2 * 6; } - if (ap2 == -1) { - target_armour_value2 = damage_per_weapon; + if (ap2 == 2) { + target_armour_value2 = target_armour_value2 * 4; + } + if (ap2 == 3) { + target_armour_value2 = target_armour_value2 * 2; } } b2 = a2 - target_armour_value2; diff --git a/scripts/scr_squads/scr_squads.gml b/scripts/scr_squads/scr_squads.gml index 433cf7973e..19be00fc35 100644 --- a/scripts/scr_squads/scr_squads.gml +++ b/scripts/scr_squads/scr_squads.gml @@ -716,22 +716,14 @@ function game_start_squads(){ last_squad_count = array_length(obj_ini.squads); while (last_squad_count == array_length(obj_ini.squads)){ last_squad_count = (array_length(obj_ini.squads) + 1); - if(last_squad_count%2 == 0){ - create_squad("sternguard_veteran_squad", company); - }else{ - create_squad("vanguard_veteran_squad", company); - } + create_squad("veteran_squad", company); } company = 10; create_squad("command_squad", company); 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_unit_equip_functions/scr_unit_equip_functions.gml b/scripts/scr_unit_equip_functions/scr_unit_equip_functions.gml index 23386f8a3d..e58c3b7ccb 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,64 @@ 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()} - 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 (_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; + } + } 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 +413,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 3f0d355506..a509c6296d 100644 --- a/scripts/scr_weapon/scr_weapon.gml +++ b/scripts/scr_weapon/scr_weapon.gml @@ -202,12 +202,12 @@ global.weapons = { }, "melee_hands": 0.75, "ranged_hands": 1, - "tags": ["shield"], + "tags": ["shield","boarding 2"], "hp_mod": { "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.", @@ -218,7 +218,7 @@ global.weapons = { "artifact": 6 }, "melee_hands": 0.75, - "tags": ["shield","boarding"], + "tags": ["shield","boarding 3"], "hp_mod": { "standard": 15, "master_crafted": 17.5, @@ -236,33 +236,35 @@ global.weapons = { "melee_hands": 0, "ranged_hands": 0.5, "ammo": 30, - "range": 3.1, - "spli": 1, - "arp": 0, + + "range": 4.1, + "spli": 0, + "arp": 1, "tags": ["pistol", "ancient", "las", "energy"], }, + "Combat Knife": { "abbreviation": "CbKnf", "attack": { - "standard": 25, - "master_crafted": 30, - "artifact": 35 + "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, - "arp": 0, + "spli": 2, + "arp": 1, "tags": ["knife"], }, "Chainsword": { "abbreviation": "ChSwrd", "attack": { - "standard": 50, - "master_crafted": 60, - "artifact": 70 + "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, @@ -270,15 +272,15 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 4, - "arp": 0, - "tags": ["chain", "sword"], + "arp": 1, + "tags": ["chain", "sword","savage", "boarding 1"], }, "Chainaxe": { "abbreviation": "ChAxe", "attack": { - "standard": 90, - "master_crafted": 100, - "artifact": 110 + "standard": 175, + "master_crafted": 225, + "artifact": 275 }, "melee_mod": { "standard": 5, @@ -290,9 +292,9 @@ global.weapons = { "ranged_hands": 0, "ammo": 0, "range": 1, - "spli": 6, - "arp": 0, - "tags": ["chain", "axe", "dual"], + "spli": 3, + "arp": 1, + "tags": ["chain", "axe", "dual", "savage", "boarding 2"], }, "Company Standard": { "abbreviation": "CmpStnd", @@ -312,14 +314,15 @@ global.weapons = { "ranged_hands": 1, "range": 1, "spli": 1, + "arp": 1, "tags": ["banner"], }, "Eviscerator": { "abbreviation": "Evisc", "attack": { - "standard": 180, - "master_crafted": 190, - "artifact": 200 + "standard": 250, + "master_crafted": 300, + "artifact": 350 }, "melee_mod": { "standard": 2, @@ -331,16 +334,16 @@ global.weapons = { "ranged_hands": 1, "ammo": 0, "range": 1, - "spli": 3, - "arp": 1, - "tags": ["chain", "sword"], + "spli": 6, + "arp": 2, + "tags": ["chain", "sword", "savage"], }, "Power Sword": { "abbreviation": "PwrSwrd", "attack": { - "standard": 180, - "master_crafted": 200, - "artifact": 240 + "standard": 225, + "master_crafted": 275, + "artifact": 325 }, "melee_mod": { "standard": 1, @@ -353,16 +356,16 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 4, - "arp": 1, + "arp": 2, "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, @@ -374,10 +377,10 @@ global.weapons = { "ranged_hands": 0, "ammo": 0, "range": 1, - "spli": 6, - "arp": 1, + "spli": 3, + "arp": 2, "special_properties": ["Parry"], - "tags": ["power", "spear"], + "tags": ["power", "spear", "martial"], }, "Xenophase Blade": { "abbreviation": "XenoPhs", @@ -404,30 +407,30 @@ 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.", - "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", "siege", "savage"], + "arp": 3, }, "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"], + "arp": 4, + "tags": ["las","boarding 3", "siege"], }, "Power Weapon": { "abbreviation": "PwrWpn", @@ -447,15 +450,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": 250, + "master_crafted": 300, + "artifact": 350 }, "melee_mod": { "standard": 1, @@ -467,16 +470,40 @@ global.weapons = { "ranged_hands": 0, "ammo": 0, "range": 1, + "spli": 3, + "arp": 2, + "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.5, + "ranged_hands": 0, + "ammo": 0, + "range": 1, "spli": 5, - "arp": 1, - "tags": ["power", "axe", "dual"], + "arp": 3, + "tags": ["power", "axe", "savage", "boarding 3"], + "specials": { + "combi_tool": 1 + } }, "Executioner Power Axe": { "abbreviation": "ExPwrAxe", "attack": { - "standard": 300, - "master_crafted": 350, - "artifact": 400 + "standard": 800, + "master_crafted": 850, + "artifact": 925 }, "melee_mod": { "standard": 10, @@ -488,15 +515,15 @@ global.weapons = { "ranged_hands": 2, "ammo": 0, "range": 1, - "spli": 2, - "arp": 1, - "tags": ["power", "axe"], + "spli": 5, + "arp": 3, + "tags": ["power", "axe", "martial"], }, "Power Fist": { "abbreviation": "PwrFst", "attack": { - "standard": 450, - "master_crafted": 500, + "standard": 400, + "master_crafted": 450, "artifact": 600 }, "melee_mod": { @@ -510,14 +537,14 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 2, - "arp": 1, - "tags": ["power", "dual", "fist"], + "tags": ["power", "dual", "fist", "savage", "boarding 2"], + "arp": 3, }, "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.", @@ -526,8 +553,8 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 4, - "arp": 1, - "tags": ["power", "fist", "pair"], + "tags": ["power", "fist", "pair","savage" ,"boarding 2"], + "arp": 3, }, "Servo-arm(M)": { "abbreviation": "MchArm", @@ -542,14 +569,14 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 2, - "arp": 1, + "arp": 3, "tags": ["siege"], }, "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", @@ -558,15 +585,15 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 2, - "arp": 1, - "second_profiles": ["Integrated Bolter"], - "tags": ["power", "fist"], + "arp": 3, + "second_profiles": ["Integrated-Bolter"], + "tags": ["power", "fist", "savage", "boarding 2"], }, "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", @@ -574,16 +601,16 @@ global.weapons = { "ranged_hands": 1, "range": 1, "spli": 2, - "arp": 1, + "arp": 3, "second_profiles": ["Assault Cannon"], - "tags": ["power","boarding", "chain", "fist", "dual", "siege"], + "tags": ["power","boarding 3", "chain", "fist", "dual", "siege"], }, "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, @@ -591,15 +618,15 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 5, - "arp": 1, - "tags": ["power", "dual", "fist"], + "tags": ["power", "dual", "fist", "boarding 2", "martial"], + "arp": 2, }, "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, @@ -612,16 +639,16 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 15, - "arp": 1, + "arp": 3, "maintenance" : 0.1, "tags": ["power", "vehicle", "dual", "dreadnought", "fist"], }, "Thunder Hammer": { "abbreviation": "ThndHmr", "attack": { - "standard": 650, - "master_crafted": 750, - "artifact": 900 + "standard": 500, + "master_crafted": 600, + "artifact": 750 }, "melee_mod": { "standard": 1.3, @@ -633,18 +660,18 @@ global.weapons = { "ranged_hands": 1, "ammo": 0, "range": 1, - "spli": 10, - "arp": 1, - "tags": ["power", "hammer", "siege"], + "spli": 3, + "arp": 3, "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": 700, + "master_crafted": 850, + "artifact": 1000, }, "melee_mod": { "standard": 1.3, @@ -656,18 +683,18 @@ global.weapons = { "ranged_hands": 2, "ammo": 0, "range": 1, - "spli": 15, - "arp": 1, - "tags": ["heavy_melee", "power", "hammer", "siege"], - "maintenance" : 0.1, + "arp": 3, + "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, @@ -679,17 +706,17 @@ global.weapons = { "ranged_hands": 2, "ammo": 0, "range": 1, - "spli": 10, - "arp": 1, - "tags": ["power", "mace", "siege"], + "arp": 3, + "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, @@ -702,9 +729,9 @@ global.weapons = { "ranged_hands": 2, "ammo": 0, "range": 1, - "spli": 10, - "arp": 1, - "tags": ["power", "mace", "siege", "pious"], + "spli": 6, + "arp": 3, + "tags": ["power", "mace", "siege", "pious", "savage"], "req_exp": 100, }, "Tome": { @@ -725,15 +752,15 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 1, - "arp": 0, - "tags": ["arcane"], + "arp": 1, + "tags": ["arcane", "savage"], }, "Crozius Arcanum": { "abbreviation": "Crzus", "attack": { - "standard": 220, - "master_crafted": 250, - "artifact": 300 + "standard": 250, + "master_crafted": 300, + "artifact": 400 }, "melee_mod": { "standard": 1, @@ -746,15 +773,15 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 4, - "arp": 1, - "tags": ["power", "mace", "pious"], + "arp": 2, + "tags": ["power", "mace", "pious", "savage", "boarding 2"], }, "Relic Blade": { "abbreviation": "RlcBld", "attack": { - "standard": 700, - "master_crafted": 850, - "artifact": 1000 + "standard": 600, + "master_crafted": 750, + "artifact": 900 }, "melee_mod": { "standard": 1, @@ -767,26 +794,60 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 8, - "arp": 1, + "arp": 2, "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": 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": 3.1, - "spli": 1, - "arp": 0, - "tags": ["bolt", "pistol"], + "range": 4.1, + "spli": 2, + "arp": 1, + "tags": ["bolt", "pistol", "boarding 1"], + }, + "Wrist-Mounted Storm Bolter": { + "abbreviation": "WrstBlt", + "attack": { + "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": 10, + "range": 4.1, + "spli": 8, + "arp": 1, + "maintenance" : 0.1, + "tags": ["bolt", "pistol", "boarding 2"], + }, + "Shotgun": { + "abbreviation": "Shtgn", + "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": 1, + "tags": ["boarding 2"], }, "Webber": { "abbreviation": "Webbr", @@ -801,107 +862,123 @@ global.weapons = { "ammo": 5, "range": 4.1, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["immobolise"] }, "Grav-Pistol": { "abbreviation": "GrvPstl", "attack": { - "standard": 150, - "master_crafted": 200, - "artifact": 250 + "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.", "melee_hands": 0, "ranged_hands": 1, "ammo": 4, - "range": 2.1, + "range": 4.1, "spli": 1, - "arp": 1, + "arp": 4, + "maintenance" : 0.2, "tags": ["grav", "pistol"], - "maintenance" : 0.8, + }, + "Integrated-Grav": { + "abbreviation": "IntGrv", + "attack": { + "standard": 400, + "master_crafted": 450, + "artifact": 600 + }, + "description": "", + "melee_hands": 0, + "ranged_hands": 0, + "ammo": 3, + "range": 5.1, + "spli": 1, + "arp": 4, + "tags": ["grav"] }, "Grav-Gun": { "abbreviation": "GrvGn", "attack": { - "standard": 450, - "master_crafted": 475, - "artifact": 500 + "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, "ranged_hands": 2, - "ammo": 4, - "range": 4, + "ammo": 6, + "range": 5, "spli": 3, - "arp": 1, + "arp": 4, "tags": ["grav"], - "maintenance" : 0.1, + "maintenance" : 0.5, }, "Grav-Cannon": { "abbreviation": "GrvCan", "attack": { - "standard": 800, - "master_crafted": 850, - "artifact": 900 + "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, "ranged_hands": 2, "ammo": 8, - "range": 8, + "range": 6, "spli": 6, - "arp": 1, - "tags": ["grav", "heavy_weapon"], - "maintenance" : 0.2, + "arp": 4, + "tags": ["grav", "heavy_ranged"], + "maintenance" : 0.8, }, "Underslung Bolter": { "abbreviation": "UndBltr", "attack": { - "standard": 60, - "master_crafted": 70, - "artifact": 80 + "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, - "arp": 0, + "spli": 3, + "arp": 1, "tags": ["bolt", "attached"] }, "Stalker Pattern Bolter": { "abbreviation": "StlkBltr", "attack": { - "standard": 100, - "master_crafted": 110, - "artifact": 120 + "standard": 180, + "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, "ranged_hands": 2, "ammo": 20, - "range": 15, - "spli": 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, - "arp": 0, - "tags": ["bolt"] + "range": 10, + "spli": 5, + "arp": 1, + "tags": ["bolt", "boarding 1"] }, "Heavy Flamer": { "abbreviation": "HvyFlmr", @@ -912,27 +989,27 @@ 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": 2, - "spli": 5, - "arp": -1, - "tags": ["flame", "heavy_ranged"] + "range": 4, + "spli": 20, + "arp": 2, + "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, - "arp": -1, + "spli": 20, + "arp": 2, "tags": ["dreadnought","heavy_ranged", "flame"] }, "Dreadnought Power Claw": { @@ -946,7 +1023,7 @@ global.weapons = { "melee_hands": 5, "range": 1, "spli": 10, - "arp": 1, + "arp": 4, "tags": ["power", "vehicle", "dual", "dreadnought", "fist"], "maintenance" : 0.1, }, @@ -961,96 +1038,111 @@ global.weapons = { "melee_hands": 5, "range": 1, "spli": 10, - "arp": 1, + "arp": 4, "tags": ["vehicle", "dreadnought", "fist"], "maintenance" : 0.1, }, "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, + "ranged_hands": 5, "ammo": 0, - "range": 3.1, + "range": 4.1, "spli": 20, - "arp": -1, + "arp": 2, "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": 3.1, + "spli": 1, + "arp": 4, + "tags": ["melta"] + }, "Meltagun": { "abbreviation": "Mltgn", "attack": { - "standard": 450, - "master_crafted": 475, - "artifact": 500 + "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, "ranged_hands": 2, - "ammo": 4, + "ammo": 6, "range": 2.1, - "spli": 1, - "arp": 1, - "tags": ["melta","boarding"] + "spli": 6, + "arp": 3, + "tags": ["melta","boarding 3"] }, "Multi-Melta": { "abbreviation": "MltMelt", "attack": { - "standard": 800, - "master_crafted": 850, - "artifact": 900 + "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, - "ranged_hands": 2.25, + "ranged_hands": 2, "ammo": 8, "range": 4.1, - "spli": 1, - "arp": 1, - "tags": ["melta", "heavy_ranged", "dreadnought"] + "spli": 10, + "arp": 3, + "tags": ["melta", "heavy_ranged", "dreadnought", "boarding 1"] }, "Plasma Pistol": { "abbreviation": "PlsmPstl", "attack": { - "standard": 115, - "master_crafted": 130, - "artifact": 150 + "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.", "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": 3, + "tags": ["plasma", "energy", "pistol", "boarding 1"] }, "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, "ranged_hands": 0, "ammo": 0, - "range": 3.1, + "range": 4.1, "spli": 1, - "arp": 1, + "arp": 3, "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, @@ -1058,63 +1150,95 @@ global.weapons = { "ammo": 4, "range": 2.1, "spli": 3, - "arp": 1, - "tags": ["melta", "pistol"] + "arp": 3, + "tags": ["melta", "pistol", "boarding 2"] + }, + "Integrated-Plasma": { + "abbreviation": "IntPls", + "attack": { + "standard": 300, + "master_crafted": 350, + "artifact": 450 + }, + "description": "", + "melee_hands": 0, + "ranged_hands": 0, + "ammo": 6, + "range": 10, + "spli": 4, + "arp": 3, + "tags": ["plasma","energy"] }, "Plasma Gun": { "abbreviation": "PlsmGn", "attack": { - "standard": 250, - "master_crafted": 275, - "artifact": 300 + "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": 1, "ranged_hands": 2, "ammo": 16, - "range": 12, - "spli": 2, - "arp": 1, - "tags": ["plasma", "energy"] + "range": 10, + "spli": 4, + "arp": 3, + "tags": ["plasma", "energy", "boarding 1"] }, "Plasma Cannon": { "abbreviation": "PlsmCan", "attack": { - "standard": 500, - "master_crafted": 600, + "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, - "ranged_hands": 3, + "ranged_hands": 2, "ammo": 16, - "range": 14, - "spli": 5, - "arp": 1, + "range": 10, + "spli": 8, + "arp": 3, "tags": ["plasma","energy","heavy_ranged", "dreadnought"] }, "Sniper Rifle": { - "abbreviation": "SnprRfl", + "abbreviation": "SnpRfl", "attack": { - "standard": 80, - "master_crafted": 88, - "artifact": 96 + "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, - "range": 18, + "range": 14, "spli": 1, - "arp": 0, + "arp": 1, + "tags": ["precision", "rifle"] + }, + "Deathwatch Sniper Rifle": { + "abbreviation": "DwSnpRfl", + "attack": { + "standard": 250, + "master_crafted": 300, + "artifact": 350 + }, + "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, + "range": 14, + "spli": 1, + "arp": 2, "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, @@ -1122,55 +1246,71 @@ global.weapons = { "ammo": 5, "range": 12, "spli": 20, - "arp": 1, - "tags": ["heavy_ranged", "dreadnought"] + "arp": 2, + "tags": ["heavy_ranged", "terminator", "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, + "ranged_hands": 2, "ammo": 25, - "range": 18, - "spli": 15, - "arp": 1, - "tags": ["heavy_ranged", "dreadnought"] + "range": 14, + "spli": 12, + "arp": 2, + "tags": ["heavy_ranged","explosive", "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, - "tags": ["heavy_ranged", "dreadnought"] + "range": 12, + "spli": 10, + "arp": 2, + "tags": ["heavy_ranged","explosive", "dreadnought"] }, - "Lascannon": { - "abbreviation": "Lascnn", + "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": 8, + "spli": 20, + "arp": 2, + "tags": ["heavy_ranged","explosive"] + }, + "Lascannon": { + "abbreviation": "Lascnn", + "attack": { + "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.", "melee_hands": 1, - "ranged_hands": 2.25, + "ranged_hands": 2, "ammo": 8, - "range": 24, + "range": 20, "spli": 1, - "arp": 1, + "arp": 4, "tags": ["heavy_ranged", "las", "energy"] }, "Conversion Beam Projector": { @@ -1186,47 +1326,47 @@ global.weapons = { "ammo": 1, "range": 20, "spli": 3, - "arp": 1, + "arp": 4, "tags": ["heavy_ranged", "ancient"] }, - "Integrated Bolter": { + "Integrated-Bolter": { "abbreviation": "IntgBltr", "attack": { - "standard": 50, - "master_crafted": 55, - "artifact": 60 + "standard": 150, + "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": 20, - "range": 12, - "spli": 4, - "arp": 0, + "ammo": 8, + "range": 10, + "spli": 5, + "arp": 1, "tags": ["bolt"] }, "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": 2, "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, @@ -1234,23 +1374,23 @@ global.weapons = { "ammo": 8, "range": 24, "spli": 2, - "arp": 1, + "arp": 4, "tags": ["las", "energy", "heavy_ranged", "vehicle", "dreadnought"] }, "Heavy Bolter": { "abbreviation": "HvyBltr", "attack": { - "standard": 320, - "master_crafted": 352, - "artifact": 384 + "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, "ranged_hands": 2, "ammo": 10, - "range": 16, - "spli": 6, - "arp": 1, + "range": 14, + "spli": 12, + "arp": 2, "tags": ["heavy_ranged", "bolt"] }, "Infernus Heavy Bolter": { @@ -1272,9 +1412,9 @@ global.weapons = { }, "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", @@ -1282,8 +1422,8 @@ global.weapons = { "ranged_hands": 0, "ammo": 6, "range": 20, - "spli": 25, - "arp": 1, + "spli": 40, + "arp": 2, "tags": ["vehicle","heavy_ranged", "indirect"] }, "HK Missile": { @@ -1302,9 +1442,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", @@ -1312,15 +1452,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 20, "range": 16, - "spli": 3, - "arp": 1, + "spli": 21, + "arp": 2, "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", @@ -1328,15 +1468,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 10, "range": 20, - "spli": 3, - "arp": 1, + "spli": 2, + "arp": 4, "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", @@ -1344,15 +1484,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 6, "range": 12, - "spli": 30, - "arp": 1, + "spli": 40, + "arp": 2, "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", @@ -1360,15 +1500,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 25, "range": 15, - "spli": 6, - "arp": 1, + "spli": 24, + "arp": 2, "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", @@ -1376,15 +1516,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 15, "range": 16, - "spli": 5, - "arp": 1, + "spli": 50, + "arp": 2, "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", @@ -1392,15 +1532,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 5, "range": 20, - "spli": 3, - "arp": 1, + "spli": 4, + "arp": 4, "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", @@ -1408,15 +1548,15 @@ global.weapons = { "ranged_hands": 0, "ammo": 8, "range": 20, - "spli": 1, - "arp": 1, + "spli": 2, + "arp": 4, "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", @@ -1425,105 +1565,105 @@ global.weapons = { "ammo": 10, "range": 10, "spli": 60, - "arp": 0, + "arp": 1, "tags": ["bolt","heavy_ranged", "vehicle", "sponson"] }, "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": 3, "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, - "arp": -1, + "range": 4.1, + "spli": 40, + "arp": 2, "tags": ["flame","heavy_ranged", "vehicle", "dreadnought", "sponson"] }, "Twin Linked Bolters": { "attack": { - "standard": 80, - "master_crafted": 140, - "artifact": 180 + "standard": 275, + "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, - "arp": 0, + "range": 10, + "spli": 10, + "arp": 1, "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": 4, "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": 3, "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": 2, + "tags": ["heavy_ranged", "vehicle", "sponson", "bolt"] }, "Heavy Flamer Sponsons": { "abbreviation": "HvyFlmrs", @@ -1537,9 +1677,9 @@ global.weapons = { "melee_hands": 0, "ranged_hands": 0, "ammo": 8, - "range": 2.1, - "spli": 4, - "arp": -1, + "range": 4.1, + "spli": 40, + "arp": 2, "tags": ["flame","heavy_ranged", "vehicle", "sponson"], "maintenance" : 0.05, }, @@ -1547,67 +1687,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": 3, "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, - "tags": ["vehicle","heavy_ranged", "turret"] + "arp": 2, + "tags": ["vehicle","heavy_ranged","explosive", "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, - "arp": 0, - "tags": ["bolt"], - "maintenance" : 0.03, + "range": 8, + "spli": 8, + "arp": 1, + "maintenance" : 0.03, + "tags": ["bolt", "boarding 2"] + }, "Hand Flamer": { "abbreviation": "HndFlmr", "attack": { - "standard": 125, - "master_crafted": 190, - "artifact": 210 + "standard": 250, + "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": 2, - "range": 2.1, // Infernus pistol has 2 range, so - "spli": 2, // This should probably be increased to at least 3, but maybe even 5 or 10 - "arp": -1, - "tags": ["pistol", "flame"] //, - // "maintenance" : 0.01, - decide on the value you prefer + "ammo": 4, + "range": 3.1, + "spli": 8, + "arp": 1, + "tags": ["pistol", "flame", "boarding 2"] }, "Flamer": { "abbreviation": "Flmr", @@ -1624,118 +1764,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": 1, + "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, - "spli": 3, - "arp": -1, + "range": 4.1, + "spli": 10, + "arp": 1, "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, - "arp": 0, - "second_profiles": ["Flamer"], - "tags": ["combi", "bolt"] + "spli": 5, + "arp": 1, + "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, - "arp": 0, - "second_profiles": ["Plasma Gun"], + "spli": 5, + "arp": 1, + "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, - "arp": 0, - "second_profiles": ["Grav-Gun"], + "spli": 5, + "arp": 1, + "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, - "arp": 0, - "second_profiles": ["Meltagun"], - "tags": ["combi", "bolt"] + "spli": 5, + "arp": 1, + "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, - "arp": -1, - "tags": ["flame"] + "range": 4.1, + "spli": 20, + "arp": 2, + "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, @@ -1748,102 +1888,100 @@ global.weapons = { "ranged_hands": 1, "range": 1, "spli": 5, - "arp": 1, - "tags": ["force" ], + "arp": 2, "specials": { "psychic_amplification": 25 }, "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": 2, "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": 250, + "master_crafted": 300, + "artifact": 375 }, "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, + "spli": 3, + "arp": 2, "special_description": "Able to be dual-wielded", - "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, + "arp": 4, "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": 2, "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": 3, "tags": ["flame","heavy_ranged", "vehicle", "turret"] }, "Magna-Melta Turret": { @@ -1857,25 +1995,24 @@ global.weapons = { "melee_hands": 0, "ranged_hands": 0, "ammo": 6, - "range": 5.1, - "spli": 2, - "arp": 1, + "range": 4.1, + "spli": 20, + "arp": 4, "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": 4, "tags": ["plasma", "energy","heavy_ranged", "vehicle", "turret"] }, "Heavy Conversion Beam Projector": { @@ -1891,7 +2028,7 @@ global.weapons = { "ammo": 6, "range": 20, "spli": 1, - "arp": 1, + "arp": 4, "tags": ["vehicle","heavy_ranged", "dreadnought", "turret", "ancient"] }, "Neutron Blaster Turret": { @@ -1907,15 +2044,15 @@ global.weapons = { "ammo": 6, "range": 20, "spli": 2, - "arp": 1, + "arp": 4, "tags": ["vehicle","heavy_ranged", "turret"] }, "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, @@ -1923,7 +2060,7 @@ global.weapons = { "ammo": 25, "range": 18, "spli": 30, - "arp": 0, + "arp": 3, "tags": ["vehicle","heavy_ranged", "turret", "volkite", "ancient"] }, @@ -1940,7 +2077,7 @@ global.weapons = { "ammo": 20, "range": 12, "spli": 3, - "arp": 0, + "arp": 1, "tags": ["las"], "melee_hands": 0, "ranged_hands": 1, @@ -1958,7 +2095,7 @@ global.weapons = { "ammo": 30, "range": 3.1, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["pistol", "las"], }, // Other imperials @@ -1975,7 +2112,7 @@ global.weapons = { "ammo": 16, "range": 10, "spli": 2, - "arp": 0, + "arp": 1, "tags": ["bolt"], "second_profiles": ["Sarissa"] }, @@ -1992,7 +2129,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["axe"], }, "Hellrifle": { @@ -2006,7 +2143,7 @@ global.weapons = { "ammo": 10, "range": 20, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["rifle", "arcane"], "ranged_hands": 1, }, @@ -2035,7 +2172,7 @@ global.weapons = { "ammo": 6, "range": 2.1, "spli": 3, - "arp": 0, + "arp": 1, "tags": ["pistol"] }, "Eldar Power Sword": { @@ -2056,7 +2193,7 @@ global.weapons = { "ammo": 0, "range": 1, "spli": 3, - "arp": 1, + "arp": 2, "special_properties": ["Parry"], "tags": ["power", "sword", "elder", "xenos"], }, @@ -2064,9 +2201,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, @@ -2076,15 +2213,15 @@ 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, "range": 3.1, "spli": 3, - "arp": 0, + "arp": 1, "tags": ["rifle"] }, } @@ -2114,18 +2251,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"], @@ -2133,9 +2280,9 @@ global.gear = { "Terminator Armour": { "abbreviation": "Indmts", "armour_value": { - "standard": 42, - "master_crafted": 46, - "artifact": 50 + "standard": 30, + "master_crafted": 36, + "artifact": 40 }, "ranged_mod": { "standard": -10, @@ -2143,9 +2290,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, @@ -2157,19 +2314,29 @@ global.gear = { "Dreadnought": { "abbreviation": "Drdnght", "armour_value": { - "standard": 50, - "master_crafted": 55, - "artifact": 60 + "standard": 40, + "master_crafted": 45, + "artifact": 50 }, "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": 50 + }, + "damage_resistance_mod": { + "standard": 20, + "master_crafted": 25, + "artifact": 40 }, "melee_hands": 8, "ranged_hands": 8, @@ -2180,19 +2347,24 @@ global.gear = { "Tartaros": { "abbreviation": "Tartrs", "armour_value": { - "standard": 42, - "master_crafted": 46, - "artifact": 50 + "standard": 30, + "master_crafted": 36, + "artifact": 40 }, "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, @@ -2204,19 +2376,29 @@ 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": 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, @@ -2233,23 +2415,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, @@ -2257,9 +2449,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"], @@ -2268,19 +2470,24 @@ global.gear = { "MK4 Maximus": { "abbreviation": "MK4", "armour_value": { - "standard": 22, - "master_crafted": 25, - "artifact": 28 + "standard": 15, + "master_crafted": 17, + "artifact": 21 }, "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 }, "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"], @@ -2303,6 +2510,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, @@ -2312,18 +2529,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, @@ -2331,9 +2558,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, @@ -2345,6 +2572,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, @@ -2352,8 +2589,8 @@ global.gear = { "MK8 Errant": { "abbreviation": "MK8", "armour_value": { - "standard": 22, - "master_crafted": 24, + "standard": 20, + "master_crafted": 22, "artifact": 26 }, "ranged_mod": { @@ -2366,6 +2603,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, @@ -2663,7 +2910,7 @@ global.gear = { "ammo": 0, "range": 1, "spli": 1, - "arp": 0, + "arp": 1, "tags": ["vehicle"], }, "Searchlight": { @@ -2716,7 +2963,7 @@ global.gear = { "master_crafted": 30, "artifact": 35 }, - "tags": ["jump"], + "tags": ["power_only", "jump"], }, "Heavy Weapons Pack": { "abbreviation": "HvyWpPck", @@ -2726,12 +2973,10 @@ global.gear = { "master_crafted": 10, "artifact": 15 }, - "melee_hands": -1, - "ranged_hands": 1, + "tags": ["bonus_ammo"] }, "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": { @@ -2741,10 +2986,13 @@ global.gear = { }, "melee_hands": -0.25, "ranged_hands": -0.25, + "specials": { + "combi_tool": 1 + }, + "tags": ["terminator"] }, "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": { @@ -2754,6 +3002,10 @@ global.gear = { }, "melee_hands": -0.5, "ranged_hands": -0.5, + "specials": { + "combi_tool": 2 + }, + "tags": ["terminator"] }, "Conversion Beamer Pack": { "abbreviation": "CnvBmr", @@ -2761,8 +3013,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_only"] }, - // 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 0000000000..28214710a8 Binary files /dev/null and b/sprites/spr_cyclone_launcher/8cb6d9eb-f4d0-4e70-8a60-33dd017f0b50.png differ 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 0000000000..817864684d Binary files /dev/null and b/sprites/spr_cyclone_launcher/layers/8cb6d9eb-f4d0-4e70-8a60-33dd017f0b50/0f31cf23-d758-4aec-a384-f40c841e8042.png differ 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 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 0000000000..8dec0f8143 Binary files /dev/null and b/sprites/spr_weapon_omnissian_axe/cf403b7b-a831-4dd7-94fc-490b330d9a3b.png differ 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 0000000000..8dec0f8143 Binary files /dev/null and b/sprites/spr_weapon_omnissian_axe/layers/cf403b7b-a831-4dd7-94fc-490b330d9a3b/3f223d5d-3d0b-4c23-9457-1ae722299b06.png differ 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 diff --git a/sprites/spr_weapon_shotgun/ed54fad2-a39b-4f07-9737-5b8f916bee92.png b/sprites/spr_weapon_shotgun/ed54fad2-a39b-4f07-9737-5b8f916bee92.png new file mode 100644 index 0000000000..986f85620d Binary files /dev/null and b/sprites/spr_weapon_shotgun/ed54fad2-a39b-4f07-9737-5b8f916bee92.png differ diff --git a/sprites/spr_weapon_shotgun/layers/ed54fad2-a39b-4f07-9737-5b8f916bee92/11b4c573-f844-42a2-905a-d6dace60762b.png b/sprites/spr_weapon_shotgun/layers/ed54fad2-a39b-4f07-9737-5b8f916bee92/11b4c573-f844-42a2-905a-d6dace60762b.png new file mode 100644 index 0000000000..986f85620d Binary files /dev/null and b/sprites/spr_weapon_shotgun/layers/ed54fad2-a39b-4f07-9737-5b8f916bee92/11b4c573-f844-42a2-905a-d6dace60762b.png differ diff --git a/sprites/spr_weapon_shotgun/spr_weapon_shotgun.yy b/sprites/spr_weapon_shotgun/spr_weapon_shotgun.yy new file mode 100644 index 0000000000..3b80d39ea6 --- /dev/null +++ b/sprites/spr_weapon_shotgun/spr_weapon_shotgun.yy @@ -0,0 +1,111 @@ +{ + "$GMSprite":"", + "%Name":"spr_weapon_shotgun", + "bboxMode":0, + "bbox_bottom":192, + "bbox_left":31, + "bbox_right":62, + "bbox_top":99, + "collisionKind":1, + "collisionTolerance":0, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"ed54fad2-a39b-4f07-9737-5b8f916bee92","name":"ed54fad2-a39b-4f07-9737-5b8f916bee92","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":231, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"11b4c573-f844-42a2-905a-d6dace60762b","blendMode":0,"displayName":"default","isLocked":false,"name":"11b4c573-f844-42a2-905a-d6dace60762b","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"spr_weapon_shotgun", + "nineSlice":{ + "$GMNineSliceData":"", + "bottom":0, + "enabled":false, + "guideColour":[4294902015,4294902015,4294902015,4294902015,], + "highlightColour":1728023040, + "highlightStyle":0, + "left":0, + "resourceType":"GMNineSliceData", + "resourceVersion":"2.0", + "right":0, + "tileMode":[ + 0, + 0, + 0, + 0, + 0, + ], + "top":0, + }, + "origin":0, + "parent":{ + "name":"ranged", + "path":"folders/Sprites/Marine Viewer/weapons/ranged.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"v1", + "%Name":"spr_weapon_shotgun", + "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_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