mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-04 06:22:14 +00:00
Emergency Field Generators are now live!
- Now have an emp_act - Can now be (un)locked by engineering IDs Reverted ghosts getting mob attack logs and moving the ghost verb to clients - This should fix the ghosting issues, but it's possible I've missed something. If there's any problems ping me(Nodrak) in #coderbus on IRC and I'll fix it. - Attack logs moving to ghosts would be an amazing feature, it's not that admins can't get that information already but it makes it much easier. If it can be implemented without all of these bugs, it'd defiantly be an asset - Fixes Issue 647 Removed logging from the cremator as it was causing runtimes and the cremator to lock up. Fixes Issue 649 Fixed an issue with unjobbanning players. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4044 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -131,7 +131,6 @@
|
||||
occupant:UI = UI // set interface preference
|
||||
|
||||
ghost.client.mob = src.occupant
|
||||
src.occupant.attack_log |= ghost.attack_log //THE LEGACY MUST LIVE ON
|
||||
src.occupant.hud_used = new/obj/hud( src.occupant )
|
||||
// probably redundant because previous line calls mob/Login() which does this line of code
|
||||
// but until this is proven useless keep it for safety - Doohl
|
||||
|
||||
@@ -275,9 +275,10 @@
|
||||
for (var/obj/item/W in M)
|
||||
if (prob(10))
|
||||
W.loc = src
|
||||
M.attack_log += "\[[time_stamp()]\] Has been cremated by <b>[user]/[user.ckey]</b>" //One shall not simply cremate a mob unnoticed!
|
||||
user.attack_log +="\[[time_stamp()]\] Cremated <b>[M]/[M.ckey]</b>"
|
||||
log_attack("\[[time_stamp()]\] <b>[user]/[user.ckey]</b> gibbed <b>[M]/[M.ckey]</b>")
|
||||
//Logging for this runtimes and causes the cremator to lock up
|
||||
//M.attack_log += "\[[time_stamp()]\] Has been cremated by <b>[user]/[user.ckey]</b>" //No point when the mob's about to be deleted
|
||||
//user.attack_log +="\[[time_stamp()]\] Cremated <b>[M]/[M.ckey]</b>"
|
||||
//log_attack("\[[time_stamp()]\] <b>[user]/[user.ckey]</b> gibbed <b>[M]/[M.ckey]</b>")
|
||||
M.death(1)
|
||||
M.ghostize()
|
||||
del(M)
|
||||
|
||||
@@ -131,6 +131,14 @@
|
||||
del(src)
|
||||
return
|
||||
|
||||
/obj/machinery/shield/emp_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
del(src)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
del(src)
|
||||
|
||||
/obj/machinery/shield/blob_act()
|
||||
del(src)
|
||||
|
||||
@@ -177,12 +185,14 @@
|
||||
opacity = 0
|
||||
anchored = 0
|
||||
pressure_resistance = 2*ONE_ATMOSPHERE
|
||||
var/active = 0
|
||||
req_access = list(access_engine)
|
||||
var/const/max_health = 100
|
||||
var/health = max_health
|
||||
var/active = 0
|
||||
var/malfunction = 0 //Malfunction causes parts of the shield to slowly dissapate
|
||||
var/list/deployed_shields = list()
|
||||
var/is_open = 0 //Whether or not the wires are exposed
|
||||
var/locked = 0
|
||||
|
||||
/obj/machinery/shieldgen/Del()
|
||||
for(var/obj/machinery/shield/shield_tile in deployed_shields)
|
||||
@@ -247,7 +257,26 @@
|
||||
src.checkhp()
|
||||
return
|
||||
|
||||
/obj/machinery/shieldgen/emp_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
src.health /= 2 //cut health in half
|
||||
malfunction = 1
|
||||
locked = pick(0,1)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
src.health *= 0.3 //chop off a third of the health
|
||||
malfunction = 1
|
||||
checkhp()
|
||||
|
||||
/obj/machinery/shieldgen/attack_hand(mob/user as mob)
|
||||
if(locked)
|
||||
user << "The machine is locked, you are unable to use it."
|
||||
return
|
||||
if(is_open)
|
||||
user << "The panel must be closed before operating this machine."
|
||||
return
|
||||
|
||||
if (src.active)
|
||||
user.visible_message("\blue \icon[src] [user] deactivated the shield generator.", \
|
||||
"\blue \icon[src] You deactivate the shield generator.", \
|
||||
@@ -279,7 +308,7 @@
|
||||
|
||||
else if(istype(W, /obj/item/weapon/cable_coil) && malfunction && is_open)
|
||||
var/obj/item/weapon/cable_coil/coil = W
|
||||
user << "\blue You begin to repair the cables."
|
||||
user << "\blue You begin to replace the wires."
|
||||
//if(do_after(user, min(60, round( ((maxhealth/health)*10)+(malfunction*10) ))) //Take longer to repair heavier damage
|
||||
if(do_after(user, 30))
|
||||
if(!src || !coil) return
|
||||
@@ -290,17 +319,30 @@
|
||||
update_icon()
|
||||
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
if(istype(get_turf(src), /turf/space)) return //No wrenching these in space!
|
||||
playsound(src.loc, 'Ratchet.ogg', 100, 1)
|
||||
if(locked)
|
||||
user << "The bolts are covered, unlocking this would retract the covers."
|
||||
return
|
||||
if(anchored)
|
||||
playsound(src.loc, 'Ratchet.ogg', 100, 1)
|
||||
user << "\blue You unsecure the [src] from the floor!"
|
||||
if(active)
|
||||
user << "The [src] shuts off!"
|
||||
user << "\blue The [src] shuts off!"
|
||||
src.shields_down()
|
||||
anchored = 0
|
||||
else
|
||||
if(istype(get_turf(src), /turf/space)) return //No wrenching these in space!
|
||||
playsound(src.loc, 'Ratchet.ogg', 100, 1)
|
||||
user << "\blue You secure the [src] to the floor!"
|
||||
anchored = 1
|
||||
|
||||
|
||||
else if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))
|
||||
if(src.allowed(user))
|
||||
src.locked = !src.locked
|
||||
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
|
||||
else
|
||||
user << "\red Access denied."
|
||||
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
@@ -576,8 +576,8 @@ var/global/BSACooldown = 0
|
||||
if (href_list["removejobban"])
|
||||
if ((src.rank in list("Game Admin", "Game Master" )))
|
||||
var/t = href_list["removejobban"]
|
||||
if(input(alert("Do you want to unjobban [t]?","Unjobban confirmation", "Yes", "No") == "Yes")) //No more misclicks! Unless you do it twice.
|
||||
if(t)
|
||||
if(t)
|
||||
if(input(alert("Do you want to unjobban [t]?","Unjobban confirmation", "Yes", "No") == "Yes") && t) //No more misclicks! Unless you do it twice.
|
||||
log_admin("[key_name(usr)] removed [t]")
|
||||
message_admins("\blue [key_name_admin(usr)] removed [t]", 1)
|
||||
jobban_remove(t)
|
||||
|
||||
@@ -36,7 +36,6 @@ Works together with spawning an observer, noted above.
|
||||
if(client)
|
||||
client.screen.len = null//Clear the hud, just to be sure.
|
||||
var/mob/dead/observer/ghost = new(src,transfer_mind)//Transfer safety to observer spawning proc.
|
||||
ghost.attack_log |= attack_log
|
||||
if(transfer_mind)//When a body is destroyed.
|
||||
if(mind)
|
||||
mind.transfer_to(ghost)
|
||||
@@ -45,7 +44,7 @@ Works together with spawning an observer, noted above.
|
||||
else//Else just modify their key and connect them.
|
||||
ghost.key = key
|
||||
|
||||
verbs -= /client/proc/ghost
|
||||
verbs -= /mob/proc/ghost
|
||||
if (ghost.client)
|
||||
ghost.client.eye = ghost
|
||||
|
||||
@@ -60,7 +59,7 @@ Works together with spawning an observer, noted above.
|
||||
/*
|
||||
This is the proc mobs get to turn into a ghost. Forked from ghostize due to compatibility issues.
|
||||
*/
|
||||
/client/proc/ghost()
|
||||
/mob/proc/ghost()
|
||||
set category = "Ghost"
|
||||
set name = "Ghost"
|
||||
set desc = "You cannot be revived as a ghost."
|
||||
@@ -69,11 +68,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
src << "Only dead people and admins get to ghost, and admins don't use this verb to ghost while alive."
|
||||
return*/
|
||||
if(key)
|
||||
var/mob/dead/observer/ghost = new(mob) //Duh.
|
||||
ghost.loc = get_turf(mob) //This is to prevent ghosts from appearing at the arrival shuttle.
|
||||
ghost.attack_log |= mob.attack_log //THE LEGACY MUST LIVE ON
|
||||
var/mob/dead/observer/ghost = new(src)
|
||||
ghost.key = key
|
||||
verbs -= /client/proc/ghost
|
||||
verbs -= /mob/proc/ghost
|
||||
if (ghost.client)
|
||||
ghost.client.eye = ghost
|
||||
return
|
||||
@@ -148,10 +145,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
return
|
||||
if(corpse.ajourn)
|
||||
corpse.ajourn=0
|
||||
corpse.attack_log |= attack_log //copy the ghost's attack log to the corpse. THE LEGACY MUST LIVE ON
|
||||
client.mob = corpse
|
||||
if (corpse.stat==2)
|
||||
verbs += /client/proc/ghost
|
||||
verbs += /mob/proc/ghost
|
||||
del(src)
|
||||
|
||||
/mob/dead/observer/proc/dead_tele()
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
if (src.key)
|
||||
spawn(10)
|
||||
if(src.key && src.stat == 2)
|
||||
src.client.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
|
||||
tod = worldtime2text() //weasellos time of death patch
|
||||
if (mind) mind.store_memory("Time of death: [tod]", 0)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
src.client.eye = src.loc
|
||||
src.client.perspective = EYE_PERSPECTIVE
|
||||
if (src.stat == DEAD)
|
||||
src.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
|
||||
return
|
||||
/*
|
||||
@@ -99,7 +99,7 @@
|
||||
src.client.eye = src.loc
|
||||
src.client.perspective = EYE_PERSPECTIVE
|
||||
if (src.stat == 2)
|
||||
src.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
if (src.client)
|
||||
spawn(10)
|
||||
if(src.client && src.stat == 2)
|
||||
src.client.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
|
||||
if(mind) // Skie - Added check that there's someone controlling the alien
|
||||
tod = worldtime2text() //weasellos time of death patch
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
src.client.eye = src.loc
|
||||
src.client.perspective = EYE_PERSPECTIVE
|
||||
if (src.stat == 2)
|
||||
src.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
|
||||
return
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
src.client.eye = src.loc
|
||||
src.client.perspective = EYE_PERSPECTIVE
|
||||
if (!container || !istype(container, /obj/item/device/mmi))
|
||||
src.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -20,5 +20,5 @@
|
||||
if (key)
|
||||
spawn(50)
|
||||
if(key && stat == 2)
|
||||
src.client.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
return ..(gibbed)
|
||||
@@ -79,11 +79,9 @@
|
||||
//This is where the suicide assemblies checks would go
|
||||
|
||||
if (client)
|
||||
//world <<"Woo, there's a client!"
|
||||
spawn(10)
|
||||
if(client && src.stat == 2)
|
||||
//world <<"You're sooooooo dead, let's ghost!"
|
||||
client.verbs += /client/proc/ghost
|
||||
verbs += /mob/proc/ghost
|
||||
|
||||
tod = worldtime2text() //weasellos time of death patch
|
||||
if(mind)
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
src.client.eye = src.loc
|
||||
src.client.perspective = EYE_PERSPECTIVE
|
||||
if (src.stat == DEAD)
|
||||
src.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
|
||||
return
|
||||
|
||||
@@ -37,6 +37,6 @@
|
||||
if (src.key)
|
||||
spawn(50)
|
||||
if(src.key && src.stat == 2)
|
||||
src.client.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
|
||||
return ..(gibbed)
|
||||
@@ -7,6 +7,6 @@
|
||||
src.client.eye = src.loc
|
||||
src.client.perspective = EYE_PERSPECTIVE
|
||||
if (src.stat == DEAD)
|
||||
src.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
|
||||
return
|
||||
|
||||
@@ -67,6 +67,6 @@
|
||||
if (src.key)
|
||||
spawn(50)
|
||||
if(src.key && src.stat == 2)
|
||||
src.client.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
|
||||
return ..(gibbed)
|
||||
@@ -7,5 +7,5 @@
|
||||
src.client.eye = src.loc
|
||||
src.client.perspective = EYE_PERSPECTIVE
|
||||
if (src.stat == DEAD)
|
||||
src.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
return
|
||||
|
||||
@@ -13,16 +13,22 @@
|
||||
var/callshuttle = 0
|
||||
|
||||
for(var/obj/machinery/computer/communications/commconsole in world)
|
||||
if(commconsole.z == 2)
|
||||
continue
|
||||
if(istype(commconsole.loc,/turf))
|
||||
break
|
||||
callshuttle++
|
||||
|
||||
for(var/obj/item/weapon/circuitboard/communications/commboard in world)
|
||||
if(commboard.z == 2)
|
||||
continue
|
||||
if(istype(commboard.loc,/turf) || istype(commboard.loc,/obj/item/weapon/storage))
|
||||
break
|
||||
callshuttle++
|
||||
|
||||
for(var/mob/living/silicon/ai/shuttlecaller in world)
|
||||
if(shuttlecaller.z == 2)
|
||||
continue
|
||||
if(!shuttlecaller.stat && shuttlecaller.client && istype(shuttlecaller.loc,/turf))
|
||||
break
|
||||
callshuttle++
|
||||
@@ -53,5 +59,5 @@
|
||||
if (key)
|
||||
spawn(50)
|
||||
if(key && stat == 2)
|
||||
client.verbs += /client/proc/ghost
|
||||
client.verbs += /mob/proc/ghost
|
||||
return ..(gibbed)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
src.client.eye = src.loc
|
||||
src.client.perspective = EYE_PERSPECTIVE
|
||||
if (src.stat == 2)
|
||||
src.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
else
|
||||
for(var/obj/machinery/ai_status_display/O in world) //change status
|
||||
spawn(0)
|
||||
|
||||
@@ -8,5 +8,5 @@
|
||||
src.client.eye = src.loc
|
||||
src.client.perspective = EYE_PERSPECTIVE
|
||||
if (src.stat == 2)
|
||||
src.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
return
|
||||
@@ -72,5 +72,5 @@
|
||||
if (src.key)
|
||||
spawn(50)
|
||||
if(src.key && src.stat == 2)
|
||||
src.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
return ..(gibbed)
|
||||
@@ -7,7 +7,7 @@
|
||||
src.client.eye = src.loc
|
||||
src.client.perspective = EYE_PERSPECTIVE
|
||||
if (src.stat == 2)
|
||||
src.verbs += /client/proc/ghost
|
||||
src.verbs += /mob/proc/ghost
|
||||
if(src.real_name == "Cyborg")
|
||||
src.ident = rand(1, 999)
|
||||
src.real_name += " "
|
||||
|
||||
Reference in New Issue
Block a user