mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-15 17:13:46 +01:00
Ports Holoprojectors
This commit is contained in:
@@ -30,8 +30,8 @@
|
||||
new /obj/item/clothing/suit/storage/hazardvest(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/multitool(src)
|
||||
new /obj/item/holosign_creator/engineering(src)
|
||||
new /obj/item/flash(src)
|
||||
new /obj/item/taperoll/engineering(src)
|
||||
new /obj/item/clothing/head/beret/eng(src)
|
||||
new /obj/item/door_remote/chief_engineer(src)
|
||||
new /obj/item/rpd(src)
|
||||
@@ -102,6 +102,7 @@
|
||||
new /obj/item/storage/backpack/satchel_eng(src)
|
||||
new /obj/item/storage/backpack/duffel/engineering(src)
|
||||
new /obj/item/storage/toolbox/mechanical(src)
|
||||
new /obj/item/holosign_creator/engineering(src)
|
||||
new /obj/item/radio/headset/headset_eng(src)
|
||||
new /obj/item/clothing/under/rank/engineer(src)
|
||||
new /obj/item/clothing/under/rank/engineer/skirt(src)
|
||||
@@ -109,7 +110,6 @@
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/clothing/glasses/meson(src)
|
||||
new /obj/item/cartridge/engineering(src)
|
||||
new /obj/item/taperoll/engineering(src)
|
||||
new /obj/item/clothing/head/beret/eng(src)
|
||||
|
||||
|
||||
@@ -128,7 +128,6 @@
|
||||
new /obj/item/radio/headset/headset_eng(src)
|
||||
new /obj/item/cartridge/atmos(src)
|
||||
new /obj/item/storage/toolbox/mechanical(src)
|
||||
new /obj/item/taperoll/engineering(src)
|
||||
if(prob(50))
|
||||
new /obj/item/storage/backpack/industrial(src)
|
||||
else
|
||||
@@ -138,6 +137,7 @@
|
||||
new /obj/item/clothing/suit/storage/hazardvest(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/tank/emergency_oxygen/engi(src)
|
||||
new /obj/item/holosign_creator/atmos(src)
|
||||
new /obj/item/watertank/atmos(src)
|
||||
new /obj/item/clothing/suit/fire/atmos(src)
|
||||
new /obj/item/clothing/head/hardhat/atmos(src)
|
||||
|
||||
@@ -115,11 +115,11 @@
|
||||
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
|
||||
new /obj/item/storage/lockbox/mindshield(src)
|
||||
new /obj/item/storage/box/flashbangs(src)
|
||||
new /obj/item/holosign_creator/security(src)
|
||||
new /obj/item/clothing/mask/gas/sechailer/hos(src)
|
||||
new /obj/item/shield/riot/tele(src)
|
||||
new /obj/item/melee/baton/loaded(src)
|
||||
new /obj/item/storage/belt/security/sec(src)
|
||||
new /obj/item/taperoll/police(src)
|
||||
new /obj/item/gun/energy/gun/hos(src)
|
||||
new /obj/item/door_remote/head_of_security(src)
|
||||
new /obj/item/reagent_containers/food/drinks/mug/hos(src)
|
||||
@@ -151,8 +151,8 @@
|
||||
new /obj/item/clothing/under/rank/warden/corp(src)
|
||||
new /obj/item/clothing/under/rank/warden/skirt(src)
|
||||
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
|
||||
new /obj/item/holosign_creator/security(src)
|
||||
new /obj/item/clothing/mask/gas/sechailer/warden(src)
|
||||
new /obj/item/taperoll/police(src)
|
||||
new /obj/item/storage/box/zipties(src)
|
||||
new /obj/item/storage/box/flashbangs(src)
|
||||
new /obj/item/reagent_containers/spray/pepper(src)
|
||||
@@ -190,7 +190,6 @@
|
||||
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
|
||||
new /obj/item/clothing/head/helmet(src)
|
||||
new /obj/item/melee/baton/loaded(src)
|
||||
new /obj/item/taperoll/police(src)
|
||||
|
||||
|
||||
/obj/structure/closet/secure_closet/brigdoc
|
||||
@@ -344,10 +343,10 @@
|
||||
new /obj/item/ammo_box/c38(src)
|
||||
new /obj/item/ammo_box/c38(src)
|
||||
new /obj/item/gun/projectile/revolver/detective(src)
|
||||
new /obj/item/taperoll/police(src)
|
||||
new /obj/item/clothing/accessory/holster/armpit(src)
|
||||
new /obj/item/clothing/glasses/sunglasses/yeah(src)
|
||||
new /obj/item/flashlight/seclite(src)
|
||||
new /obj/item/holosign_creator/security(src)
|
||||
new /obj/item/clothing/accessory/black(src)
|
||||
new /obj/item/taperecorder(src)
|
||||
new /obj/item/storage/box/tapes(src)
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
var/obj/item/storage/toolbox/mechanical/mybluetoolbox = null
|
||||
var/obj/item/storage/toolbox/electrical/myyellowtoolbox = null
|
||||
var/obj/item/storage/toolbox/emergency/myredtoolbox = null
|
||||
var/obj/item/taperoll/engineering/myengitape = null
|
||||
|
||||
/obj/structure/engineeringcart/Destroy()
|
||||
QDEL_NULL(myglass)
|
||||
@@ -22,7 +21,6 @@
|
||||
QDEL_NULL(mybluetoolbox)
|
||||
QDEL_NULL(myyellowtoolbox)
|
||||
QDEL_NULL(myredtoolbox)
|
||||
QDEL_NULL(myengitape)
|
||||
return ..()
|
||||
|
||||
/obj/structure/engineeringcart/proc/put_in_cart(obj/item/I, mob/user)
|
||||
@@ -83,13 +81,6 @@
|
||||
update_icon()
|
||||
else
|
||||
to_chat(user, fail_msg)
|
||||
else if(istype(I, /obj/item/taperoll/engineering/))
|
||||
if(!myengitape)
|
||||
put_in_cart(I, user)
|
||||
myengitape=I
|
||||
update_icon()
|
||||
else
|
||||
to_chat(user, fail_msg)
|
||||
else if(istype(I, /obj/item/wrench))
|
||||
if(!anchored && !isinspace())
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
@@ -125,8 +116,6 @@
|
||||
dat += "<a href='?src=[UID()];redtoolbox=1'>[myredtoolbox.name]</a><br>"
|
||||
if(myyellowtoolbox)
|
||||
dat += "<a href='?src=[UID()];yellowtoolbox=1'>[myyellowtoolbox.name]</a><br>"
|
||||
if(myengitape)
|
||||
dat += "<a href='?src=[UID()];engitape=1'>[myengitape.name]</a><br>"
|
||||
var/datum/browser/popup = new(user, "engicart", name, 240, 160)
|
||||
popup.set_content(dat)
|
||||
popup.open()
|
||||
@@ -171,16 +160,12 @@
|
||||
user.put_in_hands(myyellowtoolbox)
|
||||
to_chat(user, "<span class='notice'>You take [myyellowtoolbox] from [src].</span>")
|
||||
myyellowtoolbox = null
|
||||
if(href_list["engitape"])
|
||||
if(myengitape)
|
||||
user.put_in_hands(myengitape)
|
||||
to_chat(user, "<span class='notice'>You take [myengitape] from [src].</span>")
|
||||
myengitape = null
|
||||
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/structure/engineeringcart/update_icon()
|
||||
overlays = null
|
||||
overlays.Cut()
|
||||
if(myglass)
|
||||
overlays += "cart_glass"
|
||||
if(mymetal)
|
||||
@@ -194,6 +179,4 @@
|
||||
if(myredtoolbox)
|
||||
overlays += "cart_redtoolbox"
|
||||
if(myyellowtoolbox)
|
||||
overlays += "cart_yellowtoolbox"
|
||||
if(myengitape)
|
||||
overlays += "cart_engitape"
|
||||
overlays += "cart_yellowtoolbox"
|
||||
@@ -0,0 +1,135 @@
|
||||
|
||||
//holographic signs and barriers
|
||||
|
||||
/obj/structure/holosign
|
||||
name = "holo sign"
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
anchored = TRUE
|
||||
max_integrity = 1
|
||||
armor = list("melee" = 0, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 0, "bio" = 0, "rad" = 0)
|
||||
var/obj/item/holosign_creator/projector
|
||||
|
||||
/obj/structure/holosign/New(loc, source_projector)
|
||||
if(source_projector)
|
||||
projector = source_projector
|
||||
projector.signs += src
|
||||
..()
|
||||
|
||||
/obj/structure/holosign/Destroy()
|
||||
if(projector)
|
||||
projector.signs -= src
|
||||
projector = null
|
||||
return ..()
|
||||
|
||||
/obj/structure/holosign/attack_hand(mob/living/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
user.do_attack_animation(src)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
take_damage(5 , BRUTE, "melee", 1)
|
||||
|
||||
/obj/structure/holosign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
|
||||
switch(damage_type)
|
||||
if(BRUTE)
|
||||
playsound(loc, 'sound/weapons/egloves.ogg', 80, 1)
|
||||
if(BURN)
|
||||
playsound(loc, 'sound/weapons/egloves.ogg', 80, 1)
|
||||
|
||||
/obj/structure/holosign/wetsign
|
||||
name = "wet floor sign"
|
||||
desc = "The words flicker as if they mean nothing."
|
||||
icon_state = "holosign"
|
||||
|
||||
/obj/structure/holosign/barrier
|
||||
name = "holo barrier"
|
||||
desc = "A short holographic barrier which can only be passed by walking."
|
||||
icon_state = "holosign_sec"
|
||||
pass_flags = LETPASSTHROW
|
||||
density = TRUE
|
||||
max_integrity = 20
|
||||
var/allow_walk = TRUE //can we pass through it on walk intent
|
||||
|
||||
/obj/structure/holosign/barrier/CanPass(atom/movable/mover, turf/target)
|
||||
if(!density)
|
||||
return TRUE
|
||||
if(mover.pass_flags & (PASSGLASS|PASSTABLE|PASSGRILLE))
|
||||
return TRUE
|
||||
if(iscarbon(mover))
|
||||
var/mob/living/carbon/C = mover
|
||||
if(allow_walk && C.m_intent == MOVE_INTENT_WALK)
|
||||
return TRUE
|
||||
|
||||
/obj/structure/holosign/barrier/engineering
|
||||
icon_state = "holosign_engi"
|
||||
|
||||
/obj/structure/holosign/barrier/atmos
|
||||
name = "holo firelock"
|
||||
desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects from passing through, gas is kept out."
|
||||
icon_state = "holo_firelock"
|
||||
density = FALSE
|
||||
layer = ABOVE_MOB_LAYER
|
||||
anchored = TRUE
|
||||
layer = ABOVE_MOB_LAYER
|
||||
alpha = 150
|
||||
|
||||
/obj/structure/holosign/barrier/atmos/New()
|
||||
..()
|
||||
air_update_turf(TRUE)
|
||||
|
||||
/obj/structure/holosign/barrier/atmos/CanAtmosPass(turf/T)
|
||||
return FALSE
|
||||
|
||||
/obj/structure/holosign/barrier/atmos/Destroy()
|
||||
var/turf/T = get_turf(src)
|
||||
T.air_update_turf(TRUE)
|
||||
return ..()
|
||||
|
||||
/obj/structure/holosign/barrier/cyborg
|
||||
name = "Energy Field"
|
||||
desc = "A fragile energy field that blocks movement. Excels at blocking lethal projectiles."
|
||||
density = TRUE
|
||||
max_integrity = 10
|
||||
allow_walk = FALSE
|
||||
|
||||
/obj/structure/holosign/barrier/cyborg/bullet_act(obj/item/projectile/P)
|
||||
take_damage((P.damage / 5) , BRUTE, "melee", 1) //Doesn't really matter what damage flag it is.
|
||||
if(istype(P, /obj/item/projectile/energy/electrode))
|
||||
take_damage(10, BRUTE, "melee", 1) //Tasers aren't harmful.
|
||||
if(istype(P, /obj/item/projectile/beam/disabler))
|
||||
take_damage(5, BRUTE, "melee", 1) //Disablers aren't harmful.
|
||||
|
||||
/obj/structure/holosign/barrier/cyborg/hacked
|
||||
name = "Charged Energy Field"
|
||||
desc = "A powerful energy field that blocks movement. Energy arcs off it."
|
||||
max_integrity = 20
|
||||
var/shockcd = 0
|
||||
|
||||
/obj/structure/holosign/barrier/cyborg/hacked/bullet_act(obj/item/projectile/P)
|
||||
take_damage(P.damage, BRUTE, "melee", 1) //Yeah no this doesn't get projectile resistance.
|
||||
|
||||
/obj/structure/holosign/barrier/cyborg/hacked/proc/cooldown()
|
||||
shockcd = FALSE
|
||||
|
||||
/obj/structure/holosign/barrier/cyborg/hacked/attack_hand(mob/living/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
if(!shockcd)
|
||||
if(ismob(user))
|
||||
var/mob/living/M = user
|
||||
M.electrocute_act(15,"Energy Barrier", safety=1)
|
||||
shockcd = TRUE
|
||||
addtimer(CALLBACK(src, .proc/cooldown), 5)
|
||||
|
||||
/obj/structure/holosign/barrier/cyborg/hacked/Bumped(atom/movable/AM)
|
||||
if(shockcd)
|
||||
return
|
||||
|
||||
if(!isliving(AM))
|
||||
return
|
||||
|
||||
var/mob/living/M = AM
|
||||
M.electrocute_act(15, "Energy Barrier", safety = 1)
|
||||
shockcd = TRUE
|
||||
addtimer(CALLBACK(src, .proc/cooldown), 5)
|
||||
Reference in New Issue
Block a user