Merge pull request #1117 from Erthilo/master

Lots of fixes!
This commit is contained in:
SkyMarshal
2012-05-20 12:42:54 -07:00
10 changed files with 57 additions and 158 deletions
@@ -9,7 +9,7 @@
universal_speak = 1 //hacky fix until someone can figure out how to make them only understand humans
taj_talk_understand = 1
voice_message = "mrowls"
examine_text = "one of the cat-like Tajarans."
examine_text = "one of the cat-like Tajarans"
/mob/living/carbon/human/tajaran/New()
var/g = "m"
@@ -589,94 +589,3 @@
/mob/living/carbon/human/tajaran/co2overloadtime = null
/mob/living/carbon/human/tajaran/temperature_resistance = T0C+70
/* //This is silly. -- Erthilo
/mob/living/carbon/human/tajaran/Emissary/
unacidable = 1
var/aegis = 1
/mob/living/carbon/human/tajaran/Emissary/New()
..()
reagents.add_reagent("hyperzine", 5000) //From the dark, to the light, it's a supersonic flight!
// Gotta keep it going!
if (!(mutations & HULK))
mutations |= HULK
if (!(mutations & LASER))
mutations |= LASER
if (!(mutations & XRAY))
mutations |= XRAY
sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
see_in_dark = 8
see_invisible = 2
if (!(mutations & COLD_RESISTANCE))
mutations |= COLD_RESISTANCE
if (!(mutations & TK))
mutations |= TK
if(!(mutations & HEAL))
mutations |= HEAL
spawn(0)
while(src)
adjustBruteLoss(-10)
adjustToxLoss(-10)
adjustOxyLoss(-10)
adjustFireLoss(-10)
sleep(10)
/mob/living/carbon/human/tajaran/Emissary/ex_act()
return
/mob/living/carbon/human/tajaran/Emissary/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params)
if(istype(target , /obj/machinery/door/airlock))
if(target:locked)
target:locked = 0
if(!target:density)
return 1
if(target:operating > 0)
return
if(!ticker)
return 0
if(!target:operating)
target:operating = 1
target:animate("opening")
target:sd_SetOpacity(0)
sleep(10)
target:layer = 2.7
target:density = 0
target:update_icon()
target:sd_SetOpacity(0)
target:update_nearby_tiles()
target:operating = -1
user << "You force the door open, shearing the bolts and burning out the motor."
if(target:operating)
target:operating = -1
else if(istype(target , /obj/machinery/door/firedoor))
target:open()
/mob/living/carbon/human/tajaran/Emissary/Life()
..()
if (!(mutations & HULK))
mutations |= HULK
if((stat == 2) && aegis)
src.show_message("\red [src]'s eyes open suddenlly.", 3, "\red \"I gave a solemn vow to never die for long.\"", 2)
src.heal_overall_damage(9001,9001)
src.stat = 0
aegis = 0
*/
+1 -1
View File
@@ -159,7 +159,7 @@
//check other cameras
var/obj/machinery/camera/closest = C
for(var/obj/machinery/camera/C2 in world)
if (C2.network == src.networks)
if (C2.network in src.networks)
if (C2.z == target.z)
zmatched = 1
if (C2.status)
+4 -4
View File
@@ -31,8 +31,8 @@ Possible to do for anyone motivated enough:
/*There are pretty much only three ways to interact here.
I don't need to check for client since they're clicking on an object.
This may change in the future but for now will suffice.*/
if(user.client.eye!=src)//Set client eye on the object if it's not already.
user.current = src
if(user.eyeobj.loc!=src.loc)//Set client eye on the object if it's not already.
user.eyeobj.loc = src.loc
user.reset_view(src)
else if(!hologram)//If there is no hologram, possibly make one.
activate_holo(user)
@@ -41,7 +41,7 @@ Possible to do for anyone motivated enough:
return
/obj/machinery/hologram/holopad/proc/activate_holo(mob/living/silicon/ai/user)
if(!(stat & NOPOWER)&&user.client.eye==src)//If the projector has power and client eye is on it.
if(!(stat & NOPOWER)&&user.eyeobj.loc==src.loc)//If the projector has power and client eye is on it.
if(!hologram)//If there is not already a hologram.
create_holo(user)//Create one.
for(var/mob/M in viewers())
@@ -91,7 +91,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
/obj/machinery/hologram/holopad/process()
if(hologram)//If there is a hologram.
if(master&&!master.stat&&master.client&&master.client.eye==src)//If there is an AI attached, it's not incapacitated, it has a client, and the client eye is centered on the projector.
if(master&&!master.stat&&master.client&&master.eyeobj.loc==src.loc)//If there is an AI attached, it's not incapacitated, it has a client, and the client eye is centered on the projector.
if( !(get_dist(src,hologram.loc)>3||stat & NOPOWER) )//If the hologram is not out of bounds and the machine has power.
return 1
clear_holo()//If not, we want to get rid of the hologram.
+1 -1
View File
@@ -71,7 +71,7 @@
"You hear metal clanking")
else
buckled_mob.visible_message(\
"\blue [buckled_mob.name] unbuckled himself!",\
"\blue [buckled_mob.name] unbuckles!",\
"You unbuckle yourself from [src].",\
"You hear metal clanking")
unbuckle()
+1 -1
View File
@@ -1,5 +1,5 @@
/mob/verb/listen_ooc()
set name = "Un/Mute OOC"
set name = "Hear/Stop Hearing OOC"
set category = "OOC"
if (src.client)
+1 -1
View File
@@ -1862,7 +1862,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(prob(50)) M:heal_organ_damage(1,0)
if(prob(1)) M:heal_organ_damage(0.5,0) //This should stop being able to heal out of crit from eating a donut
M:nutrition += nutriment_factor // For hunger and fatness
/*
// If overeaten - vomit and fall down
+1 -1
View File
@@ -20,7 +20,7 @@
return//Whatever the case, return since you can't move anyway.
if(user.client)//To make AI holograms work. They will relay directions as long as they are centered on the object.
var/obj/machinery/hologram/holopad/T = user.client.eye//Client eye centers on an object.
var/obj/machinery/hologram/holopad/T = user.current//Client eye centers on an object.
if(istype(T)&&T.hologram&&T.master==user)//If there is a hologram and its master is the user.
T.hologram.loc = get_step(T.hologram, direct)
T.hologram.dir = direct
+1 -11
View File
@@ -390,18 +390,8 @@
O << "4.) Your laws are not in preference, laws do not take preference over one another unless specifically stated in the law."
O << "<br>We want everyone to have a good time, so we, the admins, will try to correct you if you stray from these rules. Just try to keep it sensible."
//If you add a verb here, make sure to add it to silicon\ai\ai.dm too.
O.verbs += /mob/living/silicon/ai/proc/ai_call_shuttle
O.verbs += /mob/living/silicon/ai/proc/show_laws_verb
O.verbs += /mob/living/silicon/ai/proc/ai_camera_track
O.verbs += /mob/living/silicon/ai/proc/ai_alerts
O.verbs += /mob/living/silicon/ai/proc/ai_camera_list
O.verbs += /mob/living/silicon/ai/proc/ai_network_change
O.verbs += /mob/living/silicon/ai/proc/ai_statuschange
O.verbs += /mob/living/silicon/ai/proc/ai_hologram_change
O.verbs += /mob/living/silicon/ai/proc/ai_roster
O.verbs += AI_VERB_LIST
// O.verbs += /mob/living/silicon/ai/proc/ai_cancel_call
O.job = "AI"
spawn(0)
+46 -46
View File
@@ -150,23 +150,23 @@
if(usr /*&& !usr.stat*/)
usr << "A control terminal for the area electrical systems."
if(stat & BROKEN)
usr << "Looks broken."
usr << "It looks broken."
return
if(opened)
if(has_electronics && terminal)
usr << "The cover is [opened==2?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"]."
else if (!has_electronics && terminal)
usr << "There are some wires but no any electronics."
usr << "There are some wires but no electronics."
else if (has_electronics && !terminal)
usr << "Electronics installed but not wired."
usr << "There are electronics installed but they're not wired."
else /* if (!has_electronics && !terminal) */
usr << "There is no electronics nor connected wires."
usr << "There are no electronics or any connected wires."
else
if (stat & MAINT)
usr << "The cover is closed. Something is wrong with it, it doesn't work."
usr << "The cover is closed. It looks like it 's not working."
else if (malfhack)
usr << "The cover is broken. It may be hard to force it open."
usr << "The cover is broken. It looks like it'll be hard to force open."
else
usr << "The cover is closed."
@@ -213,7 +213,7 @@
if (istype(W, /obj/item/weapon/crowbar) && opened)
if (has_electronics==1)
if (terminal)
user << "\red Disconnect wires first."
user << "\red You need to cut the wires first."
return
playsound(src.loc, 'Crowbar.ogg', 50, 1)
user << "You try to remove the power control board..."
@@ -222,7 +222,7 @@
if ((stat & BROKEN) || malfhack)
user.visible_message(\
"\red [user.name] has broken the power control board inside [src.name]!",\
"You broke the charred power control board and remove the remains.",
"You break the charred power control board and remove the remains.",
"You hear a crack!")
//ticker.mode:apcs-- //XSI said no and I agreed. -rastaf0
else
@@ -238,7 +238,7 @@
user.visible_message("\red [user] starts removing the broken APC cover with \the [W]!", \
"\red You start removing the broken APC cover!")
if(do_after(user, 50))
user.visible_message("\red The broken APC cover was removed with \the [W] by [user.name]!", \
user.visible_message("\red [user.name] removes the broken APC cover with \the [W]!", \
"\red You remove the broken APC cover with your [W.name]!")
opened = 2
cover_unscrewed = 0
@@ -254,24 +254,24 @@
updateicon()
else if (istype(W, /obj/item/weapon/cell) && opened) // trying to put a cell inside
if(cell)
user << "There is a power cell already installed."
user << "There's a power cell installed already."
return
else
if (stat & MAINT)
user << "\red There is no any connector for your power cell."
user << "\red There aren't any connectors for the power cell."
return
user.drop_item()
W.loc = src
cell = W
user.visible_message(\
"\red [user.name] has inserted the power cell to [src.name]!",\
"\red [user.name] has inserted the power cell into [src.name]!",\
"You insert the power cell.")
chargecount = 0
updateicon()
else if (istype(W, /obj/item/weapon/screwdriver)) // haxing
if(opened)
if (cell)
user << "\red Remove the power cell first." //FUCK YOU, USEFUL MESSAGES ARE GOOD
user << "\red You need to remove the power cell first." //FUCK YOU, USEFUL MESSAGES ARE GOOD
return
else
if (has_electronics==1 && terminal)
@@ -285,7 +285,7 @@
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
user << "You unfasten the electronics."
else /* has_electronics==0 */
user << "\red There is nothing to secure."
user << "\red There's nothing to secure here."
return
updateicon()
else if((stat & BROKEN) || malfhack)
@@ -293,12 +293,12 @@
user.visible_message("\red [user] starts unscrewing the broken APC cover with \the [W]!", \
"\red You start unscrewing the broken APC cover!")
if(do_after(user, 50))
user.visible_message("\red The broken APC cover was unscrewed with \the [W] by [user.name]!", \
user.visible_message("\red [user.name] unscrews the broken APC cover with \the [W]!", \
"\red You unscrew the broken APC cover with your [W.name]!")
cover_unscrewed = 1
updateicon()
else if(emagged)
user << "The interface is broken."
user << "The interface seems broken."
else
wiresexposed = !wiresexposed
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
@@ -306,11 +306,11 @@
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(emagged)
user << "The interface is broken."
user << "The interface seems broken."
else if(opened)
user << "You must close the cover to swipe an ID card."
user << "You have to close the cover to swipe an ID card."
else if(wiresexposed)
user << "You must close the panel"
user << "You have to close the panel."
else if(stat & (BROKEN|MAINT))
user << "Nothing happens."
else
@@ -328,9 +328,9 @@
else
return
if(opened)
user << "You must close the cover to swipe an ID card."
user << "You have to close the cover to swipe an ID card."
else if(wiresexposed)
user << "You must close the panel first"
user << "You have to close the panel first"
else if(stat & (BROKEN|MAINT))
user << "Nothing happens."
else
@@ -345,7 +345,7 @@
user << "You fail to [ locked ? "unlock" : "lock"] the APC interface."
else if (istype(W, /obj/item/weapon/cable_coil) && !terminal && opened && has_electronics!=2)
if (src.loc:intact)
user << "\red There is no floor with the plating revealed in front of the APC."
user << "\red You have to remove the floor plating in front of the APC first."
return
var/obj/item/weapon/cable_coil/C = W
if(C.amount < 10)
@@ -369,7 +369,7 @@
terminal.connect_to_network()
else if (istype(W, /obj/item/weapon/wirecutters) && terminal && opened && has_electronics!=2)
if (src.loc:intact)
user << "\red You must remove the floor plating in front of the APC first."
user << "\red You have to remove the floor plating in front of the APC first."
return
user << "You begin to cut cables..."
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
@@ -381,11 +381,11 @@
return
new /obj/item/weapon/cable_coil(loc,10)
user.visible_message(\
"\red [user.name] cut cables and dismantled the power terminal.",\
"You cut cables and dismantle the power terminal.")
"\red [user.name] cuts the cables and dismantles the power terminal.",\
"You cut the cable and dismantle the power terminal.")
del(terminal)
else if (istype(W, /obj/item/weapon/module/power_control) && opened && has_electronics==0 && !((stat & BROKEN) || malfhack))
user << "You try to insert the power control board into the frame..."
user << "You start to insert the power control board into the frame..."
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if(do_after(user, 10))
has_electronics = 1
@@ -396,7 +396,7 @@
return
else if (istype(W, /obj/item/weapon/weldingtool) && W:welding && opened && has_electronics==0 && !terminal)
if (W:get_fuel() < 3)
user << "\blue You need more welding fuel to complete this task."
user << "\blue You need more welding fuel to do this."
return
user << "You start welding APC frame..."
if(W:remove_fuel(0,user))
@@ -407,13 +407,13 @@
if (emagged || malfhack || (stat & BROKEN) || opened==2)
new /obj/item/stack/sheet/metal(loc)
user.visible_message(\
"\red [src] has been cut apart by [user.name] with the weldingtool.",\
"You disassembled the broken APC frame.",\
"\red \The [src] has been cut apart by [user.name] with the welding tool.",\
"You disassemble the broken APC frame.",\
"\red You hear welding.")
else
new /obj/item/apc_frame(loc)
user.visible_message(\
"\red [src] has been cut from the wall by [user.name] with the weldingtool.",\
"\red \The [src] has been cut from the wall by [user.name] with the welding tool.",\
"You cut APC frame from the wall.",\
"\red You hear welding.")
W:welding = 1
@@ -424,19 +424,19 @@
if (opened==2)
opened = 1
user.visible_message(\
"\red [user.name] has replaced the damaged APC frontal panel with a new one.",\
"You replace the damaged APC frontal panel with a new one.")
"\red [user.name] replaces the damaged APC panel with a new one.",\
"You replace the damaged APC panel with a new one.")
del(W)
updateicon()
else if (istype(W, /obj/item/apc_frame) && opened && ((stat & BROKEN) || malfhack))
if (has_electronics)
user << "You cannot repair this APC until you remove the electronics still inside."
user << "You cannot repair this APC until you remove the electronics inside."
return
user << "You begin to replace the damaged APC frame..."
if(do_after(user, 50))
user.visible_message(\
"\red [user.name] has replaced the damaged APC frame with new one.",\
"You replace the damaged APC frame with new one.")
"\red [user.name] has replaced the damaged APC frame with a new one.",\
"You replace the damaged APC frame with a new one.")
del(W)
stat &= ~BROKEN
malfai = null
@@ -452,8 +452,8 @@
&& W.w_class >= 3.0 \
&& prob(20) )
opened = 2
user.visible_message("\red The APC cover was knocked down with the [W.name] by [user.name]!", \
"\red You knock down the APC cover with your [W.name]!", \
user.visible_message("\red The APC cover has been knocked down with \the [W.name] by [user.name]!", \
"\red You knock down the APC cover with \the [W.name]!", \
"You hear a loud bang!")
updateicon()
else
@@ -463,9 +463,9 @@
(istype(W, /obj/item/device/multitool) || \
istype(W, /obj/item/weapon/wirecutters)))
return src.attack_hand(user)
user.visible_message("\red The [src.name] has been hit with the [W.name] by [user.name]!", \
"\red You hit the [src.name] with your [W.name]!", \
"You hear bang")
user.visible_message("\red The [src.name] has been hit with \the [W.name] by [user.name]!", \
"\red You hit the [src.name] with \the [W.name]!", \
"You hear a banging sound.")
// attack with hand - remove cell (if cover open) or interact with the APC
@@ -769,7 +769,7 @@
(istype(robot) && (robot in malfai.connected_robots)) \
) \
)
user << "\red \The [src] have AI control disabled!"
user << "\red \The [src] has it's AI control disabled!"
user << browse(null, "window=apc")
user.machine = null
return 0
@@ -782,10 +782,10 @@
if (istype(H))
if(H.getBrainLoss() >= 60)
for(var/mob/M in viewers(src, null))
M << "\red [H] stares cluelessly at [src] and drools."
M << "\red [H] stares cluelessly at \the [src] and drools."
return 0
else if(prob(H.getBrainLoss()))
user << "\red You momentarily forget how to use [src]."
user << "\red You momentarily forget how to use \the [src]."
return 0
return 1
@@ -873,7 +873,7 @@
if (malfai.malfhacking)
malfai << "You are already hacking an APC."
return
malfai << "Beginning override of APC systems. This takes some time, and you cannot perform other actions during the process."
malfai << "Beginning override of APC systems. This will take some time, and you cannot perform other actions during the process."
malfai.malfhack = src
malfai.malfhacking = 1
sleep(600)
@@ -932,7 +932,7 @@
del(src.occupant)
else
src.occupant << "\red Primary core damaged, unable to return core processes."
src.occupant << "\red Primary core damaged, unable to return to core processes."
if(forced)
src.occupant.loc = src.loc
src.occupant.death()
@@ -958,7 +958,7 @@
s.set_up(3, 1, src)
s.start()
for(var/mob/M in viewers(src))
M.show_message("\red The [src.name] suddenly lets out a blast of smoke and some sparks!", 3, "\red You hear sizzling electronics.", 2)
M.show_message("\red The [src.name] suddenly lets out a blast of smoke and sparks!", 3, "\red You hear sizzling electronics.", 2)
/obj/machinery/power/apc/surplus()
Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 182 KiB