mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-26 02:02:39 +00:00
* I think this is ok? * Chicken Man and Kidan statues are now real statues that can be moved and disassembled (disassembly causes them to vanish without dropping materials as there are no bronze or obsidian stacks). Moved their sprites from decorations to statues for consistency. * Oops! Metastation too. * Finally got everything sorted out. Phew! * The OXENbot on the derelict station is no longer a renamed chicken man statue. It can also be unanchored and sliced up for metal should you be inclined to do so. * What even is this? Delete this. * Coding standards * Removed density variables from the changed statues. * Fixes conflicts
345 lines
10 KiB
Plaintext
345 lines
10 KiB
Plaintext
/obj/structure/statue
|
|
name = "statue"
|
|
desc = "Placeholder. Yell at Firecage if you SOMEHOW see this."
|
|
icon = 'icons/obj/statue.dmi'
|
|
icon_state = ""
|
|
density = 1
|
|
anchored = 0
|
|
max_integrity = 100
|
|
var/oreAmount = 5
|
|
var/material_drop_type = /obj/item/stack/sheet/metal
|
|
|
|
/obj/structure/statue/attackby(obj/item/W, mob/living/user, params)
|
|
add_fingerprint(user)
|
|
if(!(flags & NODECONSTRUCT))
|
|
if(default_unfasten_wrench(user, W))
|
|
return
|
|
if(istype(W, /obj/item/gun/energy/plasmacutter))
|
|
playsound(src, W.usesound, 100, 1)
|
|
user.visible_message("[user] is slicing apart the [name]...", \
|
|
"<span class='notice'>You are slicing apart the [name]...</span>")
|
|
if(do_after(user, 40 * W.toolspeed, target = src))
|
|
if(!loc)
|
|
return
|
|
user.visible_message("[user] slices apart the [name].", \
|
|
"<span class='notice'>You slice apart the [name].</span>")
|
|
deconstruct(TRUE)
|
|
return
|
|
return ..()
|
|
|
|
|
|
/obj/structure/statue/welder_act(mob/user, obj/item/I)
|
|
if(anchored)
|
|
return
|
|
. = TRUE
|
|
if(!I.tool_use_check(user, 0))
|
|
return
|
|
WELDER_ATTEMPT_SLICING_MESSAGE
|
|
if(I.use_tool(src, user, 40, volume = I.tool_volume))
|
|
WELDER_SLICING_SUCCESS_MESSAGE
|
|
deconstruct(TRUE)
|
|
|
|
|
|
/obj/structure/statue/attack_hand(mob/living/user)
|
|
user.changeNext_move(CLICK_CD_MELEE)
|
|
add_fingerprint(user)
|
|
user.visible_message("[user] rubs some dust off from the [name]'s surface.", \
|
|
"<span class='notice'>You rub some dust off from the [name]'s surface.</span>")
|
|
|
|
/obj/structure/statue/CanAtmosPass()
|
|
return !density
|
|
|
|
/obj/structure/statue/deconstruct(disassembled = TRUE)
|
|
if(!(flags & NODECONSTRUCT))
|
|
if(material_drop_type)
|
|
var/drop_amt = oreAmount
|
|
if(!disassembled)
|
|
drop_amt -= 2
|
|
if(drop_amt > 0)
|
|
new material_drop_type(get_turf(src), drop_amt)
|
|
qdel(src)
|
|
|
|
/obj/structure/statue/uranium
|
|
max_integrity = 300
|
|
light_range = 2
|
|
material_drop_type = /obj/item/stack/sheet/mineral/uranium
|
|
var/last_event = 0
|
|
var/active = null
|
|
|
|
/obj/structure/statue/uranium/nuke
|
|
name = "statue of a nuclear fission explosive"
|
|
desc = "This is a grand statue of a Nuclear Explosive. It has a sickening green colour."
|
|
icon_state = "nuke"
|
|
|
|
/obj/structure/statue/uranium/eng
|
|
name = "statue of an engineer"
|
|
desc = "This statue has a sickening green colour."
|
|
icon_state = "eng"
|
|
|
|
/obj/structure/statue/uranium/attackby(obj/item/W, mob/user, params)
|
|
radiate()
|
|
return ..()
|
|
|
|
/obj/structure/statue/uranium/Bumped(atom/user)
|
|
radiate()
|
|
..()
|
|
|
|
/obj/structure/statue/uranium/attack_hand(mob/user)
|
|
radiate()
|
|
..()
|
|
|
|
/obj/structure/statue/uranium/proc/radiate()
|
|
if(!active)
|
|
if(world.time > last_event+15)
|
|
active = 1
|
|
for(var/mob/living/L in range(3,src))
|
|
L.apply_effect(12,IRRADIATE,0)
|
|
last_event = world.time
|
|
active = null
|
|
|
|
/obj/structure/statue/plasma
|
|
max_integrity = 200
|
|
material_drop_type = /obj/item/stack/sheet/mineral/plasma
|
|
desc = "This statue is suitably made from plasma."
|
|
|
|
/obj/structure/statue/plasma/scientist
|
|
name = "statue of a scientist"
|
|
icon_state = "sci"
|
|
|
|
/obj/structure/statue/plasma/xeno
|
|
name = "statue of a xenomorph"
|
|
icon_state = "xeno"
|
|
|
|
/obj/structure/statue/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
|
..()
|
|
if(exposed_temperature > 300)
|
|
PlasmaBurn(exposed_temperature)
|
|
|
|
/obj/structure/statue/plasma/bullet_act(obj/item/projectile/P)
|
|
if(!QDELETED(src)) //wasn't deleted by the projectile's effects.
|
|
if(!P.nodamage && ((P.damage_type == BURN) || (P.damage_type == BRUTE)))
|
|
if(P.firer)
|
|
message_admins("[key_name_admin(P.firer)] ignited a plasma statue with [P.name] at [COORD(loc)]")
|
|
log_game("[key_name(P.firer)] ignited a plasma statue with [P.name] at [COORD(loc)]")
|
|
investigate_log("[key_name(P.firer)] ignited a plasma statue with [P.name] at [COORD(loc)]", "atmos")
|
|
else
|
|
message_admins("A plasma statue was ignited with [P.name] at [COORD(loc)]. No known firer.")
|
|
log_game("A plasma statue was ignited with [P.name] at [COORD(loc)]. No known firer.")
|
|
PlasmaBurn()
|
|
..()
|
|
|
|
/obj/structure/statue/plasma/attackby(obj/item/W, mob/user, params)
|
|
if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite
|
|
message_admins("[key_name_admin(user)] ignited a plasma statue at [COORD(loc)]")
|
|
log_game("[key_name(user)] ignited plasma a statue at [COORD(loc)]")
|
|
investigate_log("[key_name(user)] ignited a plasma statue at [COORD(loc)]", "atmos")
|
|
ignite(is_hot(W))
|
|
return
|
|
return ..()
|
|
|
|
/obj/structure/statue/plasma/welder_act(mob/user, obj/item/I)
|
|
. = TRUE
|
|
if(!I.use_tool(src, user, volume = I.tool_volume))
|
|
return
|
|
user.visible_message("<span class='danger'>[user] sets [src] on fire!</span>",\
|
|
"<span class='danger'>[src] disintegrates into a cloud of plasma!</span>",\
|
|
"<span class='warning'>You hear a 'whoompf' and a roar.</span>")
|
|
message_admins("[key_name_admin(user)] ignited a plasma statue at [COORD(loc)]")
|
|
log_game("[key_name(user)] ignited plasma a statue at [COORD(loc)]")
|
|
investigate_log("[key_name(user)] ignited a plasma statue at [COORD(loc)]", "atmos")
|
|
ignite(2500)
|
|
|
|
/obj/structure/statue/plasma/proc/PlasmaBurn()
|
|
atmos_spawn_air(LINDA_SPAWN_HEAT | LINDA_SPAWN_TOXINS, 160)
|
|
deconstruct(FALSE)
|
|
|
|
/obj/structure/statue/plasma/proc/ignite(exposed_temperature)
|
|
if(exposed_temperature > 300)
|
|
PlasmaBurn()
|
|
|
|
/obj/structure/statue/gold
|
|
max_integrity = 300
|
|
material_drop_type = /obj/item/stack/sheet/mineral/gold
|
|
desc = "This is a highly valuable statue made from gold."
|
|
|
|
/obj/structure/statue/gold/hos
|
|
name = "statue of the head of security"
|
|
icon_state = "hos"
|
|
|
|
/obj/structure/statue/gold/hop
|
|
name = "statue of the head of personnel"
|
|
icon_state = "hop"
|
|
|
|
/obj/structure/statue/gold/cmo
|
|
name = "statue of the chief medical officer"
|
|
icon_state = "cmo"
|
|
|
|
/obj/structure/statue/gold/ce
|
|
name = "statue of the chief engineer"
|
|
icon_state = "ce"
|
|
|
|
/obj/structure/statue/gold/rd
|
|
name = "statue of the research director"
|
|
icon_state = "rd"
|
|
|
|
/obj/structure/statue/silver
|
|
max_integrity = 300
|
|
material_drop_type = /obj/item/stack/sheet/mineral/silver
|
|
desc = "This is a valuable statue made from silver."
|
|
|
|
/obj/structure/statue/silver/md
|
|
name = "statue of a medical doctor"
|
|
icon_state = "md"
|
|
|
|
/obj/structure/statue/silver/janitor
|
|
name = "statue of a janitor"
|
|
icon_state = "jani"
|
|
|
|
/obj/structure/statue/silver/sec
|
|
name = "statue of a security officer"
|
|
icon_state = "sec"
|
|
|
|
/obj/structure/statue/silver/secborg
|
|
name = "statue of a security cyborg"
|
|
icon_state = "secborg"
|
|
|
|
/obj/structure/statue/silver/medborg
|
|
name = "statue of a medical cyborg"
|
|
icon_state = "medborg"
|
|
|
|
/obj/structure/statue/diamond
|
|
max_integrity = 1000
|
|
material_drop_type = /obj/item/stack/sheet/mineral/diamond
|
|
desc = "This is a very expensive diamond statue."
|
|
|
|
/obj/structure/statue/diamond/captain
|
|
name = "statue of THE captain"
|
|
icon_state = "cap"
|
|
|
|
/obj/structure/statue/diamond/ai1
|
|
name = "statue of the AI hologram"
|
|
icon_state = "ai1"
|
|
|
|
/obj/structure/statue/diamond/ai2
|
|
name = "statue of the AI core"
|
|
icon_state = "ai2"
|
|
|
|
/obj/structure/statue/bananium
|
|
max_integrity = 300
|
|
material_drop_type = /obj/item/stack/sheet/mineral/bananium
|
|
desc = "A bananium statue with a small engraving:'HOOOOOOONK'."
|
|
var/spam_flag = 0
|
|
|
|
/obj/structure/statue/bananium/clown
|
|
name = "statue of a clown"
|
|
icon_state = "clown"
|
|
|
|
/obj/structure/statue/bananium/Bumped(atom/user)
|
|
honk()
|
|
..()
|
|
|
|
/obj/structure/statue/bananium/attackby(obj/item/W, mob/user, params)
|
|
honk()
|
|
return ..()
|
|
|
|
/obj/structure/statue/bananium/attack_hand(mob/user)
|
|
honk()
|
|
..()
|
|
|
|
/obj/structure/statue/bananium/proc/honk()
|
|
if(!spam_flag)
|
|
spam_flag = 1
|
|
playsound(loc, 'sound/items/bikehorn.ogg', 50, 1)
|
|
spawn(20)
|
|
spam_flag = 0
|
|
|
|
/obj/structure/statue/sandstone
|
|
max_integrity = 50
|
|
material_drop_type = /obj/item/stack/sheet/mineral/sandstone
|
|
|
|
/obj/structure/statue/sandstone/assistant
|
|
name = "statue of an assistant"
|
|
desc = "A cheap statue of sandstone for a greyshirt."
|
|
icon_state = "assist"
|
|
|
|
/obj/structure/statue/sandstone/venus //call me when we add marble i guess
|
|
name = "statue of a pure maiden"
|
|
desc = "An ancient marble statue. The subject is depicted with a floor-length braid and is wielding a toolbox. By Jove, it's easily the most gorgeous depiction of a woman you've ever seen. The artist must truly be a master of his craft. Shame about the broken arm, though."
|
|
icon = 'icons/obj/statuelarge.dmi'
|
|
icon_state = "venus"
|
|
|
|
/obj/structure/statue/tranquillite
|
|
max_integrity = 300
|
|
material_drop_type = /obj/item/stack/sheet/mineral/tranquillite
|
|
desc = "..."
|
|
|
|
/obj/structure/statue/tranquillite/mime
|
|
name = "statue of a mime"
|
|
icon_state = "mime"
|
|
|
|
/obj/structure/statue/tranquillite/mime/AltClick(mob/user)//has 4 dirs
|
|
if(user.incapacitated())
|
|
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
|
|
return
|
|
if(!Adjacent(user))
|
|
return
|
|
if(anchored)
|
|
to_chat(user, "It is fastened to the floor!")
|
|
return
|
|
setDir(turn(dir, 90))
|
|
|
|
/obj/structure/statue/kidanstatue
|
|
name = "Obsidian Kidan warrior statue"
|
|
desc = "A beautifully carved and menacing statue of a Kidan warrior made out of obsidian. It looks very heavy."
|
|
icon_state = "kidan"
|
|
anchored = TRUE
|
|
oreAmount = 0
|
|
|
|
/obj/structure/statue/chickenstatue
|
|
name = "Bronze Chickenman Statue"
|
|
desc = "An antique and oriental-looking statue of a Chickenman made of bronze."
|
|
icon_state = "chicken"
|
|
anchored = TRUE
|
|
oreAmount = 0
|
|
|
|
/obj/structure/statue/russian_mulebot
|
|
desc = "Like a MULEbot, but more Russian and less functional.";
|
|
icon = 'icons/obj/aibots.dmi';
|
|
icon_state = "mulebot0";
|
|
name = "OXENbot"
|
|
anchored = TRUE
|
|
oreAmount = 10
|
|
|
|
////////////////////////////////
|
|
|
|
/obj/structure/snowman
|
|
name = "snowman"
|
|
desc = "Seems someone made a snowman here."
|
|
icon = 'icons/obj/stationobjs.dmi'
|
|
icon_state = "snowman"
|
|
anchored = TRUE
|
|
density = TRUE
|
|
max_integrity = 50
|
|
|
|
/obj/structure/snowman/built
|
|
desc = "Just like the ones you remember from childhood!"
|
|
|
|
/obj/structure/snowman/built/Destroy()
|
|
new /obj/item/reagent_containers/food/snacks/grown/carrot(drop_location())
|
|
new /obj/item/grown/log(drop_location())
|
|
new /obj/item/grown/log(drop_location())
|
|
return ..()
|
|
|
|
/obj/structure/snowman/built/attackby(obj/item/I, mob/user)
|
|
if(istype(I, /obj/item/snowball) && obj_integrity < max_integrity)
|
|
to_chat(user, "<span class='notice'>You patch some of the damage on [src] with [I].</span>")
|
|
obj_integrity = max_integrity
|
|
qdel(I)
|
|
else
|
|
return ..()
|
|
|
|
/obj/structure/snowman/built/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
|
|
..()
|
|
qdel(src)
|
|
|