Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Sloppenhiemer: The Sequel #2477

Merged
merged 3 commits into from
Dec 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions mojave/code/datums/wielding/twohanded.dm
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,6 @@
force_multiplier = null
force_unwielded = 15
force_wielded = 30

/datum/wield_info/twohanded/thunderstick
force_multiplier = null
8 changes: 4 additions & 4 deletions mojave/code/modules/mob/robots/vendortrons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,8 @@

/mob/living/simple_animal/hostile/retaliate/trader/ms13/gunrunner/initial_wanteds()
return list(
/obj/item/ms13/component/gunpowder/lq = list(30, rand(0,6), ""),
/obj/item/ms13/component/gunpowder = list(65, rand(0,6), ""),
/obj/item/ms13/component/gunpowder = list(30, rand(0,6), ""),
/obj/item/ms13/component/gunpowder/hq = list(65, rand(0,6), ""),
/obj/item/stack/sheet/ms13/scrap_lead = list(3, rand(5,30), ", per piece of lead"),
/obj/item/stack/sheet/ms13/scrap_brass = list(3, rand(5,30), ", per piece of brass"),
/obj/item/stack/sheet/ms13/refined_lead = list(22, rand(0,10), ", per ingot of lead"),
Expand Down Expand Up @@ -879,8 +879,8 @@
/obj/item/ammo_box/ms13/a308 = list(240, rand(0,1)),
/obj/item/ammo_box/ms13/a762 = list(240, rand(0,2)),
/obj/item/ammo_box/ms13/shotgun/buckshot = list(175, rand(0,3)),
/obj/item/ms13/component/gunpowder = list(80, rand(0,3)),
/obj/item/ms13/component/gunpowder/lq = list(40, rand(1,4))
/obj/item/ms13/component/gunpowder/hq = list(80, rand(0,3)),
/obj/item/ms13/component/gunpowder = list(40, rand(1,4))
)

/mob/living/simple_animal/hostile/retaliate/trader/ms13/drought/general_goods/initial_wanteds()
Expand Down
4 changes: 2 additions & 2 deletions mojave/effects/spawners/lootdrop/guarenteed/miscloot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@
/obj/item/stack/sheet/ms13/scrap_electronics/two,
/obj/item/stack/sheet/ms13/scrap_copper/two,
/obj/item/stack/sheet/ms13/cloth/two,
/obj/item/ms13/component/gunpowder/lq,
/obj/item/ms13/component/gunpowder,
/obj/item/ms13/component/cell,
/obj/item/stack/sheet/ms13/scrap_lead/two,
/obj/item/stack/sheet/ms13/scrap_silver/two,
Expand All @@ -126,7 +126,7 @@
/obj/effect/spawner/random/ms13/guaranteed/crafting/highrandom
name = "high tier random crafting spawner"
loot = list(
/obj/item/ms13/component/gunpowder,
/obj/item/ms13/component/gunpowder/hq,
/obj/item/stack/sheet/ms13/refined_lead/two,
/obj/item/stack/sheet/ms13/refined_silver/two,
/obj/item/stack/sheet/ms13/refined_gold/two,
Expand Down
4 changes: 2 additions & 2 deletions mojave/effects/spawners/lootdrop/miscloot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@
/obj/item/stack/sheet/ms13/scrap_electronics/two,
/obj/item/stack/sheet/ms13/scrap_copper/two,
/obj/item/stack/sheet/ms13/cloth/two,
/obj/item/ms13/component/gunpowder/lq,
/obj/item/ms13/component/gunpowder,
/obj/item/ms13/component/cell,
/obj/item/stack/sheet/ms13/scrap_lead/two,
/obj/item/stack/sheet/ms13/scrap_silver/two,
Expand All @@ -135,7 +135,7 @@
name = "high tier random crafting spawner"
spawn_loot_chance = 75
loot = list(
/obj/item/ms13/component/gunpowder,
/obj/item/ms13/component/gunpowder/hq,
/obj/item/stack/sheet/ms13/refined_lead/two,
/obj/item/stack/sheet/ms13/refined_silver/two,
/obj/item/stack/sheet/ms13/refined_gold/two,
Expand Down
10 changes: 5 additions & 5 deletions mojave/items/crafting/components.dm
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,16 @@
grid_height = 64

/obj/item/ms13/component/gunpowder
name = "high quality gunpowder"
desc = "High quality, refined gunpowder. Can be used to make standard quality ammunition."
name = "low quality gunpowder"
desc = "Low quality, impure, and probably dangerous gunpowder. Can be used to make junk ammunition."
icon_state = "gunpowder"
grid_width = 32
grid_height = 32


/obj/item/ms13/component/gunpowder/lq
name = "low quality gunpowder"
desc = "Low quality, impure, and probably dangerous gunpowder. Can be used to make junk ammunition."
/obj/item/ms13/component/gunpowder/hq
name = "high quality gunpowder"
desc = "High quality, refined gunpowder. Can be used to make standard quality ammunition."

// Light items (bulbs and stuff) //

Expand Down
35 changes: 0 additions & 35 deletions mojave/items/melee/special.dm
Original file line number Diff line number Diff line change
Expand Up @@ -85,38 +85,3 @@
playsound(loc, 'sound/weapons/genhit2.ogg', 50, TRUE)
*/

/obj/item/spear/explosive/ms13
name = "thunder stick"
icon = 'mojave/icons/objects/melee/melee_world.dmi'
lefthand_file = 'mojave/icons/mob/inhands/weapons/melee_inhand_left.dmi'
righthand_file = 'mojave/icons/mob/inhands/weapons/melee_inhand_right.dmi'
worn_icon = 'mojave/icons/mob/worn_melee.dmi'
worn_icon_state = "empty_placeholder"
attack_verb_continuous = list("whacks", "jabs", "smacks", "pokes")
attack_verb_simple = list("whack", "jab", "smack", "poke")
icon_state = "spear_thunder"
icon_prefix = "spear_thunder"
sharpness = NONE // the end is a god damn explosive charge

/obj/item/spear/explosive/ms13/Initialize(mapload)
. = ..()
set_explosive(new /obj/item/grenade/frag/ms13/charge)
AddElement(/datum/element/world_icon, null, icon, 'mojave/icons/objects/melee/melee_inventory.dmi')
desc = "A long stick, with an explosive charge stuck on the end. Point towards enemy!" // Overwrites the TG one that would otherwise be here due to initialization.

/obj/item/spear/explosive/ms13/update_icon_state()
. = ..()
icon_state = "spear_thunder"
inhand_icon_state = "spear_thunder"

/obj/item/spear/explosive/ms13/attack_self(mob/user)
. = ..()
if(wielded)
icon_state = "spear_thunder"
inhand_icon_state = "spear_thunder_wielded"
wielded = TRUE

else
icon_state = "spear_thunder"
inhand_icon_state = "spear_thunder"
wielded = FALSE
71 changes: 71 additions & 0 deletions mojave/items/melee/twohanded.dm
Original file line number Diff line number Diff line change
Expand Up @@ -338,3 +338,74 @@
for(var/X in actions)
var/datum/action/A = X
A.UpdateButtonIcon()

//THUNDER STICK//

/obj/item/ms13/twohanded/thunderstick
name = "thunder stick"
desc = "A long stick, with an explosive charge stuck on the end. Point towards enemy!"
force = 15
icon_state = "spear_thunder"
inhand_icon_state = "spear_thunder"
worn_icon = 'mojave/icons/mob/worn_melee.dmi'
worn_icon_state = "empty_placeholder"
attack_verb_continuous = list("whacks", "jabs", "smacks", "pokes")
attack_verb_simple = list("whack", "jab", "smack", "poke")
sharpness = NONE // the end is a god damn explosive charge
wield_info = /datum/wield_info/twohanded/thunderstick
slot_flags = null //it has no back sprite, we don't need bums stowing invisible suicide spears on their back
stowable = FALSE //this isn't your every day carry weapon
var/obj/item/grenade/explosive = /obj/item/grenade/frag/ms13/charge

/obj/item/ms13/twohanded/thunderstick/Initialize(mapload)
. = ..()
RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield)
RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield)
set_explosive(new /obj/item/grenade/frag/ms13/charge()) //For admin-spawned explosive lances

