mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 21:19:00 +01:00
@@ -88,6 +88,7 @@
|
||||
var/area_uid
|
||||
var/area/alarm_area
|
||||
var/danger_level = 0
|
||||
var/buildstage = 2 //2 is built, 1 is building, 0 is frame.
|
||||
|
||||
var/target_temperature = T0C+20
|
||||
var/regulating_temperature = 0
|
||||
@@ -107,8 +108,26 @@
|
||||
TLV["temperature"] = list(20, 40, 140, 160) // K
|
||||
target_temperature = 90
|
||||
|
||||
New()
|
||||
New(var/loc, var/dir, var/building = 0)
|
||||
..()
|
||||
|
||||
if(building)
|
||||
if(loc)
|
||||
src.loc = loc
|
||||
|
||||
if(dir)
|
||||
src.dir = dir
|
||||
|
||||
buildstage = 0
|
||||
wiresexposed = 1
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24)
|
||||
pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0
|
||||
update_icon()
|
||||
return
|
||||
|
||||
first_run()
|
||||
|
||||
proc/first_run()
|
||||
alarm_area = get_area(src)
|
||||
if (alarm_area.master)
|
||||
alarm_area = alarm_area.master
|
||||
@@ -131,7 +150,7 @@
|
||||
|
||||
|
||||
process()
|
||||
if((stat & (NOPOWER|BROKEN)) || shorted)
|
||||
if((stat & (NOPOWER|BROKEN)) || shorted || buildstage != 2)
|
||||
return
|
||||
|
||||
var/turf/simulated/location = loc
|
||||
@@ -486,6 +505,14 @@
|
||||
var/wireFlag = AAlarmIndexToFlag[wireIndex]
|
||||
return ((AAlarmwires & wireFlag) == 0)
|
||||
|
||||
proc/allWiresCut()
|
||||
var/i = 1
|
||||
while(i<=5)
|
||||
if(AAlarmwires & AAlarmIndexToFlag[i])
|
||||
return 0
|
||||
i++
|
||||
return 1
|
||||
|
||||
proc/cut(var/wireColor)
|
||||
var/wireFlag = AAlarmWireColorToFlag[wireColor]
|
||||
var/wireIndex = AAlarmWireColorToIndex[wireColor]
|
||||
@@ -609,6 +636,9 @@
|
||||
interact(mob/user)
|
||||
user.set_machine(src)
|
||||
|
||||
if(buildstage!=2)
|
||||
return
|
||||
|
||||
if ( (get_dist(src, user) > 1 ))
|
||||
if (!istype(user, /mob/living/silicon))
|
||||
user.machine = null
|
||||
@@ -1064,28 +1094,74 @@ table tr:first-child th:first-child { border: none;}
|
||||
update_icon()
|
||||
return
|
||||
*/
|
||||
if(istype(W, /obj/item/weapon/screwdriver)) // Opening that Air Alarm up.
|
||||
//user << "You pop the Air Alarm's maintence panel open."
|
||||
wiresexposed = !wiresexposed
|
||||
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
|
||||
update_icon()
|
||||
return
|
||||
src.add_fingerprint(user)
|
||||
|
||||
if (wiresexposed && ((istype(W, /obj/item/device/multitool) || istype(W, /obj/item/weapon/wirecutters))))
|
||||
return attack_hand(user)
|
||||
switch(buildstage)
|
||||
if(2)
|
||||
if(istype(W, /obj/item/weapon/screwdriver)) // Opening that Air Alarm up.
|
||||
//user << "You pop the Air Alarm's maintence panel open."
|
||||
wiresexposed = !wiresexposed
|
||||
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if (wiresexposed && ((istype(W, /obj/item/device/multitool) || istype(W, /obj/item/weapon/wirecutters))))
|
||||
return attack_hand(user)
|
||||
|
||||
if (istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))// trying to unlock the interface with an ID card
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
user << "It does nothing"
|
||||
return
|
||||
else
|
||||
if(allowed(usr) && !isWireCut(AALARM_WIRE_IDSCAN))
|
||||
locked = !locked
|
||||
user << "\blue You [ locked ? "lock" : "unlock"] the Air Alarm interface."
|
||||
updateUsrDialog()
|
||||
else
|
||||
user << "\red Access denied."
|
||||
return
|
||||
|
||||
if(1)
|
||||
if(istype(W, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/coil = W
|
||||
if(coil.amount < 5)
|
||||
user << "You need more cable for this!"
|
||||
return
|
||||
|
||||
user << "You wire \the [src]!"
|
||||
coil.amount -= 5
|
||||
if(!coil.amount)
|
||||
del(coil)
|
||||
|
||||
buildstage = 2
|
||||
update_icon()
|
||||
first_run()
|
||||
|
||||
else if(istype(W, /obj/item/weapon/crowbar))
|
||||
user << "You pry out the circuit!"
|
||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||
spawn(20)
|
||||
var/obj/item/weapon/airalarm_electronics/circuit = new /obj/item/weapon/airalarm_electronics()
|
||||
circuit.loc = user.loc
|
||||
buildstage = 0
|
||||
update_icon()
|
||||
return
|
||||
if(0)
|
||||
if(istype(W, /obj/item/weapon/airalarm_electronics))
|
||||
user << "You insert the circuit!"
|
||||
del(W)
|
||||
buildstage = 1
|
||||
update_icon()
|
||||
|
||||
/* Commented out due to RUNTIMES, RUNTIMES EVERYWHERE.
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
user << "You remove the fire alarm assembly from the wall!"
|
||||
var/obj/item/firealarm_frame/frame = new /obj/item/firealarm_frame()
|
||||
frame.loc = user.loc
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
del(src) */
|
||||
return
|
||||
|
||||
else if (istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))// trying to unlock the interface with an ID card
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
user << "It does nothing"
|
||||
else
|
||||
if(allowed(usr) && !isWireCut(AALARM_WIRE_IDSCAN))
|
||||
locked = !locked
|
||||
user << "\blue You [ locked ? "lock" : "unlock"] the Air Alarm interface."
|
||||
updateUsrDialog()
|
||||
else
|
||||
user << "\red Access denied."
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/machinery/alarm/power_change()
|
||||
@@ -1234,15 +1310,6 @@ FIRE ALARM
|
||||
user.visible_message("\red [user] has reconnected [src]'s detecting unit!", "You have reconnected [src]'s detecting unit.")
|
||||
else
|
||||
user.visible_message("\red [user] has disconnected [src]'s detecting unit!", "You have disconnected [src]'s detecting unit.")
|
||||
|
||||
else if (istype(W, /obj/item/weapon/wirecutters))
|
||||
buildstage = 1
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil()
|
||||
coil.amount = 5
|
||||
coil.loc = user.loc
|
||||
user << "You cut the wires from \the [src]"
|
||||
update_icon()
|
||||
if(1)
|
||||
if(istype(W, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/coil = W
|
||||
|
||||
@@ -462,7 +462,8 @@ client/proc/one_click_antag()
|
||||
candidates.Remove(G)
|
||||
|
||||
if(candidates.len)
|
||||
var/raiders = 4
|
||||
var/max_raiders = 6
|
||||
var/raiders = max_raiders
|
||||
//Spawns vox raiders and equips them.
|
||||
for (var/obj/effect/landmark/L in world)
|
||||
if(L.name == "Response Team")
|
||||
@@ -484,18 +485,17 @@ client/proc/one_click_antag()
|
||||
new_vox << "\red Don't forget to turn on your nitrogen internals!"
|
||||
|
||||
raiders--
|
||||
if(raiders > 4)
|
||||
if(raiders > max_raiders)
|
||||
return 0
|
||||
else
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/datum/admins/proc/create_vox_raider(obj/spawn_location, leader_chosen = 0)
|
||||
|
||||
var/mob/living/carbon/human/new_vox = new(spawn_location.loc)
|
||||
|
||||
new_vox.gender = pick(MALE, FEMALE)
|
||||
var/datum/preferences/A = new() //Randomize appearance for the raider.
|
||||
A.randomize_appearance_for(new_vox)
|
||||
new_vox.h_style = "Short Vox Quills"
|
||||
new_vox.regenerate_icons()
|
||||
|
||||
|
||||
@@ -43,6 +43,10 @@ var/global/vox_tick = 1
|
||||
W.cell.charge = 500
|
||||
equip_to_slot_or_del(W, slot_r_hand)
|
||||
|
||||
var/obj/item/stack/rods/A = new(src)
|
||||
A.amount = 20
|
||||
equip_to_slot_or_del(A, slot_l_hand)
|
||||
|
||||
if(4) // Vox medic!
|
||||
equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/pressure(src), slot_wear_suit)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/pressure(src), slot_head)
|
||||
|
||||
@@ -1157,21 +1157,22 @@ mob/living/carbon/human/yank_out_object()
|
||||
if(O == selection)
|
||||
affected = organ
|
||||
if(self)
|
||||
src << "<span class='warning'>You attempt to get a good grip on the [selection] in your [affected] with bloody fingers.</span>"
|
||||
src << "<span class='warning'>You attempt to get a good grip on the [selection] in your [affected.display_name] with bloody fingers.</span>"
|
||||
else
|
||||
U << "<span class='warning'>You attempt to get a good grip on the [selection] in [S]'s [affected] with bloody fingers.</span>"
|
||||
U << "<span class='warning'>You attempt to get a good grip on the [selection] in [S]'s [affected.display_name] with bloody fingers.</span>"
|
||||
|
||||
if(istype(U,/mob/living/carbon/human/)) U.bloody_hands(S)
|
||||
|
||||
if(!do_after(U, 80))
|
||||
return
|
||||
|
||||
if(!selection || !affected || !S || !U)
|
||||
return
|
||||
if(!selection || !affected || !S || !U)
|
||||
return
|
||||
|
||||
if(self)
|
||||
visible_message("<span class='warning'><b>[src] rips [selection] out of their [affected] in a welter of blood.</b></span>","<span class='warning'><b>You rip [selection] out of your [affected] in a welter of blood.</b></span>")
|
||||
visible_message("<span class='warning'><b>[src] rips [selection] out of their [affected.display_name] in a welter of blood.</b></span>","<span class='warning'><b>You rip [selection] out of your [affected] in a welter of blood.</b></span>")
|
||||
else
|
||||
visible_message("<span class='warning'><b>[usr] rips [selection] out of [src]'s [affected] in a welter of blood.</b></span>","<span class='warning'><b>[src] rips [selection] out of your [affected] in a welter of blood.</b></span>")
|
||||
visible_message("<span class='warning'><b>[usr] rips [selection] out of [src]'s [affected.display_name] in a welter of blood.</b></span>","<span class='warning'><b>[usr] rips [selection] out of your [affected] in a welter of blood.</b></span>")
|
||||
|
||||
selection.loc = get_turf(src)
|
||||
affected.implants -= selection
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
brute_damage += brute
|
||||
electronics_damage += electronics
|
||||
|
||||
if(brute_damage + electronics_damage > max_damage) destroy()
|
||||
if(brute_damage + electronics_damage >= max_damage) destroy()
|
||||
|
||||
/datum/robot_component/proc/heal_damage(brute, electronics)
|
||||
if(installed != 1)
|
||||
|
||||
@@ -66,9 +66,7 @@
|
||||
else
|
||||
src.camera.status = 1
|
||||
|
||||
health = 200 - (getOxyLoss() + getFireLoss() + getBruteLoss())
|
||||
|
||||
if(getOxyLoss() > 50) Paralyse(3)
|
||||
updatehealth()
|
||||
|
||||
if(src.sleeping)
|
||||
Paralyse(3)
|
||||
|
||||
@@ -3,21 +3,21 @@
|
||||
health = 100
|
||||
stat = CONSCIOUS
|
||||
return
|
||||
health = 100 - getBruteLoss() - getFireLoss()
|
||||
health = 100 - (getBruteLoss() + getFireLoss())
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/getBruteLoss()
|
||||
var/amount = 0
|
||||
for(var/V in components)
|
||||
var/datum/robot_component/C = components[V]
|
||||
if(C.installed == 1) amount += C.brute_damage
|
||||
if(C.installed != 0) amount += C.brute_damage
|
||||
return amount
|
||||
|
||||
/mob/living/silicon/robot/getFireLoss()
|
||||
var/amount = 0
|
||||
for(var/V in components)
|
||||
var/datum/robot_component/C = components[V]
|
||||
if(C.installed == 1) amount += C.electronics_damage
|
||||
if(C.installed != 0) amount += C.electronics_damage
|
||||
return amount
|
||||
|
||||
/mob/living/silicon/robot/adjustBruteLoss(var/amount)
|
||||
@@ -52,7 +52,6 @@
|
||||
if(!parts.len) return
|
||||
var/datum/robot_component/picked = pick(parts)
|
||||
picked.heal_damage(brute,burn)
|
||||
updatehealth()
|
||||
|
||||
/mob/living/silicon/robot/take_organ_damage(var/brute = 0, var/burn = 0, var/sharp = 0)
|
||||
var/list/components = get_damageable_components()
|
||||
@@ -78,7 +77,6 @@
|
||||
|
||||
var/datum/robot_component/C = pick(components)
|
||||
C.take_damage(brute,burn,sharp)
|
||||
updatehealth()
|
||||
|
||||
/mob/living/silicon/robot/heal_overall_damage(var/brute, var/burn)
|
||||
var/list/datum/robot_component/parts = get_damaged_components(brute,burn)
|
||||
@@ -95,7 +93,6 @@
|
||||
burn -= (burn_was-picked.electronics_damage)
|
||||
|
||||
parts -= picked
|
||||
updatehealth()
|
||||
|
||||
/mob/living/silicon/robot/take_overall_damage(var/brute = 0, var/burn = 0, var/sharp = 0, var/used_weapon = null)
|
||||
if(status_flags & GODMODE) return //godmode
|
||||
@@ -129,6 +126,4 @@
|
||||
brute -= (picked.brute_damage - brute_was)
|
||||
burn -= (picked.electronics_damage - burn_was)
|
||||
|
||||
parts -= picked
|
||||
|
||||
updatehealth()
|
||||
parts -= picked
|
||||
@@ -946,7 +946,7 @@ mob/verb/yank_out_object()
|
||||
if(self)
|
||||
visible_message("<span class='warning'><b>[src] rips [selection] out of their body.</b></span>","<span class='warning'><b>You rip [selection] out of your body.</b></span>")
|
||||
else
|
||||
visible_message("<span class='warning'><b>[usr] rips [selection] out of [src]'s body.</b></span>","<span class='warning'><b>[src] rips [selection] out of your body.</b></span>")
|
||||
visible_message("<span class='warning'><b>[usr] rips [selection] out of [src]'s body.</b></span>","<span class='warning'><b>[usr] rips [selection] out of your body.</b></span>")
|
||||
|
||||
selection.loc = get_turf(src)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user