Adds logging to holodeck controls. Allows AI to toggle saferty on and off, unless emagged. Fixes mech weapons not firing. Add ADVANCED INTERROGATION TECHNIQUES (smashing peoples faces with tables). Grab someone once and then click on a table. Fixes sleep button not waking you up.

This commit is contained in:
Erthilo
2012-05-15 03:56:32 +01:00
parent d7131de6dc
commit 9d76032058
5 changed files with 56 additions and 12 deletions
@@ -8,7 +8,7 @@
var/list/holographic_items = list()
var/damaged = 0
var/last_change = 0
var/safety = 1
attack_ai(var/mob/user as mob)
return src.attack_hand(user)
@@ -35,7 +35,11 @@
dat += "Please ensure that only holographic weapons are used in the holodeck if a combat simulation has been loaded.<BR>"
if(emagged)
if(!safety)
if(issilicon(user) && (emagged))
dat += "<font color=red>ERROR: SAFETY PROTOCOLS UNRESPONSIVE</font><BR>"
else if(issilicon(user) && (!emagged))
dat += "<A href='?src=\ref[src];AIrelock=1'>(<font color=red>Enable Safety Protocols?</font>)</A><BR>"
dat += "<A href='?src=\ref[src];burntest=1'>(<font color=red>Begin Atmospheric Burn Simulation</font>)</A><BR>"
dat += "Ensure the holodeck is empty before testing.<BR>"
dat += "<BR>"
@@ -43,12 +47,11 @@
dat += "Ensure the holodeck is empty before testing.<BR>"
dat += "<BR>"
dat += "Safety Protocols are <font color=red> DISABLED </font><BR>"
else
else if(safety)
if(issilicon(user))
dat += "<A href='?src=\ref[src];AIoverride=1'>(<font color=red>Override Safety Protocols?</font>)</A><BR>"
dat += "<A href='?src=\ref[src];AIoverride=1'>(<font color=red>Disable Safety Protocols?</font>)</A><BR>"
dat += "<BR>"
dat += "Safety Protocols are <font color=green> ENABLED </font><BR>"
user << browse(dat, "window=computer;size=400x500")
onclose(user, "computer")
@@ -101,7 +104,13 @@
else if(href_list["AIoverride"])
if(!issilicon(usr)) return
emagged = 1
safety = 0
log_admin("[usr] ([usr.ckey]) disabled Holodeck Safeties.")
message_admins("[usr] ([usr.ckey]) disabled Holodeck Safeties.")
else if(href_list["AIrelock"])
if(!issilicon(usr)) return
safety = 1
src.add_fingerprint(usr)
src.updateUsrDialog()
@@ -141,8 +150,11 @@
if(istype(D, /obj/item/weapon/card/emag) && !emagged)
playsound(src.loc, 'sparks4.ogg', 75, 1)
emagged = 1
safety = 0
user << "\blue You vastly increase projector power and override the safety and security protocols."
user << "Warning. Automatic shutoff and derezing protocols have been corrupted. Please call Nanotrasen maintence and do not use the simulator."
log_admin("[user] ([user.ckey]) emagged Holodeck Safeties.")
message_admins("[user] ([user.ckey]) emagged Holodeck Safeties.")
src.updateUsrDialog()
return
@@ -340,7 +352,17 @@
if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2)
var/obj/item/weapon/grab/G = W
if(G.state<2)
user << "\red You need a better grip to do that!"
if(ishuman(G.affecting))
var/mob/living/carbon/human/H = G.affecting
var/datum/organ/external/affecting = H.get_organ("head")
affecting.take_damage(4, 0)
H.UpdateDamageIcon()
H.updatehealth()
playsound(src.loc, 'punch1.ogg', 50, 1, -3)
src.add_blood(G.affecting)
for(var/mob/O in viewers(world.view, src))
if (O.client)
O << text("\red [] smashes []'s head on the table!", G.assailant, G.affecting)
return
G.affecting.loc = src.loc
G.affecting.Weaken(5)
+3 -3
View File
@@ -32,7 +32,7 @@
A.yo = targloc.y - curloc.y
A.xo = targloc.x - curloc.x
chassis.use_power(energy_drain)
A.process()
A.fired()
chassis.log_message("Fired from [src.name], targeting [target].")
do_after_cooldown()
return
@@ -215,7 +215,7 @@
A.yo = targloc.y - curloc.y
A.xo = targloc.x - curloc.x
set_ready_state(0)
A.process()
A.fired()
log_message("Fired from [src.name], targeting [target].")
do_after_cooldown()
return
@@ -256,7 +256,7 @@
A.current = curloc
A.yo = targloc.y - curloc.y
A.xo = targloc.x - curloc.x
A.process()
A.fired()
sleep(2)
set_ready_state(0)
log_message("Fired from [src.name], targeting [target].")
+18 -1
View File
@@ -149,7 +149,24 @@ TABLE AND RACK OBJECT INTERATIONS
if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2)
var/obj/item/weapon/grab/G = W
if(G.state<2)
user << "\red You need a better grip to do that!"
if(ishuman(G.affecting))
G.affecting.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been smashed on a table by [G.assailant.name] ([G.assailant.ckey])</font>")
G.assailant.attack_log += text("\[[time_stamp()]\] <font color='red'>Smashed [G.affecting.name] ([G.affecting.ckey]) on a table.</font>")
log_admin("ATTACK: [G.assailant] ([G.assailant.ckey]) smashed [G.affecting] ([G.affecting.ckey]) on a table.")
message_admins("ATTACK: [G.assailant] ([G.assailant.ckey]) smashed [G.affecting] ([G.affecting.ckey]) on a table.")
log_attack("<font color='red'>[G.assailant] ([G.assailant.ckey]) smashed [G.affecting] ([G.affecting.ckey]) on a table.</font>")
var/mob/living/carbon/human/H = G.affecting
var/datum/organ/external/affecting = H.get_organ("head")
affecting.take_damage(4, 0)
H.UpdateDamageIcon()
H.updatehealth()
playsound(src.loc, 'punch1.ogg', 50, 1, -3)
src.add_blood(G.affecting)
for(var/mob/O in viewers(world.view, src))
if (O.client)
O << text("\red [] smashes []'s head on the table!", G.assailant, G.affecting)
return
G.affecting.loc = src.loc
G.affecting.Weaken(5)
+2 -1
View File
@@ -439,7 +439,8 @@
usr.pulling = null
if("sleep")
if(usr.sleeping && usr.sleeping_willingly)
return
usr.sleeping = 0
usr.sleeping_willingly = 0
else if(!usr.sleeping)
usr.sleeping = 20 //Short nap
usr.sleeping_willingly = 1
+4
View File
@@ -62,6 +62,10 @@ should be listed in the changelog upon commit though. Thanks. -->
<ul class="changes bgimages16">
<li class="rscadd">More customs!</li>
<li class="imageadd">New sprites for bomb suit, in-hands for pulse rifles, advanced energy guns, and laser guns. Credit to Flashkirby!</li>
<li class="rscadd">Allows AI to toggle saferty on and off, unless emagged.</li>
<li class="rscadd">Add ADVANCED INTERROGATION TECHNIQUES (smashing peoples faces with tables). Grab someone once and then click on a table. Don't abuse this!</li>
<li class="bugfix">Fixes sleep button not waking you up.</li>
<li class="bugfix">Fixes mech weapons not firing.</li>
</ul>
</div>