Files
Bubberstation/code/game/objects/structures/headpike.dm
SkyratBot 60b40c1379 [MIRROR] Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) (#27593)
* Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople)

* [MIRROR] Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) (#2314)

* Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople)

* Modular adjustments (vox, teshari names)

* Update yangyu.dm

* Delete language.dm

* Remove language.dm override

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>

* Fix 2

* fix 3

* Update monkeys.dm

* test fix

* One modular adjustment

* Ticked

* yeah

* unhardcodes modsuit parts (#82905)

see #70061 but i almost finished it, i only need to go through every
single module and assign it a fitting part

🆑
refactor: modsuits have been refactored if you see bugs report them
fix: admin cargo tech modsuit outfit now works correctly
/🆑

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>

* Revert "unhardcodes modsuit parts (#82905)"

This reverts commit 622968a8e5e9cd142cb4d19bf9775f084a4c17d9.

* Removes language.dm and duplicate species() proc

* Removes modular language subsystem

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Andrew <mt.forspam@gmail.com>
2024-06-09 11:19:08 +05:30

87 lines
2.2 KiB
Plaintext

/obj/structure/headpike
name = "spooky head on a spear"
desc = "When you really want to send a message."
icon = 'icons/obj/structures.dmi'
icon_state = "headpike"
density = FALSE
anchored = TRUE
var/obj/item/spear/spear
var/obj/item/spear/speartype = /obj/item/spear
var/obj/item/bodypart/head/victim
/obj/structure/headpike/bone //for bone spears
icon_state = "headpike-bone"
speartype = /obj/item/spear/bonespear
/obj/structure/headpike/bamboo //for bamboo spears
icon_state = "headpike-bamboo"
speartype = /obj/item/spear/bamboospear
/obj/structure/headpike/military //for military spears
icon_state = "headpike-military"
speartype = /obj/item/spear/military
/obj/structure/headpike/Initialize(mapload)
. = ..()
if(mapload)
CheckParts()
pixel_x = rand(-8, 8)
/obj/structure/headpike/Destroy()
QDEL_NULL(victim)
QDEL_NULL(spear)
return ..()
/obj/structure/headpike/CheckParts(list/parts_list)
victim = locate() in parts_list
if(!victim) //likely a mapspawned one
victim = new(src)
victim.real_name = generate_random_name()
spear = locate(speartype) in parts_list
if(!spear)
spear = new speartype(src)
update_appearance()
return ..()
/obj/structure/headpike/update_name()
name = "[victim.real_name] on a [spear.name]"
return ..()
/obj/structure/headpike/update_overlays()
. = ..()
if(!victim)
return
var/mutable_appearance/appearance = new()
appearance.copy_overlays(victim)
appearance.pixel_y = 12
appearance.layer = layer + 0.1
. += appearance
/obj/structure/headpike/Exited(atom/movable/gone, direction)
. = ..()
if(gone != victim && gone != spear)
return
if(gone == victim)
victim = null
if(gone == spear)
spear = null
if(!QDELETED(src))
deconstruct(TRUE)
/obj/structure/headpike/atom_deconstruct(disassembled)
var/obj/item/bodypart/head/our_head = victim
var/obj/item/spear/our_spear = spear
victim = null
spear = null
our_head?.forceMove(drop_location()) //Make sure the head always comes off
if(!disassembled)
return ..()
our_spear?.forceMove(drop_location())
/obj/structure/headpike/attack_hand(mob/user, list/modifiers)
. = ..()
if(.)
return
to_chat(user, span_notice("You take down [src]."))
deconstruct(TRUE)