mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-28 10:01:58 +00:00
* 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>
87 lines
2.2 KiB
Plaintext
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)
|