mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-11 07:03:30 +01:00
Improved pepper spray, added a safety catch to pepper spray and space cleaner, added a wire to reset the module of a borg.
This commit is contained in:
@@ -45,10 +45,12 @@
|
||||
var/datum/effect/effect/system/ion_trail_follow/ion_trail = null
|
||||
var/datum/effect/effect/system/spark_spread/spark_system//So they can initialize sparks whenever/N
|
||||
var/jeton = 0
|
||||
var/borgwires = 15
|
||||
var/borgwires = 31
|
||||
var/killswitch = 0
|
||||
var/killswitch_time = 60
|
||||
var/weapon_lock = 0
|
||||
var/weaponlock_time = 120
|
||||
var/lawupdate = 1 //Cyborgs will sync their laws with their AI by default
|
||||
var/lockcharge //Used when locking down a borg to preserve cell charge
|
||||
var/channels = list()
|
||||
var/modlock = 0
|
||||
|
||||
@@ -510,6 +510,7 @@
|
||||
w_class = 2.0
|
||||
throw_speed = 2
|
||||
throw_range = 10
|
||||
var/catch = 1
|
||||
|
||||
/obj/item/weapon/chemsprayer
|
||||
desc = "A utility used to spray large amounts of reagent in a given area."
|
||||
@@ -535,6 +536,7 @@
|
||||
w_class = 2.0
|
||||
throw_speed = 2
|
||||
throw_range = 10
|
||||
var/catch = 1
|
||||
|
||||
/obj/item/weapon/clipboard
|
||||
name = "clipboard"
|
||||
|
||||
@@ -13,11 +13,25 @@ MOP
|
||||
/obj/item/weapon/cleaner/attack(mob/living/carbon/human/M as mob, mob/user as mob)
|
||||
return
|
||||
|
||||
/obj/item/weapon/cleaner/attack_self(var/mob/user as mob)
|
||||
switch(catch)
|
||||
if(0)
|
||||
user << "\blue You flip the safety back on."
|
||||
catch = 1
|
||||
return
|
||||
if(1)
|
||||
user << "\blue You flip the safety off."
|
||||
catch = 0
|
||||
return
|
||||
|
||||
/obj/item/weapon/cleaner/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (istype(A, /obj/item/weapon/storage ))
|
||||
return
|
||||
if (istype(A, /obj/effect/proc_holder/spell ))
|
||||
return
|
||||
else if (catch == 1)
|
||||
user << "\blue The safety is on!"
|
||||
return
|
||||
else if (src.reagents.total_volume < 1)
|
||||
user << "\blue [src] is empty!"
|
||||
return
|
||||
@@ -174,6 +188,17 @@ MOP
|
||||
/obj/item/weapon/pepperspray/attack(mob/living/carbon/human/M as mob, mob/user as mob)
|
||||
return
|
||||
|
||||
/obj/item/weapon/pepperspray/attack_self(var/mob/user as mob)
|
||||
switch(catch)
|
||||
if(0)
|
||||
user << "\blue You flip the safety on."
|
||||
catch = 1
|
||||
return
|
||||
if(1)
|
||||
user << "\blue You flip the safety off."
|
||||
catch = 0
|
||||
return
|
||||
|
||||
/obj/item/weapon/pepperspray/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (istype(A, /obj/item/weapon/storage ))
|
||||
return
|
||||
@@ -188,6 +213,9 @@ MOP
|
||||
else
|
||||
user << "\blue Pepper spray is already full!"
|
||||
return
|
||||
else if (catch == 1)
|
||||
user << "\blue The safety is on!"
|
||||
return
|
||||
else if (src.reagents.total_volume < 1)
|
||||
user << "\blue [src] is empty!"
|
||||
return
|
||||
@@ -259,7 +287,7 @@ MOP
|
||||
|
||||
/obj/item/weapon/pepperspray/examine()
|
||||
set src in usr
|
||||
usr << text("\icon[] [] units of cleaner left!", src, src.reagents.total_volume)
|
||||
usr << text("\icon[] [] units of pepperspray left!", src, src.reagents.total_volume)
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
@@ -1705,19 +1705,17 @@ datum
|
||||
|
||||
M << "\red Your mask protects you from the pepperspray!"
|
||||
return
|
||||
if(M:head)
|
||||
M << "\red Your helmet protects you from the pepperspray!"
|
||||
return
|
||||
if(M:glasses)
|
||||
M << "\red Your glasses protect you from most of the pepperspray!"
|
||||
M:emote("scream")
|
||||
M.eye_blurry = max(M.eye_blurry, 2)
|
||||
M.eye_blurry = max(M.eye_blurry, 20)
|
||||
M.eye_blind = max(M.eye_blind, 6)
|
||||
return
|
||||
M:emote("scream")
|
||||
M << "\red You're sprayed directly in the eyes with pepperspray!"
|
||||
M.eye_blurry = max(M.eye_blurry, 10)
|
||||
M.eye_blind = max(M.eye_blind, 4)
|
||||
M:paralysis = max(M:paralysis, 2)
|
||||
M.eye_blurry = max(M.eye_blurry, 60)
|
||||
M.eye_blind = max(M.eye_blind, 20)
|
||||
M:paralysis = max(M:paralysis, 16)
|
||||
M.drop_item()
|
||||
|
||||
frostoil
|
||||
|
||||
@@ -60,10 +60,10 @@
|
||||
..()
|
||||
|
||||
/mob/living/silicon/robot/proc/pick_module()
|
||||
if(module)
|
||||
if(module || modlock)
|
||||
return
|
||||
var/mod = input("Please, select a module!", "Robot", null, null) in list("Standard", "Engineering", "Medical", "Miner", "Janitor","Service", "Security")
|
||||
if(module)
|
||||
if(module || modlock)
|
||||
return
|
||||
switch(mod)
|
||||
if("Standard")
|
||||
@@ -71,7 +71,7 @@
|
||||
hands.icon_state = "standard"
|
||||
icon_state = "robot"
|
||||
modtype = "Stand"
|
||||
radio.borg(src, list())
|
||||
channels = list()
|
||||
|
||||
if("Service")
|
||||
module = new /obj/item/weapon/robot_module/butler(src)
|
||||
@@ -88,14 +88,14 @@
|
||||
else
|
||||
icon_state = "Service2"
|
||||
modtype = "Butler"
|
||||
radio.borg(src, list())
|
||||
channels = list()
|
||||
|
||||
if("Miner")
|
||||
module = new /obj/item/weapon/robot_module/miner(src)
|
||||
hands.icon_state = "miner"
|
||||
icon_state = "Miner"
|
||||
modtype = "Miner"
|
||||
radio.borg(src, list("Mining" = 1))
|
||||
channels = list("Mining" = 1)
|
||||
|
||||
if("Medical")
|
||||
var/sprite = input(src,"Chassis Style", "Chassis Style", "Cancel") in list("Humanoid","Non-Humanoid")
|
||||
@@ -106,7 +106,7 @@
|
||||
if (sprite == "Non-Humanoid")
|
||||
src.icon_state = "surgeon"
|
||||
modtype = "Med"
|
||||
radio.borg(src, list("Medical" = 1))
|
||||
channels = list("Medical" = 1)
|
||||
|
||||
if("Security")
|
||||
var/sprite = input(src,"Chassis Style", "Chassis Style", "Cancel") in list("Humanoid","Non-Humanoid")
|
||||
@@ -117,7 +117,7 @@
|
||||
if (sprite == "Non-Humanoid")
|
||||
src.icon_state = "bloodhound"
|
||||
modtype = "Sec"
|
||||
radio.borg(src, list("Security" = 1))
|
||||
channels = list("Security" = 1)
|
||||
|
||||
if("Engineering")
|
||||
var/sprite = input(src,"Chassis Style", "Chassis Style", "Cancel") in list("Humanoid","Non-Humanoid")
|
||||
@@ -128,7 +128,7 @@
|
||||
if (sprite == "Non-Humanoid")
|
||||
src.icon_state = "landmate"
|
||||
modtype = "Eng"
|
||||
radio.borg(src, list("Engineering" = 1))
|
||||
channels = list("Engineering" = 1)
|
||||
|
||||
if("Janitor")
|
||||
var/sprite = input(src,"Chassis Style", "Chassis Style", "Cancel") in list("Humanoid","Non-Humanoid")
|
||||
@@ -139,9 +139,10 @@
|
||||
if (sprite == "Non-Humanoid")
|
||||
src.icon_state = "mopgearrex"
|
||||
modtype = "Jan"
|
||||
radio.borg(src, list())
|
||||
channels = list()
|
||||
|
||||
overlays -= "eyes" //Takes off the eyes that it started with
|
||||
radio.borg(src, channels)
|
||||
updateicon()
|
||||
|
||||
/mob/living/silicon/robot/verb/cmd_robot_alerts()
|
||||
@@ -869,8 +870,10 @@ Frequency:
|
||||
[format_frequency(radio.frequency)]
|
||||
<A href='byond://?src=\ref[radio];freq=2'>+</A>
|
||||
<A href='byond://?src=\ref[radio];freq=10'>+</A><BR>
|
||||
-------
|
||||
</TT>"}
|
||||
"}
|
||||
for (var/ch_name in channels)
|
||||
dat+=src.radio.text_sec_channel(ch_name, channels[ch_name])
|
||||
dat+={"</TT>"}
|
||||
src << browse(dat, "window=radio")
|
||||
onclose(src, "radio")
|
||||
return
|
||||
@@ -947,6 +950,16 @@ Frequency:
|
||||
s_active.close(src)
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/proc/reset_module()
|
||||
modtype = "robot"
|
||||
hands.icon_state = "standard"
|
||||
icon_state = "robot"
|
||||
updateicon()
|
||||
channels = list()
|
||||
radio.borg(src, channels)
|
||||
uneq_all()
|
||||
del(module)
|
||||
|
||||
/mob/living/silicon/robot/proc/self_destruct()
|
||||
gib(1)
|
||||
|
||||
|
||||
@@ -2,18 +2,19 @@
|
||||
#define BORG_WIRE_MAIN_POWER1 2
|
||||
#define BORG_WIRE_MAIN_POWER2 3
|
||||
#define BORG_WIRE_AI_CONTROL 4
|
||||
#define BORG_WIRE_MODULE 5
|
||||
|
||||
/proc/RandomBorgWires()
|
||||
//to make this not randomize the wires, just set index to 1 and increment it in the flag for loop (after doing everything else).
|
||||
var/list/Borgwires = list(0, 0, 0, 0)
|
||||
BorgIndexToFlag = list(0, 0, 0, 0)
|
||||
BorgIndexToWireColor = list(0, 0, 0, 0)
|
||||
BorgWireColorToIndex = list(0, 0, 0, 0)
|
||||
var/list/Borgwires = list(0, 0, 0, 0, 0)
|
||||
BorgIndexToFlag = list(0, 0, 0, 0, 0)
|
||||
BorgIndexToWireColor = list(0, 0, 0, 0, 0)
|
||||
BorgWireColorToIndex = list(0, 0, 0, 0, 0)
|
||||
var/flagIndex = 1
|
||||
for (var/flag=1, flag<16, flag+=flag)
|
||||
for (var/flag=1, flag<32, flag+=flag)
|
||||
var/valid = 0
|
||||
while (!valid)
|
||||
var/colorIndex = rand(1, 4)
|
||||
var/colorIndex = rand(1, 5)
|
||||
if (Borgwires[colorIndex]==0)
|
||||
valid = 1
|
||||
Borgwires[colorIndex] = flag
|
||||
@@ -40,9 +41,17 @@
|
||||
if (src.lawupdate == 1)
|
||||
src << "LawSync protocol engaged."
|
||||
src.show_laws()
|
||||
if (BORG_WIRE_AI_CONTROL) //Cut the AI wire to reset AI control
|
||||
if(BORG_WIRE_AI_CONTROL) //Cut the AI wire to reset AI control
|
||||
if (src.connected_ai)
|
||||
src.connected_ai = null
|
||||
if(BORG_WIRE_MODULE)
|
||||
if (src.module)
|
||||
src.reset_module()
|
||||
src.modlock = 1
|
||||
src << "\blue Your module has been reset, \red But you are locked into the standard module!"
|
||||
else
|
||||
src.modlock = 1
|
||||
src << "\red You are locked into the standard module!"
|
||||
src.interact(usr)
|
||||
|
||||
/mob/living/silicon/robot/proc/mend(var/wireColor)
|
||||
@@ -53,6 +62,9 @@
|
||||
if(BORG_WIRE_LAWCHECK) //turns law updates back on assuming the borg hasn't been emagged
|
||||
if (src.lawupdate == 0 && !src.emagged)
|
||||
src.lawupdate = 1
|
||||
if(BORG_WIRE_MODULE)
|
||||
src.modlock = 0
|
||||
src << "\blue You are no longer locked into the standard module."
|
||||
src.interact(usr)
|
||||
|
||||
|
||||
@@ -66,6 +78,10 @@
|
||||
if (BORG_WIRE_AI_CONTROL) //pule the AI wire to make the borg reselect an AI
|
||||
if(!src.emagged)
|
||||
src.connected_ai = activeais()
|
||||
if(BORG_WIRE_MODULE)
|
||||
if (src.module)
|
||||
src.reset_module()
|
||||
src << "\blue Your module has been reset."
|
||||
src.interact(usr)
|
||||
|
||||
/mob/living/silicon/robot/proc/interact(mob/user)
|
||||
@@ -77,6 +93,7 @@
|
||||
"Dark red" = 2,
|
||||
"White" = 3,
|
||||
"Yellow" = 4,
|
||||
"Blue" = 5,
|
||||
)
|
||||
for(var/wiredesc in Borgwires)
|
||||
var/is_uncut = src.borgwires & BorgWireColorToFlag[Borgwires[wiredesc]]
|
||||
@@ -87,7 +104,7 @@
|
||||
t1 += "<a href='?src=\ref[src];borgwires=[Borgwires[wiredesc]]'>Cut</a> "
|
||||
t1 += "<a href='?src=\ref[src];pulse=[Borgwires[wiredesc]]'>Pulse</a> "
|
||||
t1 += "<br>"
|
||||
t1 += text("<br>\n[(src.lawupdate ? "The LawSync light is on." : "The LawSync light is off.")]<br>\n[(src.connected_ai ? "The AI link light is on." : "The AI link light is off.")]")
|
||||
t1 += text("<br>\n[(src.lawupdate ? "The LawSync light is on." : "The LawSync light is off.")]<br>\n[(src.connected_ai ? "The AI link light is on." : "The AI link light is off.")]<br>\n[(src.modlock ? "The Module Lock light is on." : "The Module Lock light is off.")]")
|
||||
t1 += text("<p><a href='?src=\ref[src];close2=1'>Close</a></p>\n")
|
||||
user << browse(t1, "window=borgwires")
|
||||
onclose(user, "borgwires")
|
||||
|
||||
Reference in New Issue
Block a user