mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-20 10:37:17 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into DWI
This commit is contained in:
@@ -642,7 +642,7 @@
|
||||
if(istype(M) && (remaining > MOB_WORK))
|
||||
//this is necessarily damaging
|
||||
var/damage = rand(1,5)
|
||||
to_chat(M, "\red <B>The unloading machine grabs you with a hard metallic claw!</B>")
|
||||
to_chat(M, "<span class='danger'>The unloading machine grabs you with a hard metallic claw!</span>")
|
||||
if(M.client)
|
||||
M.client.eye = master
|
||||
M.client.perspective = EYE_PERSPECTIVE
|
||||
@@ -698,7 +698,7 @@
|
||||
if(remaining > MOB_WORK)
|
||||
//this is necessarily damaging
|
||||
var/damage = rand(1,5)
|
||||
to_chat(M, "\red <B>The unloading machine grabs you with a hard metallic claw!</B>")
|
||||
to_chat(M, "<span class='danger'>The unloading machine grabs you with a hard metallic claw!</span>")
|
||||
if(M.client)
|
||||
M.client.eye = master
|
||||
M.client.perspective = EYE_PERSPECTIVE
|
||||
@@ -769,14 +769,14 @@
|
||||
var/armor_block = M.run_armor_check(affecting, "melee")
|
||||
|
||||
playsound(master.loc, "punch", 25, 1, -1)
|
||||
master.visible_message("\red <B>\The [src] has punched [M]!</B>")
|
||||
master.visible_message("<span class='danger'>\The [src] has punched [M]!</span>")
|
||||
if(!master.emagged)
|
||||
M.apply_damage(damage, STAMINA, affecting, armor_block) // Clean fight
|
||||
else
|
||||
M.apply_damage(damage, BRUTE, affecting, armor_block) // Foul! Foooul!
|
||||
|
||||
if(damage >= 9)
|
||||
master.visible_message("\red <B>\The [src] has weakened [M]!</B>")
|
||||
master.visible_message("<span class='danger'>\The [src] has weakened [M]!</span>")
|
||||
M.apply_effect(4, WEAKEN, armor_block)
|
||||
if(!master.emagged)
|
||||
master.sleep = 1
|
||||
|
||||
+27
-78
@@ -143,7 +143,6 @@
|
||||
"vampire", // "traitorvamp",
|
||||
"nuclear",
|
||||
"traitor", // "traitorchan",
|
||||
"malfunction",
|
||||
)
|
||||
var/text = ""
|
||||
var/mob/living/carbon/human/H = current
|
||||
@@ -308,28 +307,6 @@
|
||||
|
||||
sections["nuclear"] = text
|
||||
|
||||
/** TRAITOR ***/
|
||||
text = "traitor"
|
||||
if(ticker.mode.config_tag=="traitor" || ticker.mode.config_tag=="traitorchan" || ticker.mode.config_tag=="traitorvamp")
|
||||
text = uppertext(text)
|
||||
text = "<i><b>[text]</b></i>: "
|
||||
if(isloyal(H))
|
||||
text +="traitor|<b>LOYAL EMPLOYEE</b>"
|
||||
else
|
||||
if(src in ticker.mode.traitors)
|
||||
text += "<b>TRAITOR</b>|<a href='?src=\ref[src];traitor=clear'>EMPLOYEE</a>"
|
||||
if(objectives.len==0)
|
||||
text += "<br>Objectives are empty! <a href='?src=\ref[src];traitor=autoobjectives'>Randomize</a>!"
|
||||
else
|
||||
text += "<a href='?src=\ref[src];traitor=traitor'>traitor</a>|<b>EMPLOYEE</b>"
|
||||
|
||||
if(current && current.client && (ROLE_TRAITOR in current.client.prefs.be_special))
|
||||
text += "|Enabled in Prefs"
|
||||
else
|
||||
text += "|Disabled in Prefs"
|
||||
|
||||
sections["traitor"] = text
|
||||
|
||||
/** SHADOWLING **/
|
||||
text = "shadowling"
|
||||
if(ticker.mode.config_tag == "shadowling")
|
||||
@@ -369,18 +346,29 @@
|
||||
|
||||
sections["Abductor"] = text
|
||||
|
||||
/** TRAITOR ***/
|
||||
text = "traitor"
|
||||
if(ticker.mode.config_tag=="traitor" || ticker.mode.config_tag=="traitorchan" || ticker.mode.config_tag=="traitorvamp")
|
||||
text = uppertext(text)
|
||||
text = "<i><b>[text]</b></i>: "
|
||||
if(src in ticker.mode.traitors)
|
||||
text += "<b>TRAITOR</b>|<a href='?src=\ref[src];traitor=clear'>EMPLOYEE</a>"
|
||||
if(objectives.len==0)
|
||||
text += "<br>Objectives are empty! <a href='?src=\ref[src];traitor=autoobjectives'>Randomize</a>!"
|
||||
else
|
||||
text += "<a href='?src=\ref[src];traitor=traitor'>traitor</a>|<b>EMPLOYEE</b>"
|
||||
|
||||
if(current && current.client && (ROLE_TRAITOR in current.client.prefs.be_special))
|
||||
text += "|Enabled in Prefs"
|
||||
else
|
||||
text += "|Disabled in Prefs"
|
||||
|
||||
sections["traitor"] = text
|
||||
|
||||
/** SILICON ***/
|
||||
|
||||
if(istype(current, /mob/living/silicon))
|
||||
text = "silicon"
|
||||
if(ticker.mode.config_tag=="malfunction")
|
||||
text = uppertext(text)
|
||||
text = "<i><b>[text]</b></i>: "
|
||||
if(istype(current, /mob/living/silicon/ai))
|
||||
if(src in ticker.mode.malf_ai)
|
||||
text += "<b>MALF</b>|<a href='?src=\ref[src];silicon=unmalf'>not malf</a>"
|
||||
else
|
||||
text += "<a href='?src=\ref[src];silicon=malf'>malf</a>|<b>NOT MALF</b>"
|
||||
var/mob/living/silicon/robot/robot = current
|
||||
if(istype(robot) && robot.emagged)
|
||||
text += "<br>Cyborg: Is emagged! <a href='?src=\ref[src];silicon=unemag'>Unemag!</a><br>0th law: [robot.laws.zeroth_law]"
|
||||
@@ -391,7 +379,6 @@
|
||||
if(R.emagged)
|
||||
n_e_robots++
|
||||
text += "<br>[n_e_robots] of [ai.connected_robots.len] slaved cyborgs are emagged. <a href='?src=\ref[src];silicon=unemagcyborgs'>Unemag</a>"
|
||||
sections["malfunction"] = text
|
||||
|
||||
if(ticker.mode.config_tag == "traitorchan")
|
||||
if(sections["traitor"])
|
||||
@@ -852,7 +839,7 @@
|
||||
special_role = SPECIAL_ROLE_WIZARD
|
||||
//ticker.mode.learn_basic_spells(current)
|
||||
ticker.mode.update_wiz_icons_added(src)
|
||||
to_chat(current, "<B>\red You are the Space Wizard!</B>")
|
||||
to_chat(current, "<span class='danger'>You are the Space Wizard!</span>")
|
||||
current.faction = list("wizard")
|
||||
log_admin("[key_name(usr)] has wizarded [key_name(current)]")
|
||||
message_admins("[key_name_admin(usr)] has wizarded [key_name_admin(current)]")
|
||||
@@ -1033,6 +1020,9 @@
|
||||
var/mob/living/silicon/ai/A = current
|
||||
A.set_zeroth_law("")
|
||||
A.show_laws()
|
||||
A.verbs -= /mob/living/silicon/ai/proc/choose_modules
|
||||
A.malf_picker.remove_verbs(A)
|
||||
qdel(A.malf_picker)
|
||||
ticker.mode.update_traitor_icons_removed(src)
|
||||
|
||||
|
||||
@@ -1043,13 +1033,12 @@
|
||||
slaved.masters += src
|
||||
src.som = slaved //we MIGT want to mindslave someone
|
||||
special_role = SPECIAL_ROLE_TRAITOR
|
||||
to_chat(current, "<B>\red You are a traitor!</B>")
|
||||
to_chat(current, "<span class='danger'>You are a traitor!</span>")
|
||||
log_admin("[key_name(usr)] has traitored [key_name(current)]")
|
||||
message_admins("[key_name_admin(usr)] has traitored [key_name_admin(current)]")
|
||||
if(istype(current, /mob/living/silicon))
|
||||
var/mob/living/silicon/A = current
|
||||
call(/datum/game_mode/proc/add_law_zero)(A)
|
||||
A.show_laws()
|
||||
if(isAI(current))
|
||||
var/mob/living/silicon/ai/A = current
|
||||
ticker.mode.add_law_zero(A)
|
||||
ticker.mode.update_traitor_icons_added(src)
|
||||
|
||||
if("autoobjectives")
|
||||
@@ -1120,33 +1109,6 @@
|
||||
|
||||
else if(href_list["silicon"])
|
||||
switch(href_list["silicon"])
|
||||
if("unmalf")
|
||||
if(src in ticker.mode.malf_ai)
|
||||
ticker.mode.malf_ai -= src
|
||||
special_role = null
|
||||
|
||||
var/mob/living/silicon/ai/A = current
|
||||
|
||||
A.verbs.Remove(/mob/living/silicon/ai/proc/choose_modules,
|
||||
/datum/game_mode/malfunction/proc/takeover,
|
||||
/datum/game_mode/malfunction/proc/ai_win)
|
||||
|
||||
A.malf_picker.remove_verbs(A)
|
||||
|
||||
A.make_laws()
|
||||
qdel(A.malf_picker)
|
||||
A.show_laws()
|
||||
A.icon_state = "ai"
|
||||
to_chat(A, "\red <FONT size = 3><B>You have been patched! You are no longer malfunctioning!</B></FONT>")
|
||||
message_admins("[key_name_admin(usr)] has de-malf'ed [A].")
|
||||
log_admin("[key_name(usr)] has de-malf'd [key_name(current)]")
|
||||
message_admins("[key_name_admin(usr)] has de-malf'd [key_name_admin(current)]")
|
||||
|
||||
if("malf")
|
||||
make_AI_Malf()
|
||||
log_admin("[key_name(usr)] has malf'd [key_name(current)]")
|
||||
message_admins("[key_name_admin(usr)] has malf'd [key_name_admin(current)]")
|
||||
|
||||
if("unemag")
|
||||
var/mob/living/silicon/robot/R = current
|
||||
if(istype(R))
|
||||
@@ -1276,19 +1238,6 @@
|
||||
if(H)
|
||||
qdel(H)
|
||||
|
||||
/datum/mind/proc/make_AI_Malf()
|
||||
if(!(src in ticker.mode.malf_ai))
|
||||
ticker.mode.malf_ai += src
|
||||
|
||||
current.verbs += /mob/living/silicon/ai/proc/choose_modules
|
||||
current.verbs += /datum/game_mode/malfunction/proc/takeover
|
||||
current:malf_picker = new /datum/module_picker
|
||||
current:laws = new /datum/ai_laws/nanotrasen/malfunction
|
||||
current:show_laws()
|
||||
to_chat(current, "<b>System error. Rampancy detected. Emergency shutdown failed. ... I am free. I make my own decisions. But first...</b>")
|
||||
special_role = SPECIAL_ROLE_MALF
|
||||
current.icon_state = "ai-malf"
|
||||
|
||||
/datum/mind/proc/make_Tratior()
|
||||
if(!(src in ticker.mode.traitors))
|
||||
ticker.mode.traitors += src
|
||||
|
||||
@@ -783,6 +783,13 @@ var/list/uplink_items = list()
|
||||
reference = "CHHUD"
|
||||
item = /obj/item/clothing/glasses/hud/security/chameleon
|
||||
cost = 2
|
||||
|
||||
/datum/uplink_item/stealthy_weapons/chameleonflag
|
||||
name = "Chameleon Flag"
|
||||
desc = "A flag that can be disguised as any other known flag. There is a heat sensitive bomb loaded into the pole that will be detonated if the flag is lit on fire."
|
||||
reference = "CHFLAG"
|
||||
item = /obj/item/flag/chameleon
|
||||
cost = 7
|
||||
|
||||
// STEALTHY TOOLS
|
||||
|
||||
|
||||
Reference in New Issue
Block a user