From d66d29d4e3229229e46c0c317d075d0b920e45c3 Mon Sep 17 00:00:00 2001 From: savethetreez Date: Tue, 24 Oct 2023 17:12:45 +0200 Subject: [PATCH] Mujahideen SLs + stat and gear buff --- code/game/mob/living/carbon/human/death.dm | 9 +- code/game/objects/map_metadata/hill_3234.dm | 3 - code/game/objects/map_metadata/kandahar.dm | 53 ++++--- code/game/objects/map_metadata/magistral.dm | 3 - code/modules/1713/apparel_coldwar.dm | 14 ++ code/modules/1713/jobs/sovafghan.dm | 151 +++++++++++++++----- 6 files changed, 165 insertions(+), 68 deletions(-) diff --git a/code/game/mob/living/carbon/human/death.dm b/code/game/mob/living/carbon/human/death.dm index 8785b8312d..e0762717f6 100644 --- a/code/game/mob/living/carbon/human/death.dm +++ b/code/game/mob/living/carbon/human/death.dm @@ -155,9 +155,12 @@ else if (faction_text == CIVILIAN && original_job.title == "DRA Sergeant") world << "A DRA Sergeant has been killed!" MP.muj_points += 5 - else if (faction_text == ARAB && original_job.title == "Mujahideen Leader") - MP.sov_points += 10 - world << "A Mujahideen Leader has been killed!" + else if (faction_text == ARAB && original_job.title == "Mujahideen Warchief") + MP.sov_points += 15 + world << "The Mujahideen Warchief has been killed!" + else if (faction_text == ARAB && original_job.title == "Mujahideen Group Leader") + MP.sov_points += 5 + world << "The Mujahideen Group Leader has been killed!" if (MAP_SEKIGAHARA) if (civilization && civilization in map.scores) diff --git a/code/game/objects/map_metadata/hill_3234.dm b/code/game/objects/map_metadata/hill_3234.dm index f5d4a5e631..18a27fe60e 100644 --- a/code/game/objects/map_metadata/hill_3234.dm +++ b/code/game/objects/map_metadata/hill_3234.dm @@ -96,9 +96,6 @@ if (J.title == "Spetznaz GRU") J.max_positions = 2 J.total_positions = 2 - if (J.title == "Mujahideen Leader") - J.max_positions = 10 - J.total_positions = 10 else . = FALSE diff --git a/code/game/objects/map_metadata/kandahar.dm b/code/game/objects/map_metadata/kandahar.dm index c1f56bad55..59300c84b8 100644 --- a/code/game/objects/map_metadata/kandahar.dm +++ b/code/game/objects/map_metadata/kandahar.dm @@ -287,33 +287,40 @@ else world << "North West Village Outpost: Nobody" for (var/mob/living/human/H in player_list) - if (H.stat!=DEAD && (H.original_job.is_soviet == TRUE || H.original_job.is_dra == TRUE)) + if (H.original_job.is_soviet == TRUE || H.original_job.is_dra == TRUE) var/area/A = get_area(H) if (istype(A, /area/caribbean/arab/caves/prison)) - if (H.stat!=DEAD && H.original_job.title == "Soviet Army Captain") - muj_points += 4 - world << "The Soviet Army Captain is in captivity!" - else if (H.stat!=DEAD && H.original_job.title == "Soviet Army Lieutenant") - muj_points += 3 - world << "A Soviet Army Lieutenant is in captivity!" - else if (H.stat!=DEAD && H.original_job.title == "Soviet Army Sergeant") - muj_points += 2 - world << "A Soviet Army Sergeant is in captivity!" - else if (H.stat!=DEAD && H.original_job.title == "DRA Governor") - muj_points += 5 - world << "The DRA Governor is in captivity!" - else if (H.stat!=DEAD && H.original_job.title == "DRA Lieutenant") - muj_points += 3 - world << "A DRA Lieutenant is in captivity!" - else if (H.stat!=DEAD && H.original_job.title == "DRA Sergeant") - muj_points += 2 - world << "A DRA Sergeant is in captivity!" - if (H.stat!=DEAD && (H.original_job.is_muj == TRUE)) + if (H.stat != DEAD) + switch(H.original_job.title) + if ("Soviet Army Captain") + muj_points += 4 + world << "The Soviet Army Captain is in captivity!" + if ("Soviet Army Lieutenant") + muj_points += 3 + world << "A Soviet Army Lieutenant is in captivity!" + if ("Soviet Army Sergeant") + muj_points += 2 + world << "A Soviet Army Sergeant is in captivity!" + if ("DRA Governor") + muj_points += 5 + world << "The DRA Governor is in captivity!" + if ("DRA Lieutenant") + muj_points += 3 + world << "A DRA Lieutenant is in captivity!" + if ("DRA Sergeant") + muj_points += 2 + world << "A DRA Sergeant is in captivity!" + if (H.original_job.is_muj == TRUE) var/area/B = get_area(H) if (istype(B, /area/caribbean/prison/jail)) - if (H.stat!=DEAD && H.original_job.title == "Mujahideen Leader") - sov_points += 3 - world << "A Mujahideen Leader is currently being detained!" + if (H.stat != DEAD) + switch(H.original_job_title) + if ("Mujahideen Warchief") + sov_points += 4 + world << "The Mujahideen Warchief is in captivity!" + if ("Mujahideen Group Leader") + sov_points += 2 + world << "A Mujahideen Group Leader is in captivity!" spawn(600) points_check() spawn(300) diff --git a/code/game/objects/map_metadata/magistral.dm b/code/game/objects/map_metadata/magistral.dm index 340b109a7d..b46ecc6ba1 100644 --- a/code/game/objects/map_metadata/magistral.dm +++ b/code/game/objects/map_metadata/magistral.dm @@ -37,9 +37,6 @@ . = TRUE if (J.title == "DRA Governor") . = FALSE - if (J.title == "Mujahideen Leader") - J.max_positions = 10 - J.total_positions = 10 else . = FALSE diff --git a/code/modules/1713/apparel_coldwar.dm b/code/modules/1713/apparel_coldwar.dm index 1082eb8a17..bd2d4b7d24 100644 --- a/code/modules/1713/apparel_coldwar.dm +++ b/code/modules/1713/apparel_coldwar.dm @@ -1247,6 +1247,12 @@ new /obj/item/ammo_magazine/fal(src) new /obj/item/stack/medical/bruise_pack/gauze(src) +/obj/item/weapon/storage/belt/smallpouches/fal +/obj/item/weapon/storage/belt/smallpouches/fal/New() + ..() + for (var/i=1, i<=4, i++) + new /obj/item/ammo_magazine/fal(src) + /obj/item/weapon/storage/belt/smallpouches/green/sov_74 /obj/item/weapon/storage/belt/smallpouches/green/sov_74/New() ..() @@ -1255,6 +1261,14 @@ new /obj/item/ammo_magazine/ak74(src) new /obj/item/stack/medical/bruise_pack/gauze(src) +/obj/item/weapon/storage/belt/smallpouches/ak74 +/obj/item/weapon/storage/belt/smallpouches/ak74/New() + ..() + new /obj/item/weapon/grenade/modern/f1(src) + new /obj/item/ammo_magazine/ak74(src) + new /obj/item/ammo_magazine/ak74(src) + new /obj/item/ammo_magazine/ak74(src) + /obj/item/weapon/storage/belt/smallpouches/green/sov_74/alt /obj/item/weapon/storage/belt/smallpouches/green/sov_74/alt/New() ..() diff --git a/code/modules/1713/jobs/sovafghan.dm b/code/modules/1713/jobs/sovafghan.dm index 24e2e65a09..b0f147b017 100644 --- a/code/modules/1713/jobs/sovafghan.dm +++ b/code/modules/1713/jobs/sovafghan.dm @@ -1651,14 +1651,13 @@ ////////////////////////////////////////////////Mujahideen//////////////////////////////////////// -/datum/job/arab/mujahideen/leader - title = "Mujahideen Leader" - rank_abbreviation = "Leader" +/datum/job/arab/mujahideen/warchief + title = "Mujahideen Warchief" + rank_abbreviation = "Malik" spawn_location = "JoinLateAR" is_officer = TRUE - is_squad_leader = TRUE - uses_squads = TRUE + is_ is_afghan = TRUE is_muj = TRUE is_coldwar = TRUE @@ -1666,9 +1665,9 @@ additional_languages = list("Dari" = 100, "Russian" = 60, "English"= 60) min_positions = 1 - max_positions = 6 + max_positions = 1 -/datum/job/arab/mujahideen/leader/equip(var/mob/living/human/H) +/datum/job/arab/mujahideen/warchief/equip(var/mob/living/human/H) if (!H) return FALSE //shoes var/randshoes = rand(1,5) @@ -1704,16 +1703,7 @@ if (3) uniform.attackby(three, H) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/smallpouches(H), slot_belt) - var/obj/item/weapon/storage/bbelt = H.belt - var/obj/item/stack/medical/bruise_pack/gauze/ggauze = new /obj/item/stack/medical/bruise_pack/gauze(null) - var/obj/item/ammo_magazine/m16/mag1 = new /obj/item/ammo_magazine/m16(null) - var/obj/item/ammo_magazine/m16/mag2 = new /obj/item/ammo_magazine/m16(null) - var/obj/item/ammo_magazine/m16/mag3 = new /obj/item/ammo_magazine/m16(null) - bbelt.attackby(ggauze, H) - bbelt.attackby(mag1, H) - bbelt.attackby(mag2, H) - bbelt.attackby(mag3, H) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/smallpouches/us_stanag(H), slot_belt) //head var/randhat = rand(1,2) switch (randhat) @@ -1736,11 +1726,96 @@ H.g_facial = hex2num(copytext(hex_hair, 4, 6)) H.b_facial = hex2num(copytext(hex_hair, 6, 8)) - H.add_note("Role", "You are an [title], an islamic leader. Lead the Holy war against the red menace!") + H.add_note("Role", "You are a [title], an islamic leader. Lead the Holy War against the Red Menace!") + H.setStat("strength", STAT_HIGH) + H.setStat("crafting", STAT_NORMAL) + H.setStat("rifle", STAT_HIGH) + H.setStat("dexterity", STAT_MEDIUM_HIGH) + H.setStat("swords", STAT_HIGH) + H.setStat("pistol", STAT_NORMAL) + H.setStat("bows", STAT_MEDIUM_HIGH) + H.setStat("medical", STAT_MEDIUM_LOW) + give_random_name(H) + + return TRUE + +/datum/job/arab/mujahideen/group_leader + title = "Mujahideen Group Leader" + rank_abbreviation = "Jameedar" + + spawn_location = "JoinLateAR" + is_squad_leader = TRUE + uses_squads = TRUE + is_afghan = TRUE + is_muj = TRUE + is_coldwar = TRUE + default_language = "Pashto" + additional_languages = list("Dari" = 70, "Russian" = 30, "English"= 10) + + min_positions = 1 + max_positions = 10 + +/datum/job/arab/mujahideen/group_leader/equip(var/mob/living/human/H) + if (!H) return FALSE +//shoes + var/randshoes = rand(1,4) + switch(randshoes) + if (1) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/medieval/arab(H), slot_shoes) + if (2) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H), slot_shoes) + if (3) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) + if (4) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/leatherboots(H), slot_shoes) +//clothes + if (prob(50)) + H.equip_to_slot_or_del(new /obj/item/clothing/under/insurgent_black(H), slot_w_uniform) + else + H.equip_to_slot_or_del(new /obj/item/clothing/under/insurgent_sand_woodland(H), slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/weapon/attachment/scope/adjustable/binoculars/binoculars(H), slot_l_store) + var/obj/item/clothing/under/uniform = H.w_uniform + var/obj/item/clothing/accessory/armor/coldwar/pasgt/one = new /obj/item/clothing/accessory/armor/coldwar/pasgt(null) + var/obj/item/clothing/accessory/armor/coldwar/pasgt/green/two = new /obj/item/clothing/accessory/armor/coldwar/pasgt/green(null) + var/obj/item/clothing/accessory/armor/coldwar/plates/b3/three = new /obj/item/clothing/accessory/armor/coldwar/plates/b3(null) + var/randarmor = rand(1,3) + switch (randarmor) + if (1) + uniform.attackby(one, H) + if (2) + uniform.attackby(two, H) + if (3) + uniform.attackby(three, H) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/smallpouches/ak74(H), slot_belt) +//head + var/randhat = rand(1,3) + switch (randhat) + if (1) + H.equip_to_slot_or_del(new /obj/item/clothing/head/pakol(H), slot_head) + if (2) + H.equip_to_slot_or_del(new /obj/item/clothing/head/turban(H), slot_head) + if (3) + H.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/modern/ssh_68(H), slot_head) +//back + H.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/submachinegun/ak74(H), slot_shoulder) + H.civilization = "Mujahideen" + if (H.f_style != "Full Beard" && H.f_style != "Long Beard") + H.f_style = pick("Full Beard", "Long Beard") + H.s_tone = rand(-92,-80) + var/new_hair = pick("Dark Brown","Black") + var/hex_hair = hair_colors[new_hair] + H.r_hair = hex2num(copytext(hex_hair, 2, 4)) + H.g_hair = hex2num(copytext(hex_hair, 4, 6)) + H.b_hair = hex2num(copytext(hex_hair, 6, 8)) + H.r_facial = hex2num(copytext(hex_hair, 2, 4)) + H.g_facial = hex2num(copytext(hex_hair, 4, 6)) + H.b_facial = hex2num(copytext(hex_hair, 6, 8)) + + H.add_note("Role", "You are a [title]. Follow the orders from your Warchief and lead your men against your enemies.") H.setStat("strength", STAT_MEDIUM_HIGH) H.setStat("crafting", STAT_NORMAL) H.setStat("rifle", STAT_MEDIUM_HIGH) - H.setStat("dexterity", STAT_NORMAL) + H.setStat("dexterity", STAT_MEDIUM_HIGH) H.setStat("swords", STAT_HIGH) H.setStat("pistol", STAT_NORMAL) H.setStat("bows", STAT_MEDIUM_HIGH) @@ -1851,25 +1926,29 @@ if (6) H.equip_to_slot_or_del(new /obj/item/clothing/under/insurgent_black(H), slot_w_uniform) //gun and belt - var/randgun = rand(1,6) - switch(randgun) + var/randloadout = rand(1,5) + switch(randloadout) if (1) H.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/semiautomatic/sks(H), slot_shoulder) + var/obj/item/clothing/under/uniform = H.w_uniform + var/obj/item/clothing/accessory/storage/webbing/light/chinese/sks/webbing = new /obj/item/clothing/accessory/storage/webbing/light/chinese/sks(null) + uniform.attackby(webbing, H) if (2) H.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/boltaction/mosin/m30(H), slot_shoulder) + var/obj/item/clothing/under/uniform = H.w_uniform + var/obj/item/clothing/accessory/storage/webbing/nlfsmallpouches/mosinp = new /obj/item/clothing/accessory/storage/webbing/nlfsmallpouches/filled_mosin(null) + uniform.attackby(mosinp, H) if (3) H.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/boltaction/mosin/m30/sniper(H), slot_shoulder) + var/obj/item/clothing/under/uniform = H.w_uniform + var/obj/item/clothing/accessory/storage/webbing/nlfsmallpouches/mosinp = new /obj/item/clothing/accessory/storage/webbing/nlfsmallpouches/filled_mosin(null) + uniform.attackby(mosinp, H) if (4) - H.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/boltaction/enfield(H), slot_shoulder) - if (5) H.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/submachinegun/ak47(H), slot_shoulder) - if (6) - H.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/submachinegun/g3(H), slot_shoulder) - if (prob(50)) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/smallpouches(H), slot_belt) - if (prob(15)) - H.equip_to_slot_or_del(new /obj/item/weapon/radio/faction1(H), slot_back) - + H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/smallpouches/green/ak47(H), slot_belt) + if (5) + H.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/submachinegun/fal(H), slot_shoulder) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/smallpouches/fal(H), slot_belt) //head var/randhat1 = rand (1,3) var/randhat2 = rand (1,2) @@ -1905,15 +1984,15 @@ H.g_facial = hex2num(copytext(hex_hair, 4, 6)) H.b_facial = hex2num(copytext(hex_hair, 6, 8)) - H.add_note("Role", "You are a [title], an islamic rifleman militia. Use guerrila warfare tactics to defeat the infidels!") + H.add_note("Role", "You are a [title]. Use guerrila warfare tactics to defeat the infidels!") H.setStat("strength", STAT_MEDIUM_HIGH) H.setStat("crafting", STAT_NORMAL) - H.setStat("rifle", STAT_LOW) + H.setStat("rifle", STAT_NORMAL) H.setStat("dexterity", STAT_MEDIUM_HIGH) - H.setStat("swords", STAT_LOW) - H.setStat("pistol", STAT_LOW) - H.setStat("bows", STAT_MEDIUM_LOW) - H.setStat("medical", STAT_MEDIUM_LOW) + H.setStat("swords", STAT_NORMAL) + H.setStat("pistol", STAT_MEDIUM_LOW) + H.setStat("bows", STAT_NORMAL) + H.setStat("medical", STAT_LOW) give_random_name(H) return TRUE \ No newline at end of file