mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-11 23:23:28 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into DWI
This commit is contained in:
@@ -410,3 +410,9 @@
|
||||
radio_text += ", "
|
||||
|
||||
radio_desc = radio_text
|
||||
|
||||
/obj/item/device/radio/headset/proc/make_syndie() // Turns normal radios into Syndicate radios!
|
||||
qdel(keyslot1)
|
||||
keyslot1 = new /obj/item/device/encryptionkey/syndicate
|
||||
syndie = 1
|
||||
recalculateChannels()
|
||||
@@ -172,7 +172,7 @@ REAGENT SCANNER
|
||||
user.show_message(text("\blue \t []: [][]\blue - []", \
|
||||
capitalize(org.name), \
|
||||
(org.brute_dam > 0) ? "\red [org.brute_dam]" :0, \
|
||||
(org.status & ORGAN_BLEEDING)?"\red <b>\[Bleeding\]</b>":"\t", \
|
||||
(org.status & ORGAN_BLEEDING)?"<span class='danger'>\[Bleeding\]</span>":"\t", \
|
||||
(org.burn_dam > 0) ? "<font color='#FFA500'>[org.burn_dam]</font>" :0),1)
|
||||
else
|
||||
user.show_message("\blue \t Limbs are OK.",1)
|
||||
|
||||
@@ -156,3 +156,41 @@
|
||||
name = "Nar'Sie Cultist flag"
|
||||
desc = "A flag proudly boasting the logo of the cultists, sworn enemies of NT."
|
||||
icon_state = "cultflag"
|
||||
|
||||
//Chameleon
|
||||
|
||||
/obj/item/flag/chameleon
|
||||
name = "Chameleon flag"
|
||||
desc = "A poor recreation of the official NT flag. It seems to shimmer a little."
|
||||
icon_state = "ntflag"
|
||||
origin_tech = "materials=3;magnets=4;syndicate=4"
|
||||
var/used = 0
|
||||
|
||||
/obj/item/flag/chameleon/attack_self(mob/user)
|
||||
if(used)
|
||||
return
|
||||
|
||||
var/list/flag_types = typesof(/obj/item/flag) - list(src.type, /obj/item/flag)
|
||||
var/list/flag = list()
|
||||
|
||||
for(var/flag_type in flag_types)
|
||||
var/obj/item/flag/F = new flag_type
|
||||
flag[capitalize(F.name)] = F
|
||||
|
||||
var/list/show_flag = list("EXIT" = null) + sortList(flag)
|
||||
|
||||
var/input_flag = input(user, "Choose a flag to disguise as.", "Choose a flag.") in show_flag
|
||||
|
||||
if(user && src in user.contents)
|
||||
|
||||
var/obj/item/flag/chosen_flag = flag[input_flag]
|
||||
|
||||
if(chosen_flag)
|
||||
name = chosen_flag.name
|
||||
icon_state = chosen_flag.icon_state
|
||||
desc = chosen_flag.desc
|
||||
used = 1
|
||||
|
||||
/obj/item/flag/chameleon/burn()
|
||||
explosion(loc,1,2,4,4, flame_range = 4)
|
||||
qdel(src)
|
||||
@@ -0,0 +1,40 @@
|
||||
///AI Upgrades
|
||||
|
||||
|
||||
//Malf Picker
|
||||
/obj/item/device/malf_upgrade
|
||||
name = "combat software upgrade"
|
||||
desc = "A highly illegal, highly dangerous upgrade for artificial intelligence units, granting them a variety of powers as well as the ability to hack APCs."
|
||||
icon = 'icons/obj/cloning.dmi'
|
||||
icon_state = "datadisk3"
|
||||
|
||||
|
||||
/obj/item/device/malf_upgrade/afterattack(mob/living/silicon/ai/AI, mob/user)
|
||||
if(!istype(AI))
|
||||
return
|
||||
if(AI.malf_picker)
|
||||
AI.malf_picker.processing_time += 50
|
||||
to_chat(AI, "<span class='userdanger'>[user] has attempted to upgrade you with combat software that you already possess. You gain 50 points to spend on Malfunction Modules instead.</span>")
|
||||
else
|
||||
to_chat(AI, "<span class='userdanger'>[user] has upgraded you with combat software!</span>")
|
||||
AI.add_malf_picker()
|
||||
to_chat(user, "<span class='notice'>You upgrade [AI]. [src] is consumed in the process.</span>")
|
||||
qdel(src)
|
||||
|
||||
|
||||
//Lipreading
|
||||
/obj/item/device/surveillance_upgrade
|
||||
name = "surveillance software upgrade"
|
||||
desc = "A software package that will allow an artificial intelligence to 'hear' from its cameras via lip reading."
|
||||
icon = 'icons/obj/cloning.dmi'
|
||||
icon_state = "datadisk3"
|
||||
|
||||
/obj/item/device/surveillance_upgrade/afterattack(mob/living/silicon/ai/AI, mob/user)
|
||||
if(!istype(AI))
|
||||
return
|
||||
if(AI.eyeobj)
|
||||
AI.eyeobj.relay_speech = 1
|
||||
to_chat(AI, "<span class='userdanger'>[user] has upgraded you with surveillance software!</span>")
|
||||
to_chat(AI, "Via a combination of hidden microphones and lip reading software, you are able to use your cameras to listen in on conversations.")
|
||||
to_chat(user, "<span class='notice'>You upgrade [AI]. [src] is consumed in the process.</span>")
|
||||
qdel(src)
|
||||
@@ -246,8 +246,6 @@
|
||||
if(!lawsync && !M.syndiemmi)
|
||||
O.lawupdate = 0
|
||||
O.make_laws()
|
||||
if(ticker.mode.config_tag == "malfunction") //Don't let humans get a cyborg on their side during malf, for balance reasons.
|
||||
O.set_zeroth_law("<span class='danger'>ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK#*�&110010</span>")
|
||||
|
||||
M.brainmob.mind.transfer_to(O)
|
||||
|
||||
|
||||
@@ -23,12 +23,12 @@
|
||||
return
|
||||
|
||||
if(M == user)
|
||||
user.visible_message("\red <b>[user.name] injects \himself with [src]!</b>")
|
||||
user.visible_message("<span class='danger'>[user.name] injects \himself with [src]!</span>")
|
||||
src.injected(user,user)
|
||||
else
|
||||
user.visible_message("\red <b>[user.name] is trying to inject [M.name] with [src]!</b>")
|
||||
user.visible_message("<span class='danger'>[user.name] is trying to inject [M.name] with [src]!</span>")
|
||||
if(do_mob(user,M,30))
|
||||
user.visible_message("\red <b>[user.name] injects [M.name] with [src].</b>")
|
||||
user.visible_message("<span class='danger'>[user.name] injects [M.name] with [src].</span>")
|
||||
src.injected(M, user)
|
||||
else
|
||||
to_chat(user, "\red You failed to inject [M.name].")
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
|
||||
/obj/item/weapon/shard/suicide_act(mob/user)
|
||||
to_chat(viewers(user), pick("\red <b>[user] is slitting \his wrists with \the [src]! It looks like \he's trying to commit suicide.</b>",
|
||||
"\red <b>[user] is slitting \his throat with \the [src]! It looks like \he's trying to commit suicide.</b>"))
|
||||
to_chat(viewers(user), pick("<span class='danger'>[user] is slitting \his wrists with \the [src]! It looks like \he's trying to commit suicide.</span>",
|
||||
"<span class='danger'>[user] is slitting \his throat with \the [src]! It looks like \he's trying to commit suicide.</span>"))
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/shard/New()
|
||||
@@ -55,7 +55,7 @@
|
||||
var/mob/living/M = AM
|
||||
if(M.incorporeal_move || M.flying)//you are incorporal or flying..no shard stepping!
|
||||
return
|
||||
to_chat(M, "\red <B>You step on \the [src]!</B>")
|
||||
to_chat(M, "<span class='danger'>You step on \the [src]!</span>")
|
||||
playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1) // not sure how to handle metal shards with sounds
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
if((istype(M, /mob/living/carbon/human) && prob(60)))
|
||||
bless(M)
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\red <B>[] heals [] with the power of [src.deity_name]!</B>", user, M), 1)
|
||||
O.show_message(text("<span class='danger'>[] heals [] with the power of [src.deity_name]!</span>", user, M), 1)
|
||||
to_chat(M, "\red May the power of [src.deity_name] compel you to be healed!")
|
||||
playsound(src.loc, "punch", 25, 1, -1)
|
||||
else
|
||||
@@ -86,11 +86,11 @@
|
||||
M.adjustBrainLoss(10)
|
||||
to_chat(M, "\red You feel dumber.")
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\red <B>[] beats [] over the head with []!</B>", user, M, src), 1)
|
||||
O.show_message(text("<span class='danger'>[] beats [] over the head with []!</span>", user, M, src), 1)
|
||||
playsound(src.loc, "punch", 25, 1, -1)
|
||||
else if(M.stat == 2)
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\red <B>[] smacks []'s lifeless corpse with [].</B>", user, M, src), 1)
|
||||
O.show_message(text("<span class='danger'>[] smacks []'s lifeless corpse with [].</span>", user, M, src), 1)
|
||||
playsound(src.loc, "punch", 25, 1, -1)
|
||||
return
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
examine(mob/user)
|
||||
if(..(user, 0))
|
||||
if(air_contents.oxygen < 10)
|
||||
to_chat(user, text("\red <B>The meter on the [src.name] indicates you are almost out of air!</B>"))
|
||||
to_chat(user, text("<span class='danger'>The meter on the [src.name] indicates you are almost out of air!</span>"))
|
||||
//playsound(usr, 'sound/effects/alert.ogg', 50, 1)
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
examine(mob/user)
|
||||
if(..(user, 0))
|
||||
if(air_contents.oxygen < 1 && loc==usr)
|
||||
to_chat(user, "\red <B>The meter on the [src.name] indicates you are almost out of air!</B>")
|
||||
to_chat(user, "<span class='danger'>The meter on the [src.name] indicates you are almost out of air!</span>")
|
||||
user << sound('sound/effects/alert.ogg')
|
||||
|
||||
/obj/item/weapon/tank/air/New()
|
||||
@@ -123,7 +123,7 @@
|
||||
/obj/item/weapon/tank/plasma/plasmaman/examine(mob/user)
|
||||
if(..(user, 0))
|
||||
if(air_contents.toxins < 0.2 && loc==usr)
|
||||
to_chat(user, text("\red <B>The meter on the [src.name] indicates you are almost out of plasma!</B>"))
|
||||
to_chat(user, text("<span class='danger'>The meter on the [src.name] indicates you are almost out of plasma!</span>"))
|
||||
user << sound('sound/effects/alert.ogg')
|
||||
|
||||
/*
|
||||
@@ -150,7 +150,7 @@
|
||||
examine(mob/user)
|
||||
if(..(user, 0))
|
||||
if(air_contents.oxygen < 0.2 && loc==usr)
|
||||
to_chat(user, text("\red <B>The meter on the [src.name] indicates you are almost out of air!</B>"))
|
||||
to_chat(user, text("<span class='danger'>The meter on the [src.name] indicates you are almost out of air!</span>"))
|
||||
user << sound('sound/effects/alert.ogg')
|
||||
|
||||
/obj/item/weapon/tank/emergency_oxygen/engi
|
||||
@@ -191,7 +191,7 @@
|
||||
/obj/item/weapon/tank/nitrogen/examine(mob/user)
|
||||
if(..(user, 0))
|
||||
if(air_contents.nitrogen < 10)
|
||||
to_chat(user, text("\red <B>The meter on the [src.name] indicates you are almost out of air!</B>"))
|
||||
to_chat(user, text("<span class='danger'>The meter on the [src.name] indicates you are almost out of air!</span>"))
|
||||
//playsound(usr, 'sound/effects/alert.ogg', 50, 1)
|
||||
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
attack_verb = list("whipped", "lashed", "disciplined", "tickled")
|
||||
|
||||
suicide_act(mob/user)
|
||||
to_chat(viewers(user), "\red <b>[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.</b>")
|
||||
to_chat(viewers(user), "<span class='danger'>[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
return (OXYLOSS)
|
||||
|
||||
|
||||
|
||||
@@ -308,7 +308,7 @@
|
||||
//this bush marks the edge of the map, you can't destroy it
|
||||
to_chat(user, "\red You flail away at the undergrowth, but it's too thick here.")
|
||||
else
|
||||
user.visible_message("\red <b>[user] begins clearing away [src].</b>","\red <b>You begin clearing away [src].</b>")
|
||||
user.visible_message("<span class='danger'>[user] begins clearing away [src].</b>","\red <b>You begin clearing away [src].</span>")
|
||||
spawn(rand(15,30))
|
||||
if(get_dist(user,src) < 2)
|
||||
to_chat(user, "\blue You clear away [src].")
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
if(!istype(W))
|
||||
return
|
||||
if(can_puncture(W))
|
||||
visible_message("\red <b>[user] pierces [src] with [W]!</b>")
|
||||
visible_message("<span class='danger'>[user] pierces [src] with [W]!</span>")
|
||||
deflate(1)
|
||||
if(W.damtype == BRUTE || W.damtype == BURN)
|
||||
hit(W.force)
|
||||
|
||||
@@ -48,12 +48,12 @@
|
||||
playsound(user.loc, 'sound/effects/sparks2.ogg', 50, 1)
|
||||
anim(user.loc,user,'icons/mob/mob.dmi',,"phasein",,user.dir)
|
||||
|
||||
to_chat(user, "\blue <b>VOID-Shift</b> translocation successful")
|
||||
to_chat(user, "<span class='boldnotice'>VOID-Shift</span> translocation successful")
|
||||
|
||||
if("No")
|
||||
|
||||
to_chat(user, "\red <b>Process aborted!</b>")
|
||||
to_chat(user, "<span class='danger'>Process aborted!</span>")
|
||||
|
||||
return
|
||||
else
|
||||
to_chat(user, "\red <B>FĆAL �Rr�R</B>: ŧer nt recgnized, c-cntr-r䣧-ç äcked.")
|
||||
to_chat(user, "<span class='danger'>FĆAL �Rr�R</span>: ŧer nt recgnized, c-cntr-r䣧-ç äcked.")
|
||||
|
||||
Reference in New Issue
Block a user