From 3aa30a97e1199f9765896d1d13f27494bf142b6b Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Mon, 16 Oct 2023 11:08:45 -0500 Subject: [PATCH 01/15] initial --- .../game/objects/items/storage/uplink_kits.dm | 4 ++- code/modules/clothing/head/misc_special.dm | 30 +++++++++++++++++++ code/modules/language/russian.dm | 14 +++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 code/modules/language/russian.dm diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 475e02eab758..649d05fcffbb 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -260,7 +260,6 @@ new /obj/item/slime_extract/sepia(src) new /obj/item/slime_extract/sepia(src) // sepia to stop time because we dont really have a time slow event - if("gang_boss") new /obj/item/clothing/under/jabroni(src) //fishnet suit new /obj/item/clothing/suit/yogs/pinksweater(src) //close enough @@ -270,6 +269,9 @@ new /obj/item/reagent_containers/glass/bottle/drugs(src) new /obj/item/slimecross/stabilized/green(src) //secret identity + if("scav_boss") + // hammer (when added, but better and can break non-rwalls instantly), plated mask, jumpsuit, some kinda mobility item?, syndi chestrig, utility gadget? + #undef CARP_CARP_CARP /obj/item/stand_arrow/boss diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 374ec9aac78f..4c560383e03a 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -33,6 +33,36 @@ /obj/item/clothing/head/welding/attack_self(mob/user) weldingvisortoggle(user) +/obj/item/clothing/head/welding/armored + name = "armored welding helmet" + desc = "A modified welding mask with loads of extra plating. Could probably shrug off a bullet, or twenty." + item_state = "weldingarmored" + icon_state = "weldingarmored" + var/datum/language/russian/L = new + +/obj/item/clothing/head/welding/armored/attack_self(mob/user) + ..() + if(up) + armor = list(MELEE = 50, BULLET = 50, LASER = 10,ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 60) // you WILL leg meta the antag + else //cant keep you safe if you arent wearing it + aror = list(MELEE = 10, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 60) + +/obj/item/clothing/head/welding/armored/equipped(mob/user, slot) + . = ..() + if(!ishuman(user)) + return + if(slot == ITEM_SLOT_HEAD) + user.grant_language(/datum/language/russian/, TRUE, TRUE, LANGUAGE_HAT) + to_chat(user, "You suddenly know how to speak like a gopnik!") + +/obj/item/clothing/head/welding/armored/dropped(mob/user) + . = ..() + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(H.get_item_by_slot(ITEM_SLOT_HEAD) == src) + user.remove_language(/datum/language/russian/, TRUE, TRUE, LANGUAGE_HAT) + to_chat(user, "You can no longer speak like a russian.") /* * Cakehat diff --git a/code/modules/language/russian.dm b/code/modules/language/russian.dm new file mode 100644 index 000000000000..6f3e4489ecd2 --- /dev/null +++ b/code/modules/language/russian.dm @@ -0,0 +1,14 @@ +/datum/language/russian + name = "Russian" + desc = "The language of space russians, and scavs everywhere." + speech_verb = "says" + ask_verb = "asks" + exclaim_verb = "exclaims" + key = "5" + flags = TONGUELESS_SPEECH + space_chance = 100 + default_priority = 80 + syllables = list("cyuka","blyat","comrade","cheeki","breeki","iv damke", + "opachkey","prieviet","urod","davi","da","niet","slozheli", "tovarish") + icon_state = "russian" + sing_verb = "sings" \ No newline at end of file From eed95f87b8555d26ee2782aae6be9716cad9b5e7 Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Mon, 16 Oct 2023 11:39:29 -0500 Subject: [PATCH 02/15] tweakin --- code/game/objects/items/storage/uplink_kits.dm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 649d05fcffbb..f2634342f80f 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -269,8 +269,14 @@ new /obj/item/reagent_containers/glass/bottle/drugs(src) new /obj/item/slimecross/stabilized/green(src) //secret identity - if("scav_boss") - // hammer (when added, but better and can break non-rwalls instantly), plated mask, jumpsuit, some kinda mobility item?, syndi chestrig, utility gadget? + if("scav_boss") // Mmm Tagilla my beloved. 30~ TC + new /obj/item/storage/belt/military(src) // 0 armor (for now, maybe) 0 TC its drippin. + new /obj/item/clothing/head/welding/armored(src) // Silly mask. GREAT armor, but only protects the head. Some TC, ill do the calulation later + new /obj/item/gun/ballistic/shotgun/bulldog/unrestricted(src) // unfortunatley no AP-20s. 8 TC. + new /obj/item/ammo_box/magazine/m12g(src) // a single spare mag. 2 TC. + // new /obj/item/melee/sledgehammer/elite(src) // not coded in yet. Less than an energy axe for sure. + new /obj/item/clothing/under/pants/blackjeans(src) // 0 TC. Style is free. + // new /obj/item/clothing/suit/armor/vest/rig(src) // Security armor vest but resprited. 0 TC they are literally everywhere. #undef CARP_CARP_CARP From ef32e87b786b7d97cb2925374895b6d8208f3c46 Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Mon, 16 Oct 2023 11:40:47 -0500 Subject: [PATCH 03/15] and i oops --- code/game/objects/items/storage/uplink_kits.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index f2634342f80f..e0f591075567 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -138,7 +138,7 @@ new /obj/item/card/emag(src) //6 TC /obj/item/storage/box/syndicate/bundle_B/PopulateContents() - switch (pickweight(list("v" = 2, "oddjob" = 2, "neo" = 1, "ninja" = 1, "darklord" = 1, "white_whale_holy_grail" = CARP_CARP_CARP, "mad_scientist" = 2, "bee" = 2, "mr_freeze" = 2, "gang_boss" = 1))) + switch (pickweight(list("v" = 2, "oddjob" = 2, "neo" = 1, "ninja" = 1, "darklord" = 1, "white_whale_holy_grail" = CARP_CARP_CARP, "mad_scientist" = 2, "bee" = 2, "mr_freeze" = 2, "gang_boss" = 1, "scav_boss" = 1))) if("v") //Big Boss. Total of ~26 TC. new /obj/item/clothing/under/syndicate/camo(src) //Reskinned tactical turtleneck, free new /obj/item/clothing/glasses/eyepatch/bigboss(src) //Gives flash protection and night vision, probably around 2-3 TC From 4331f6253b270a4f3776f69222a024b402ddf8d9 Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Mon, 16 Oct 2023 11:50:42 -0500 Subject: [PATCH 04/15] it wont compile till i can update the DM to recognize the file --- code/modules/clothing/head/misc_special.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 4c560383e03a..1f4cb18cce1c 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -38,14 +38,13 @@ desc = "A modified welding mask with loads of extra plating. Could probably shrug off a bullet, or twenty." item_state = "weldingarmored" icon_state = "weldingarmored" - var/datum/language/russian/L = new /obj/item/clothing/head/welding/armored/attack_self(mob/user) ..() if(up) armor = list(MELEE = 50, BULLET = 50, LASER = 10,ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 60) // you WILL leg meta the antag else //cant keep you safe if you arent wearing it - aror = list(MELEE = 10, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 60) + armor = list(MELEE = 10, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 60) /obj/item/clothing/head/welding/armored/equipped(mob/user, slot) . = ..() From 68d52dd3e7850ba4a02a80f7f49c54a62c066ec2 Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Mon, 16 Oct 2023 13:26:35 -0500 Subject: [PATCH 05/15] vest --- code/game/objects/items/storage/uplink_kits.dm | 2 +- code/modules/clothing/suits/armor.dm | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index e0f591075567..16376c887fc4 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -276,7 +276,7 @@ new /obj/item/ammo_box/magazine/m12g(src) // a single spare mag. 2 TC. // new /obj/item/melee/sledgehammer/elite(src) // not coded in yet. Less than an energy axe for sure. new /obj/item/clothing/under/pants/blackjeans(src) // 0 TC. Style is free. - // new /obj/item/clothing/suit/armor/vest/rig(src) // Security armor vest but resprited. 0 TC they are literally everywhere. + new /obj/item/clothing/suit/armor/vest/rig(src) //2 TC? Worse captain carapace, and only protects chest, not balls. Also needed to hold the shotgun in the vest slot. #undef CARP_CARP_CARP diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 00c64403b452..8e1503b4a389 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -231,6 +231,13 @@ . = ..() allowed = GLOB.detective_vest_allowed +/obj/item/clothing/suit/armor/vest/rig + name = "Crye Precision AVS plate carrier" + desc = "A small vest with three pouches on the front. Protects your chest, but thats about it." + icon_state = "rig-armor" + armor = list(MELEE = 40, BULLET = 60, LASER = 25, ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20, WOUND = 20) + body_parts_covered = CHEST // Aim for the tummy + //All of the armor below is mostly unused /obj/item/clothing/suit/armor/centcom From e9af0b884b3805901aaf92fd62b3bf29f181b415 Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Fri, 20 Oct 2023 08:45:23 -0500 Subject: [PATCH 06/15] hammer time --- .../game/objects/items/storage/uplink_kits.dm | 2 +- .../objects/items/wielded/sledgehammer.dm | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index e47e50c462c5..2bf9df1543f4 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -283,7 +283,7 @@ new /obj/item/clothing/head/welding/armored(src) // Silly mask. GREAT armor, but only protects the head. Some TC, ill do the calulation later new /obj/item/gun/ballistic/shotgun/bulldog/unrestricted(src) // unfortunatley no AP-20s. 8 TC. new /obj/item/ammo_box/magazine/m12g(src) // a single spare mag. 2 TC. - // new /obj/item/melee/sledgehammer/elite(src) // not coded in yet. Less than an energy axe for sure. + new /obj/item/melee/sledgehammer/elite(src) //Less than an energy axe for sure. new /obj/item/clothing/under/pants/blackjeans(src) // 0 TC. Style is free. new /obj/item/clothing/suit/armor/vest/rig(src) //2 TC? Worse captain carapace, and only protects chest, not balls. Also needed to hold the shotgun in the vest slot. diff --git a/yogstation/code/game/objects/items/wielded/sledgehammer.dm b/yogstation/code/game/objects/items/wielded/sledgehammer.dm index 490d1337a755..84641a86bc0e 100644 --- a/yogstation/code/game/objects/items/wielded/sledgehammer.dm +++ b/yogstation/code/game/objects/items/wielded/sledgehammer.dm @@ -66,3 +66,32 @@ C.add_movespeed_modifier(SLEDGEHAMMER_THROWN_STAGGER, update=TRUE, priority=101, multiplicative_slowdown=1) addtimer(CALLBACK(C, TYPE_PROC_REF(/mob, remove_movespeed_modifier), SLEDGEHAMMER_THROWN_STAGGER), 2 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) to_chat(target, span_danger("You are staggered from throwing such a heavy object!")) + +/obj/item/melee/sledgehammer/elite + name = "'Dead Blow' sledgehammer" + desc = "A modernized version of the normal sledgehammer. Better weighted, better painted, you could really kill some chads with this." + icon_state = "sledgehammer-elite" + item_state = "sledgehammer-elite" + throwforce = 20 // A little better weighted + block_chance = 50 // Big ass thing probably blocks pretty good + var/wallbreak_chance = 50 // only non-Rwalls + +/obj/item/melee/sledgehammer/elite/Initialize(mapload) + . = ..() + AddComponent(/datum/component/two_handed, \ + force_unwielded = 3, \ + force_wielded = 22, \ + wield_callback = CALLBACK(src, PROC_REF(on_wield)), \ + unwield_callback = CALLBACK(src, PROC_REF(on_unwield)), \ + require_twohands = TRUE, \ + wielded_stats = list(SWING_SPEED = 1.2, ENCUMBRANCE = 0.75, ENCUMBRANCE_TIME = 1 SECONDS, REACH = 1, DAMAGE_LOW = 0, DAMAGE_HIGH = 0), \ + ) + +/obj/item/melee/sledgehammer/elite/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + . = ..() + if(istype(src, /turf/closed/wall) && !istype(src, /turf/closed/wall/r_wall)) + if(prob(wallbreak_chance)) + W.dismantle_wall(TRUE, TRUE) + else + to_chat(user, span_warning("The wall shudders, but doesnt break!")) + playsound(src, 'sound/effects/bang.ogg', 50, 1) \ No newline at end of file From b40e114273df3d7a73db06a0f8bd855e14196973 Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Fri, 20 Oct 2023 08:49:24 -0500 Subject: [PATCH 07/15] there was SPACES apparently --- code/game/objects/items/storage/uplink_kits.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 2bf9df1543f4..fcd82bafa103 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -138,7 +138,7 @@ new /obj/item/card/emag(src) //6 TC /obj/item/storage/box/syndicate/bundle_B/PopulateContents() - switch (pickweight(list("v" = 2, "oddjob" = 2, "neo" = 1, "ninja" = 1, "darklord" = 1, "white_whale_holy_grail" = CARP_CARP_CARP, "mad_scientist" = 2, "bee" = 2, "mr_freeze" = 2, "gang_boss" = 1, "scav_boss" = 1, "solo" = 1))) + switch (pickweight(list("v" = 2, "oddjob" = 2, "neo" = 1, "ninja" = 1, "darklord" = 1, "white_whale_holy_grail" = CARP_CARP_CARP, "mad_scientist" = 2, "bee" = 2, "mr_freeze" = 2, "gang_boss" = 1, "scav_boss" = 1, "solo" = 1))) if("v") //Big Boss. Total of ~26 TC. new /obj/item/clothing/under/syndicate/camo(src) //Reskinned tactical turtleneck, free new /obj/item/clothing/glasses/eyepatch/bigboss(src) //Gives flash protection and night vision, probably around 2-3 TC From d74479bf6e5bbe03aa228cb633445b7106c5d500 Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Fri, 20 Oct 2023 08:51:14 -0500 Subject: [PATCH 08/15] oop --- yogstation/code/game/objects/items/wielded/sledgehammer.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yogstation/code/game/objects/items/wielded/sledgehammer.dm b/yogstation/code/game/objects/items/wielded/sledgehammer.dm index 84641a86bc0e..c18b8d58742e 100644 --- a/yogstation/code/game/objects/items/wielded/sledgehammer.dm +++ b/yogstation/code/game/objects/items/wielded/sledgehammer.dm @@ -89,9 +89,9 @@ /obj/item/melee/sledgehammer/elite/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() - if(istype(src, /turf/closed/wall) && !istype(src, /turf/closed/wall/r_wall)) + if(istype(S, /turf/closed/wall) && !istype(S, /turf/closed/wall/r_wall)) if(prob(wallbreak_chance)) - W.dismantle_wall(TRUE, TRUE) + S.dismantle_wall(TRUE, TRUE) else to_chat(user, span_warning("The wall shudders, but doesnt break!")) playsound(src, 'sound/effects/bang.ogg', 50, 1) \ No newline at end of file From 9e7aa66bbdbf94bb4f011c2f09b90234e7ccd45b Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Fri, 20 Oct 2023 08:59:18 -0500 Subject: [PATCH 09/15] didnt think i NEEDE Dthis here, but oh well --- yogstation/code/game/objects/items/wielded/sledgehammer.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/yogstation/code/game/objects/items/wielded/sledgehammer.dm b/yogstation/code/game/objects/items/wielded/sledgehammer.dm index c18b8d58742e..6d6c31b49357 100644 --- a/yogstation/code/game/objects/items/wielded/sledgehammer.dm +++ b/yogstation/code/game/objects/items/wielded/sledgehammer.dm @@ -89,6 +89,7 @@ /obj/item/melee/sledgehammer/elite/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() + var/obj/structure/S = target if(istype(S, /turf/closed/wall) && !istype(S, /turf/closed/wall/r_wall)) if(prob(wallbreak_chance)) S.dismantle_wall(TRUE, TRUE) From c73af495c943f7930c3c16c7ca8247115cc86e01 Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Fri, 20 Oct 2023 09:05:07 -0500 Subject: [PATCH 10/15] wall? --- yogstation/code/game/objects/items/wielded/sledgehammer.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yogstation/code/game/objects/items/wielded/sledgehammer.dm b/yogstation/code/game/objects/items/wielded/sledgehammer.dm index 6d6c31b49357..86af7a931e05 100644 --- a/yogstation/code/game/objects/items/wielded/sledgehammer.dm +++ b/yogstation/code/game/objects/items/wielded/sledgehammer.dm @@ -89,10 +89,10 @@ /obj/item/melee/sledgehammer/elite/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() - var/obj/structure/S = target - if(istype(S, /turf/closed/wall) && !istype(S, /turf/closed/wall/r_wall)) + var/obj/structure/W = target + if(istype(W, /turf/closed/wall) && !istype(W, /turf/closed/wall/r_wall)) if(prob(wallbreak_chance)) - S.dismantle_wall(TRUE, TRUE) + W.dismantle_wall(TRUE, TRUE) else to_chat(user, span_warning("The wall shudders, but doesnt break!")) playsound(src, 'sound/effects/bang.ogg', 50, 1) \ No newline at end of file From 3751df6d04b3d79ccbff67da3219bd57d095c9f4 Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Fri, 20 Oct 2023 09:10:12 -0500 Subject: [PATCH 11/15] im dumb --- yogstation/code/game/objects/items/wielded/sledgehammer.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yogstation/code/game/objects/items/wielded/sledgehammer.dm b/yogstation/code/game/objects/items/wielded/sledgehammer.dm index 86af7a931e05..b4c811d72457 100644 --- a/yogstation/code/game/objects/items/wielded/sledgehammer.dm +++ b/yogstation/code/game/objects/items/wielded/sledgehammer.dm @@ -89,7 +89,7 @@ /obj/item/melee/sledgehammer/elite/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() - var/obj/structure/W = target + var/turf/closed/wall/W = target if(istype(W, /turf/closed/wall) && !istype(W, /turf/closed/wall/r_wall)) if(prob(wallbreak_chance)) W.dismantle_wall(TRUE, TRUE) From f1584e099c9674d203a1395de69a7de8210c349e Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Fri, 20 Oct 2023 10:12:53 -0500 Subject: [PATCH 12/15] wall breaker --- .../objects/items/wielded/sledgehammer.dm | 35 +++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/yogstation/code/game/objects/items/wielded/sledgehammer.dm b/yogstation/code/game/objects/items/wielded/sledgehammer.dm index b4c811d72457..c31810035db1 100644 --- a/yogstation/code/game/objects/items/wielded/sledgehammer.dm +++ b/yogstation/code/game/objects/items/wielded/sledgehammer.dm @@ -90,9 +90,32 @@ /obj/item/melee/sledgehammer/elite/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() var/turf/closed/wall/W = target - if(istype(W, /turf/closed/wall) && !istype(W, /turf/closed/wall/r_wall)) - if(prob(wallbreak_chance)) - W.dismantle_wall(TRUE, TRUE) - else - to_chat(user, span_warning("The wall shudders, but doesnt break!")) - playsound(src, 'sound/effects/bang.ogg', 50, 1) \ No newline at end of file + switch(wall_breaker) + if(istype(W, /turf/closed/wall/r_wall)) + if(prob(wallbreak_chance - 45)) // 5% chance + W.dismantle_wall(TRUE, TRUE) // nice odds + else + to_chat(user, span_warning("The wall barely moves, but a crack does seem to show!")) + playsound(src, 'sound/effects/bang.ogg', 50, 1) + + if(istype(W, /turf/closed/wall/mineral/titanium)) + if(prob(wallbreak_chance - 25)) // Shuttle walls, bit tougher + W.dismantle_wall(TRUE, TRUE) + else + to_chat(user, span_warning("The wall bounces back against your swing, but doesnt break!")) + playsound(src, 'sound/effects/bang.ogg', 50, 1) + + if(istype(W, /turf/closed/wall/mineral)) + if(prob(wallbreak_chance + 20)) // 99% chance its playermade and non-essential so who cares. + W.dismantle_wall(TRUE, TRUE) + else + to_chat(user, span_warning("The wall shakes while peices, but doesnt break!")) + playsound(src, 'sound/effects/bang.ogg', 50, 1) + + if(istype(W, /turf/closed/wall)) + if(prob(wallbreak_chance)) + W.dismantle_wall(TRUE, TRUE) + else + to_chat(user, span_warning("The wall shudders, but doesnt break!")) + playsound(src, 'sound/effects/bang.ogg', 50, 1) + \ No newline at end of file From bf276a0aed7cf6609bb930dda44a9382452b82b0 Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Fri, 20 Oct 2023 10:22:35 -0500 Subject: [PATCH 13/15] mayhaps --- .../objects/items/wielded/sledgehammer.dm | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/yogstation/code/game/objects/items/wielded/sledgehammer.dm b/yogstation/code/game/objects/items/wielded/sledgehammer.dm index c31810035db1..d3f07c24e7e1 100644 --- a/yogstation/code/game/objects/items/wielded/sledgehammer.dm +++ b/yogstation/code/game/objects/items/wielded/sledgehammer.dm @@ -90,32 +90,32 @@ /obj/item/melee/sledgehammer/elite/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() var/turf/closed/wall/W = target - switch(wall_breaker) - if(istype(W, /turf/closed/wall/r_wall)) - if(prob(wallbreak_chance - 45)) // 5% chance - W.dismantle_wall(TRUE, TRUE) // nice odds - else - to_chat(user, span_warning("The wall barely moves, but a crack does seem to show!")) - playsound(src, 'sound/effects/bang.ogg', 50, 1) - if(istype(W, /turf/closed/wall/mineral/titanium)) - if(prob(wallbreak_chance - 25)) // Shuttle walls, bit tougher - W.dismantle_wall(TRUE, TRUE) - else - to_chat(user, span_warning("The wall bounces back against your swing, but doesnt break!")) - playsound(src, 'sound/effects/bang.ogg', 50, 1) + if(istype(W, /turf/closed/wall/r_wall)) + if(prob(wallbreak_chance - 45)) // 5% chance + W.dismantle_wall(TRUE, TRUE) // nice odds + else + to_chat(user, span_warning("The wall barely moves, but a crack does seem to show!")) + playsound(src, 'sound/effects/bang.ogg', 50, 1) - if(istype(W, /turf/closed/wall/mineral)) - if(prob(wallbreak_chance + 20)) // 99% chance its playermade and non-essential so who cares. - W.dismantle_wall(TRUE, TRUE) - else - to_chat(user, span_warning("The wall shakes while peices, but doesnt break!")) - playsound(src, 'sound/effects/bang.ogg', 50, 1) + if(istype(W, /turf/closed/wall/mineral/titanium)) + if(prob(wallbreak_chance - 25)) // Shuttle walls, bit tougher + W.dismantle_wall(TRUE, TRUE) + else + to_chat(user, span_warning("The wall bounces back against your swing, but doesnt break!")) + playsound(src, 'sound/effects/bang.ogg', 50, 1) - if(istype(W, /turf/closed/wall)) - if(prob(wallbreak_chance)) - W.dismantle_wall(TRUE, TRUE) - else - to_chat(user, span_warning("The wall shudders, but doesnt break!")) - playsound(src, 'sound/effects/bang.ogg', 50, 1) + if(istype(W, /turf/closed/wall/mineral)) + if(prob(wallbreak_chance + 20)) // 99% chance its playermade and non-essential so who cares. + W.dismantle_wall(TRUE, TRUE) + else + to_chat(user, span_warning("The wall shakes while peices, but doesnt break!")) + playsound(src, 'sound/effects/bang.ogg', 50, 1) + + if(istype(W, /turf/closed/wall)) + if(prob(wallbreak_chance)) + W.dismantle_wall(TRUE, TRUE) + else + to_chat(user, span_warning("The wall shudders, but doesnt break!")) + playsound(src, 'sound/effects/bang.ogg', 50, 1) \ No newline at end of file From 35db56cb62bee3bbbd51d75369eba5b431d64a2e Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Sat, 21 Oct 2023 13:09:42 -0500 Subject: [PATCH 14/15] dios mio --- yogstation.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/yogstation.dme b/yogstation.dme index 3ea221056c4d..20dc2d452f99 100644 --- a/yogstation.dme +++ b/yogstation.dme @@ -2538,6 +2538,7 @@ #include "code\modules\language\piratespeak.dm" #include "code\modules\language\polysmorph.dm" #include "code\modules\language\ratvarian.dm" +#include "code\modules\language\russian.dm" #include "code\modules\language\slime.dm" #include "code\modules\language\swarmer.dm" #include "code\modules\language\sylvan.dm" From b6a83013b1a08579f444ad06427f2551c3bf3279 Mon Sep 17 00:00:00 2001 From: Manatee <74586965+MajManatee@users.noreply.github.com> Date: Sat, 21 Oct 2023 13:20:54 -0500 Subject: [PATCH 15/15] hammer and sickle sprite --- icons/misc/language.dmi | Bin 6375 -> 6504 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/misc/language.dmi b/icons/misc/language.dmi index 86e8a0aeacb41b0d012c833c03427b28494cb2aa..d9911f7e504af3e10a799b060f162d4104673ace 100644 GIT binary patch literal 6504 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