/obj/item/ms13/twohanded/thunderstick/proc/set_explosive(obj/item/grenade/G)
if(explosive)
QDEL_NULL(explosive)
G.forceMove(src)
explosive = G
desc = "A makeshift spear with [G] attached to it"

/obj/item/ms13/twohanded/thunderstick/CheckParts(list/parts_list)
var/obj/item/grenade/G = locate() in parts_list
if(G)
var/obj/item/spear/lancePart = locate() in parts_list
var/datum/component/two_handed/comp_twohand = lancePart.GetComponent(/datum/component/two_handed)
if(comp_twohand)
var/lance_wielded = comp_twohand.force_wielded
var/lance_unwielded = comp_twohand.force_unwielded
AddComponent(/datum/component/two_handed, force_unwielded=lance_unwielded, force_wielded=lance_wielded)
throwforce = lancePart.throwforce
parts_list -= G
parts_list -= lancePart
set_explosive(G)
qdel(lancePart)
..()

/obj/item/ms13/twohanded/thunderstick/suicide_act(mob/living/carbon/user)
user.visible_message(span_suicide("[user] begins to sword-swallow \the [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
explosive.forceMove(user)
explosive.detonate()
user.gib()
qdel(src)
return BRUTELOSS

/obj/item/ms13/twohanded/thunderstick/afterattack(atom/movable/AM, mob/user, proximity)
. = ..()
if(!proximity || !wielded || !istype(AM))
return
if(AM.resistance_flags & INDESTRUCTIBLE) //due to the lich incident of 2021, embedding grenades inside of indestructible structures is forbidden
return
if(ismob(AM))
var/mob/mob_target = AM
if(mob_target.status_flags & GODMODE) //no embedding grenade phylacteries inside of ghost poly either
return
if(iseffect(AM)) //and no accidentally wasting your moment of glory on graffiti
return
explosive.forceMove(AM)
explosive.detonate(lanced_by=user)
qdel(src)
Loading
Loading