Added Spacevines to the random events. Added a spawn space-vines option to the secrets panel.

Fixes issue 250 (borg door bug)
Fixed silicon interactions with engineering equipment.
Fixed access lists for radiation collectors, so locking them actually serves a purpose. Fixed using crowbars on them.
Borgs can name themselves upon module selection (unless a roboticist has named them previously by using a pen)
To avoid Borgs griefing and then changing their name by selecting a module, borgs are now unable to move independently until they choose a module.
New sprites for spacevines are on the way. So you'll have to tolerate my crappy stand-ins for a bit until he is finished with them.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3128 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
elly1989@rocketmail.com
2012-02-14 20:29:58 +00:00
parent 8619772bd8
commit 0a80f91f2c
22 changed files with 194 additions and 89 deletions
+16 -12
View File
@@ -7,6 +7,7 @@
anchored = 0
density = 1
directwired = 1
req_access = list(access_engine)
// use_power = 0
var
obj/item/weapon/tank/plasma/P = null
@@ -26,15 +27,14 @@
attack_hand(mob/user as mob)
if(anchored)
if(!src.locked || istype(user, /mob/living/silicon))
if(!src.locked)
toggle_power()
user.visible_message("[user.name] turns the [src.name] [active? "on":"off"].", \
"You turn the [src.name] [active? "on":"off"].")
return
else
if(src.locked)
user << "\red The controls are locked."
return
user << "\red The controls are locked!"
return
..()
@@ -44,10 +44,10 @@
return 1
else if(istype(W, /obj/item/weapon/tank/plasma))
if(!src.anchored)
user << "The [src] needs to be secured to the floor first."
user << "\red The [src] needs to be secured to the floor first."
return 1
if(src.P)
user << "\red There appears to already be a plasma tank loaded!"
user << "\red There's already a plasma tank loaded."
return 1
src.P = W
W.loc = src
@@ -56,28 +56,32 @@
user.u_equip(W)
updateicon()
else if(istype(W, /obj/item/weapon/crowbar))
if(P)
if(P && !src.locked)
eject()
return 1
else if(istype(W, /obj/item/weapon/wrench))
if(P)
user << "\red Remove the plasma tank first."
user << "\blue Remove the plasma tank first."
return 1
playsound(src.loc, 'Ratchet.ogg', 75, 1)
src.anchored = !src.anchored
user.visible_message("[user.name] [anchored? "secures":"unsecures"] the [src.name].", \
"You [anchored? "secure":"undo"] the external bolts.", \
"You hear ratchet")
"You hear a ratchet")
if(anchored)
connect_to_network()
else
disconnect_from_network()
else if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (src.allowed(user))
src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]"
if(active)
src.locked = !src.locked
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
else
src.locked = 0 //just in case it somehow gets locked
user << "\red The controls can only be locked when the [src] is active"
else
user << "\red Access denied."
user << "\red Access denied!"
return 1
else
..()
+15 -12
View File
@@ -47,7 +47,7 @@
attack_hand(mob/user as mob)
src.add_fingerprint(user)
if(state == 2)
if(!src.locked || istype(user, /mob/living/silicon))
if(!src.locked)
if(src.active==1)
src.active = 0
user << "You turn off the [src]."
@@ -60,9 +60,9 @@
src.use_power = 2
update_icon()
else
user << "The controls are locked!"
user << "\red The controls are locked!"
else
user << "The [src] needs to be firmly secured to the floor first."
user << "\red The [src] needs to be firmly secured to the floor first."
return 1
@@ -90,8 +90,7 @@
src.fire_delay = rand(20,100)
src.shot_number = 0
use_power(1000)
var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc )
A.icon_state = "emitter"
var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc )
playsound(src.loc, 'emitter.ogg', 25, 1)
if(prob(35))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
@@ -128,14 +127,14 @@
playsound(src.loc, 'Ratchet.ogg', 75, 1)
user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the external reinforcing bolts to the floor.", \
"You hear ratchet")
"You hear a ratchet")
src.anchored = 1
if(1)
state = 0
playsound(src.loc, 'Ratchet.ogg', 75, 1)
user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \
"You undo the external reinforcing bolts.", \
"You hear ratchet")
"You hear a ratchet")
src.anchored = 0
if(2)
user << "\red The [src.name] needs to be unwelded from the floor."
@@ -160,7 +159,7 @@
user << "You weld the [src] to the floor."
W:welding = 1
else
user << "\blue You need more welding fuel to complete this task."
user << "\red You need more welding fuel to complete this task."
if(2)
if (W:remove_fuel(0,user))
W:welding = 2
@@ -173,16 +172,20 @@
user << "You cut the [src] free from the floor."
W:welding = 1
else
user << "\blue You need more welding fuel to complete this task."
user << "\red You need more welding fuel to complete this task."
return
if(istype(W, /obj/item/weapon/card/id))//The slot is too small for PDAs
if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))
if(emagged)
user << "\red The lock seems to be broken"
return
if(src.allowed(user))
src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]"
if(active)
src.locked = !src.locked
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
else
src.locked = 0 //just in case it somehow gets locked
user << "\red The controls can only be locked when the [src] is online"
else
user << "\red Access denied."
return
@@ -190,7 +190,6 @@ field_generator power level display
src.cleanup()
update_icon()
turn_on()
active = 1
warming_up = 1
@@ -342,3 +341,15 @@ field_generator power level display
connected_gens.Remove(FG)
connected_gens = list()
clean_up = 0
//This is here to help fight the "hurr durr, release singulo cos nobody will notice before the
//singulo eats the evidence". It's not fool-proof but better than nothing.
//I want to avoid using global variables.
spawn(1)
var/temp = 1 //stops spam
for(var/obj/machinery/singularity/O in world)
if(O.last_warning && temp)
if((world.time - O.last_warning) > 50) //to stop message-spam
temp = 0
message_admins("A singulo exists and a containment field has failed.",1)
O.last_warning = world.time
+2 -2
View File
@@ -42,11 +42,11 @@
if(anchored)
user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the [src.name] to the floor.", \
"You hear ratchet")
"You hear a ratchet")
else
user.visible_message("[user.name] unsecures [src.name] from the floor.", \
"You unsecure the [src.name] from the floor.", \
"You hear ratchet")
"You hear a ratchet")
return
return ..()
@@ -29,8 +29,17 @@ var/global/list/uneatable = list(
target = null //its target. moves towards the target if it has one
last_failed_movement = 0//Will not move in the same dir if it couldnt before, will help with the getting stuck on fields thing
teleport_del = 0
last_warning
New(loc, var/starting_energy = 50, var/temp = 0)
//CARN: admin-alert for chuckle-fuckery.
last_warning = world.time
var/count = 0
for(var/obj/machinery/containment_field/CF in world)
count = 1
break
if(!count) message_admins("A singulo has been created without containment fields active ([x],[y],[z])",1)
src.energy = starting_energy
if(temp)
spawn(temp)