New WIP TK system added. To activate your TK click the throw button with an empty hand. This will bring up a tkgrab item. Click on a non-anchored (currently) non mob Object to select it as your "focus". Once a focus is selected so long as you are in range of the focus you can now click somewhere to throw the focus at the target. To quit using TK just drop the tkgrab item.

The captains laser, aegun, and xbow recharge a bit slower now, they recharged so fast that you almost never had to stop shooting. 
Cleaned up the cyborg_modules file
Medical and Security borgs have a hud item.
Medical bots bottles hold 60 of their chemical (up from 30).
Medical bots now have three syringes that are labeled "Syringe-(Inaprovaline)", "Syringe-(Anti-Toxin)",  and "Syringe-(Mixed)".
Medical bots now have two kelotane/dexalin pills (up from 1/ea).
Engineering bots got a new RCD thats just like the old one but the code is cleaner and meant for borgs only.
Husks brains can no longer be cut out.
Healing hands code has been removed till whoever wants to finish it adds it to a place that is NOT the base click procs.
Added veyveyr's nuke team weapon.  Its more or less the Uzi with a new icon.
Nuke teams also got a bit of extra ammo and a few more pinpointers/eguns in their locker.
Glass doors will not set opacity to 1 after they close.



git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2431 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
mport2004@gmail.com
2011-10-27 08:37:40 +00:00
parent a2557781f4
commit 9ca449bf7a
40 changed files with 884 additions and 492 deletions
@@ -733,7 +733,7 @@
if (mutations & COLD_RESISTANCE)
overlays += image("icon" = 'genetics.dmi', "icon_state" = "fire[fat][!lying ? "_s" : "_l"]")
if (mutations & PORTALS)
if (mutations & TK)
overlays += image("icon" = 'genetics.dmi', "icon_state" = "telekinesishead[fat][!lying ? "_s" : "_l"]")
if (mutations & LASER)
@@ -5,7 +5,7 @@
..()
if(check_shields(0, M.name))
if((M != src) && check_shields(0, M.name))
visible_message("\red <B>[M] attempted to touch [src]!</B>")
return 0
@@ -75,7 +75,7 @@ emp_act
visible_message("\red <B>[src] has been attacked in the [hit_area] with [I.name] by [user]!</B>")
if(check_shields(I.force, "the [I.name]"))
if((user != src) && check_shields(I.force, "the [I.name]"))
return 0
var/armor = run_armor_check(affecting, "melee", "Your armor has protected you from a hit to the [hit_area].", "Your armor has softened hit to your [hit_area].")
if(armor >= 2) return 0
@@ -33,7 +33,7 @@
stunned = max(min(stunned, 30),0)
paralysis = max(min(paralysis, 30), 0)
weakened = max(min(weakened, 20), 0)
sleeping = max(min(sleeping, 5), 0)
sleeping = 0
bruteloss = max(bruteloss, 0)
toxloss = max(toxloss, 0)
oxyloss = max(oxyloss, 0)
@@ -177,6 +177,10 @@
src.see_in_dark = 8
src.see_invisible = 2
var/obj/item/borg/sight/hud/hud = (locate(/obj/item/borg/sight/hud) in src)
if(hud && hud.hud) hud.hud.process_hud(src)
if (src.sleep) src.sleep.icon_state = text("sleep[]", src.sleeping)
if (src.rest) src.rest.icon_state = text("rest[]", src.resting)
@@ -736,19 +736,19 @@
module_state_1 = O
O.layer = 20
contents += O
if(istype(module_state_1,/obj/item/weapon/borg/sight))
if(istype(module_state_1,/obj/item/borg/sight))
sight_mode |= module_state_1:sight_mode
else if(!module_state_2)
module_state_2 = O
O.layer = 20
contents += O
if(istype(module_state_2,/obj/item/weapon/borg/sight))
if(istype(module_state_2,/obj/item/borg/sight))
sight_mode |= module_state_2:sight_mode
else if(!module_state_3)
module_state_3 = O
O.layer = 20
contents += O
if(istype(module_state_3,/obj/item/weapon/borg/sight))
if(istype(module_state_3,/obj/item/borg/sight))
sight_mode |= module_state_3:sight_mode
else
src << "You need to disable a module first!"
@@ -777,7 +777,7 @@
if(isnull(module_active))
return
if(module_state_1 == module_active)
if(istype(module_state_1,/obj/item/weapon/borg/sight))
if(istype(module_state_1,/obj/item/borg/sight))
sight_mode &= ~module_state_1:sight_mode
if (client)
client.screen -= module_state_1
@@ -786,7 +786,7 @@
module_state_1 = null
inv1.icon_state = "inv1"
else if(module_state_2 == module_active)
if(istype(module_state_2,/obj/item/weapon/borg/sight))
if(istype(module_state_2,/obj/item/borg/sight))
sight_mode &= ~module_state_2:sight_mode
if (client)
client.screen -= module_state_2
@@ -795,7 +795,7 @@
module_state_2 = null
inv2.icon_state = "inv2"
else if(module_state_3 == module_active)
if(istype(module_state_3,/obj/item/weapon/borg/sight))
if(istype(module_state_3,/obj/item/borg/sight))
sight_mode &= ~module_state_3:sight_mode
if (client)
client.screen -= module_state_3
@@ -808,7 +808,7 @@
module_active = null
if(module_state_1)
if(istype(module_state_1,/obj/item/weapon/borg/sight))
if(istype(module_state_1,/obj/item/borg/sight))
sight_mode &= ~module_state_1:sight_mode
if (client)
client.screen -= module_state_1
@@ -816,7 +816,7 @@
module_state_1 = null
inv1.icon_state = "inv1"
if(module_state_2)
if(istype(module_state_2,/obj/item/weapon/borg/sight))
if(istype(module_state_2,/obj/item/borg/sight))
sight_mode &= ~module_state_2:sight_mode
if (client)
client.screen -= module_state_2
@@ -824,7 +824,7 @@
module_state_2 = null
inv2.icon_state = "inv2"
if(module_state_3)
if(istype(module_state_3,/obj/item/weapon/borg/sight))
if(istype(module_state_3,/obj/item/borg/sight))
sight_mode &= ~module_state_3:sight_mode
if (client)
client.screen -= module_state_3
@@ -2,11 +2,13 @@
name = "robot module"
icon = 'module.dmi'
icon_state = "std_module"
w_class = 2.0
w_class = 100.0
item_state = "electronic"
flags = FPRINT|TABLEPASS | CONDUCT
var/list/modules = list()
var/obj/item/emag
var
list/modules = list()
obj/item/emag = null
emp_act(severity)
if(modules)
@@ -15,253 +17,220 @@
if(emag)
emag.emp_act(severity)
..()
return
New()
src.modules += new /obj/item/device/flash(src)
src.emag = new /obj/item/toy/sword(src)
src.emag.name = "Placeholder Emag Item"
return
proc/respawn_consumable(var/mob/living/silicon/robot/R)
return
/obj/item/weapon/robot_module/standard
name = "standard robot module"
/obj/item/weapon/robot_module/hydroborg
name = "hydroponics robot module"
New()
..()
src.modules += new /obj/item/weapon/melee/baton(src)
src.modules += new /obj/item/weapon/extinguisher(src)
src.modules += new /obj/item/weapon/wrench(src)
src.modules += new /obj/item/weapon/crowbar(src)
src.modules += new /obj/item/device/healthanalyzer(src)
src.emag = new /obj/item/weapon/melee/energy/sword(src)
return
/obj/item/weapon/robot_module/medical
name = "medical robot module"
New()
..()
src.modules += new /obj/item/device/healthanalyzer(src)
for(var/i = 1 to 3)
var/obj/item/weapon/reagent_containers/syringe/S = new /obj/item/weapon/reagent_containers/syringe(src)
switch(i)
if(1) S.name = "Syringe-(Inaprovaline)"
if(2) S.name = "Syringe-(Anti-Toxin)"
if(3) S.name = "Syringe-(Mixed)"
src.modules += S
src.modules += new /obj/item/weapon/reagent_containers/syringe(src)
src.modules += new /obj/item/weapon/reagent_containers/syringe(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/bottle/robot/inaprovaline(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/bottle/robot/antitoxin(src)
for(var/i = 1 to 2)
src.modules += new /obj/item/weapon/reagent_containers/pill/kelotane(src)
for(var/i = 1 to 2)
src.modules += new /obj/item/weapon/reagent_containers/pill/dexalin(src)
src.modules += new /obj/item/weapon/reagent_containers/robodropper(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/beaker(src)
src.modules += new /obj/item/borg/sight/hud/med(src)
src.emag = new /obj/item/weapon/reagent_containers/pill/cyanide(src)
return
respawn_consumable(var/mob/living/silicon/robot/R)
var/list/what = list (
/obj/item/weapon/reagent_containers/pill/kelotane,
/obj/item/weapon/reagent_containers/pill/kelotane,
/obj/item/weapon/reagent_containers/pill/dexalin,
/obj/item/weapon/reagent_containers/pill/dexalin
)
for (var/T in what)
if (!(locate(T) in src.modules))
src.modules -= null
var/O = new T(src)
src.modules += O
if (R.emagged && !src.emag) //thanks to cyborg-900 for uncovering this
src.emag = new /obj/item/weapon/reagent_containers/pill/cyanide(src)
return
/obj/item/weapon/robot_module/engineering
name = "engineering robot module"
New()
..()
src.modules += new /obj/item/weapon/extinguisher(src)
src.modules += new /obj/item/weapon/screwdriver(src)
src.modules += new /obj/item/weapon/weldingtool/largetank(src)
src.modules += new /obj/item/weapon/wrench(src)
src.modules += new /obj/item/device/analyzer(src)
src.modules += new /obj/item/device/flashlight(src)
src.modules += new /obj/item/borg/rcd(src)
src.modules += new /obj/item/device/t_scanner(src)
src.modules += new /obj/item/weapon/crowbar(src)
src.modules += new /obj/item/weapon/wirecutters(src)
src.modules += new /obj/item/device/multitool(src)
var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/metal(src)
M.amount = 50
src.modules += M
var/obj/item/stack/sheet/rglass/G = new /obj/item/stack/sheet/rglass(src)
G.amount = 50
src.modules += G
var/obj/item/weapon/cable_coil/W = new /obj/item/weapon/cable_coil(src)
W.amount = 50
src.modules += W
src.modules += new /obj/item/borg/sight/meson(src)
src.emag = new /obj/item/borg/stun(src)
return
respawn_consumable(var/mob/living/silicon/robot/R)
var/list/what = list (
/obj/item/stack/sheet/metal,
/obj/item/stack/sheet/rglass,
/obj/item/weapon/cable_coil,
)
for (var/T in what)
if (!(locate(T) in src.modules))
src.modules -= null
var/O = new T(src)
src.modules += O
O:amount = 1
return
/obj/item/weapon/robot_module/security
name = "security robot module"
New()
..()
src.modules += new /obj/item/weapon/melee/baton(src)
src.modules += new /obj/item/weapon/handcuffs/cyborg(src)
src.modules += new /obj/item/weapon/gun/energy/taser/cyborg(src)
src.modules += new /obj/item/borg/sight/hud/sec(src)
src.emag = new /obj/item/weapon/gun/energy/laser/cyborg(src)
return
/obj/item/weapon/robot_module/janitor
name = "janitorial robot module"
/*
/obj/item/weapon/robot_module/brobot
name = "brobot robot module"
*/
New()
..()
src.modules += new /obj/item/weapon/cleaner(src)
src.modules += new /obj/item/weapon/mop(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/bucket(src)
src.emag = new /obj/item/weapon/cleaner(src)
var/datum/reagents/R = new/datum/reagents(1000)
src.emag.reagents = R
R.my_atom = src.emag
R.add_reagent("lube", 1000)
src.emag.name = "Lube spray"
return
/obj/item/weapon/robot_module/butler
name = "service robot module"
New()
..()
src.modules += new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
src.modules += new /obj/item/weapon/reagent_containers/food/condiment/enzyme(src)
src.modules += new /obj/item/weapon/pen(src)
var/obj/item/weapon/rsf/M = new /obj/item/weapon/rsf(src)
M.matter = 30
src.modules += M
src.modules += new /obj/item/weapon/reagent_containers/robodropper(src)
var/obj/item/weapon/zippo/L = new /obj/item/weapon/zippo(src)
L.lit = 1
src.modules += L
src.modules += new /obj/item/weapon/tray(src)
src.modules += new /obj/item/weapon/reagent_containers/food/drinks/shaker(src)
src.emag = new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
var/datum/reagents/R = new/datum/reagents(50)
src.emag.reagents = R
R.my_atom = src.emag
R.add_reagent("beer2", 50)
src.emag.name = "Mickey Finn's Special Brew"
return
/obj/item/weapon/robot_module/miner
name = "miner robot module"
obj/item/weapon/robot_module/syndicate
New()
..()
src.modules += new /obj/item/weapon/pickaxe/jackhammer(src)
src.modules += new /obj/item/weapon/shovel(src)
src.modules += new /obj/item/weapon/satchel(src)
src.modules += new /obj/item/borg/sight/meson(src)
src.emag = new /obj/item/borg/stun(src)
return
/obj/item/weapon/robot_module/syndicate
name = "syndicate robot module"
/obj/item/weapon/robot_module/New()//Shit all the mods have
src.modules += new /obj/item/device/flash(src)
src.emag = new /obj/item/toy/sword(src)
src.emag.name = "Placeholder Emag Item"
/obj/item/weapon/robot_module/standard/New()
..()
src.modules += new /obj/item/weapon/melee/baton(src)
src.modules += new /obj/item/weapon/extinguisher(src)
src.modules += new /obj/item/weapon/wrench(src)
src.modules += new /obj/item/weapon/crowbar(src)
src.modules += new /obj/item/device/healthanalyzer(src)
src.emag = new /obj/item/weapon/melee/energy/sword(src)
/*
/obj/item/weapon/robot_module/hydroborg/New()
..()
src.modules += new /obj/item/weapon/minihoe(src)
src.modules += new /obj/item/weapon/pestspray(src)
src.modules += new /obj/item/weapon/plantbgone(src)
src.modules += new /obj/item/nutrient/rh(src)
src.modules += new /obj/item/nutrient/l4z(src)
src.modules += new /obj/item/weapon/rsp(src)
src.modules += new /obj/item/device/analyzer/plant_analyzer(src)
src.emag = new /obj/item/weapon/grown/deathnettle(src)
*/
/obj/item/weapon/robot_module/engineering/New()
..()
src.modules += new /obj/item/weapon/extinguisher(src)
src.modules += new /obj/item/weapon/screwdriver(src)
src.modules += new /obj/item/weapon/weldingtool/largetank(src)
src.modules += new /obj/item/weapon/wrench(src)
src.modules += new /obj/item/device/analyzer(src)
src.modules += new /obj/item/device/flashlight(src)
var/obj/item/weapon/rcd/R = new /obj/item/weapon/rcd(src)
R.matter = 30
src.modules += R
src.modules += new /obj/item/device/t_scanner(src)
src.modules += new /obj/item/weapon/crowbar(src)
src.modules += new /obj/item/weapon/wirecutters(src)
src.modules += new /obj/item/device/multitool(src)
var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/metal(src)
M.amount = 50
src.modules += M
var/obj/item/stack/sheet/rglass/G = new /obj/item/stack/sheet/rglass(src)
G.amount = 50
src.modules += G
var/obj/item/weapon/cable_coil/W = new /obj/item/weapon/cable_coil(src)
W.amount = 50
src.modules += W
src.modules += new /obj/item/weapon/borg/sight/meson(src)
src.emag = new /obj/item/weapon/borg/stun(src)
/obj/item/weapon/robot_module/engineering/respawn_consumable(var/mob/living/silicon/robot/R)
var/list/what = list (
/obj/item/stack/sheet/metal,
/obj/item/stack/sheet/rglass,
/obj/item/weapon/cable_coil,
)
for (var/T in what)
if (!(locate(T) in src.modules))
src.modules -= null
var/O = new T(src)
src.modules += O
O:amount = 1
/obj/item/weapon/robot_module/medical/respawn_consumable(var/mob/living/silicon/robot/R)
var/list/what = list (
/obj/item/weapon/reagent_containers/pill/kelotane,
/obj/item/weapon/reagent_containers/pill/dexalin,
)
for (var/T in what)
if (!(locate(T) in src.modules))
src.modules -= null
var/O = new T(src)
src.modules += O
if (R.emagged && !src.emag) //thanks to cyborg-900 for uncovering this
src.emag = new /obj/item/weapon/reagent_containers/pill/cyanide(src)
/obj/item/weapon/robot_module/medical/New()
..()
src.modules += new /obj/item/device/healthanalyzer(src)
src.modules += new /obj/item/weapon/reagent_containers/syringe(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin(src)
src.modules += new /obj/item/weapon/reagent_containers/pill/kelotane(src)
src.modules += new /obj/item/weapon/reagent_containers/pill/dexalin(src)
//commented out due to law 1
//src.modules += new /obj/item/weapon/scalpel(src)
//src.modules += new /obj/item/weapon/circular_saw(src)
src.modules += new /obj/item/weapon/reagent_containers/robodropper(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/beaker(src)
src.emag = new /obj/item/weapon/reagent_containers/pill/cyanide(src)
/obj/item/weapon/robot_module/butler/New()
..()
src.modules += new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
src.modules += new /obj/item/weapon/reagent_containers/food/condiment/enzyme(src)
src.modules += new /obj/item/weapon/pen(src)
var/obj/item/weapon/rsf/M = new /obj/item/weapon/rsf(src)
M.matter = 30
src.modules += M
src.modules += new /obj/item/weapon/reagent_containers/robodropper(src)
var/obj/item/weapon/zippo/L = new /obj/item/weapon/zippo(src)
L.lit = 1
src.modules += L
src.modules += new /obj/item/weapon/tray(src)
src.modules += new /obj/item/weapon/reagent_containers/food/drinks/shaker(src)
// src.emag = new /obj/item/weapon/reagent_containers/food/snacks/roburgerbig(src)
// src.emag.name = "Last Meal"
src.emag = new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
var/datum/reagents/R = new/datum/reagents(50)
src.emag.reagents = R
R.my_atom = src.emag
R.add_reagent("beer2", 50)
src.emag.name = "Mickey Finn's Special Brew"
/obj/item/weapon/robot_module/security/New()
..()
src.modules += new /obj/item/weapon/melee/baton(src)
src.modules += new /obj/item/weapon/handcuffs/cyborg(src)
src.modules += new /obj/item/weapon/gun/energy/taser/cyborg(src)
src.emag = new /obj/item/weapon/gun/energy/laser/cyborg(src)
/obj/item/weapon/robot_module/janitor/New()
..()
src.modules += new /obj/item/weapon/cleaner(src)
src.modules += new /obj/item/weapon/mop(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/bucket(src)
src.emag = new /obj/item/weapon/cleaner(src)
var/datum/reagents/R = new/datum/reagents(1000)
src.emag.reagents = R
R.my_atom = src.emag
R.add_reagent("lube", 1000)
src.emag.name = "Lube spray"
/obj/item/weapon/robot_module/miner/New()
..()
src.modules += new /obj/item/weapon/pickaxe/jackhammer(src)
src.modules += new /obj/item/weapon/shovel(src)
src.modules += new /obj/item/weapon/satchel(src)
src.modules += new /obj/item/weapon/borg/sight/meson(src)
src.emag = new /obj/item/weapon/borg/stun(src)
/* /obj/item/weapon/robot_module/brobot/New()
..()
src.modules += new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
src.modules += new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
src.modules += new /obj/item/weapon/spacecash(src)
src.emag = new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
var/datum/reagents/R = new/datum/reagents(50)
src.emag.reagents = R
R.my_atom = src.emag
R.add_reagent("beer2", 50)
src.emag.name = "Mickey Finn's Special Brew"
*/ //Merged with Service borg, not a death, just a transformation
obj/item/weapon/robot_module/syndicate/New()
src.modules += new /obj/item/weapon/card/emag(src)
/obj/item/weapon/borg/stun
name = "Electrified Arm"
icon = 'decals.dmi'
icon_state = "shock"
attack(mob/M as mob, mob/living/silicon/robot/user as mob)
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been attacked with [src.name] by [user.name] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to attack [M.name] ([M.ckey])</font>")
user.cell.charge -= 30
if (M.weakened < 5)
M.weakened = 5
if (M.stuttering < 5)
M.stuttering = 5
if (M.stunned < 5)
M.stunned = 5
for(var/mob/O in viewers(M, null))
if (O.client)
O.show_message("\red <B>[user] has prodded [M] with an electrically-charged arm!</B>", 1, "\red You hear someone fall", 2)
/obj/item/weapon/borg/sight
icon = 'decals.dmi'
icon_state = "securearea"
var/sight_mode
/obj/item/weapon/borg/sight/xray
name = "X-ray Vision"
sight_mode = BORGXRAY
/obj/item/weapon/borg/sight/thermal
name = "Thermal Vision"
sight_mode = BORGTHERM
/obj/item/weapon/borg/sight/meson
name = "Meson Vision"
sight_mode = BORGMESON
New()
src.modules += new /obj/item/weapon/card/emag(src)
return