Lawyer now has a purple suit and the job has two slots.

Lowered the number of spare jumpsuits in most of the lockers from 6 to 3.
The old arrival message is now back in.
Finished the Ion Rifle and added one to the armory.  Might need to change it up a bit depending on how well it works.
Bullet_act worked on a bit, EMP effects should work now.
Cyborgs are stunned by EMPs.
Raised the changelings required genome number for multichan at the request of Urist. 


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2175 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
mport2004@gmail.com
2011-09-11 11:39:44 +00:00
parent 6575e3e251
commit e95d16da16
54 changed files with 8678 additions and 8665 deletions

View File

@@ -80,6 +80,18 @@ obj
/atom/proc/emp_act(var/severity)
return
/atom/proc/bullet_act(var/obj/item/projectile/Proj)
if(Proj.effects["emp"])
var/emppulse = Proj.effects["emp"]
if(prob(Proj.effectprob["emp"]))
empulse(src, emppulse, emppulse)
else
empulse(src, 0, emppulse)
// if(istype(Proj ,/obj/item/projectile/beam/pulse))
// src.ex_act(2)
return
/atom/proc/in_contents_of(container)//can take class or object instance as argument
if(ispath(container))
if(istype(src.loc, container))

View File

@@ -73,6 +73,7 @@ var
shuttle_frozen = 0
shuttle_left = 0
tinted_weldhelh = 1 //as soon as the thing is sprited, we'll code in the toggle verb, bot for now, it should stay on by default. -errorage //Until you have the actual functionality for it, don't set this on by default. You're putting the cart before the horse. --DH
lawyer = 0//Checks for a lawyer
captainMax = 1
engineerMax = 5
@@ -98,7 +99,7 @@ var
cargotechMax = 2
hydroponicsMax = 3
librarianMax = 1
lawyerMax = 1
lawyerMax = 2
viroMax = 1
wardenMax = 1
cmoMax = 1

View File

@@ -10,6 +10,7 @@
var/welded = 0
var/wall_mounted = 0 //never solid (You can always pass over it)
flags = FPRINT
var/health = 200//Might be a bit much, dono can always change later
/obj/closet/acloset
desc = "It looks alien!"
@@ -597,6 +598,7 @@
var/icon_broken = "securebroken"
var/icon_off = "secureoff"
var/wall_mounted = 0 //never solid (You can always pass over it)
var/health = 300
/obj/secure_closet/courtroom
name = "Courtroom Locker"

View File

@@ -102,8 +102,6 @@
// RANKS
/obj/item/clothing/under/rank
/obj/item/clothing/under/rank/atmospheric_technician
desc = "It has an Atmospherics rank stripe on it."
name = "Atmospherics Jumpsuit"
@@ -377,26 +375,6 @@
color = "detective"
armor = list(melee = 10, bullet = 5, laser = 5, taser = 5, bomb = 5, bio = 0, rad = 0)
/obj/item/clothing/under/lawyer
desc = "Slick threads."
name = "Lawyer suit"
flags = FPRINT | TABLEPASS
/obj/item/clothing/under/lawyer/black
icon_state = "lawyer_black"
item_state = "lawyer_black"
color = "lawyer_black"
/obj/item/clothing/under/lawyer/red
icon_state = "lawyer_red"
item_state = "lawyer_red"
color = "lawyer_red"
/obj/item/clothing/under/lawyer/blue
icon_state = "lawyer_blue"
item_state = "lawyer_blue"
color = "lawyer_blue"
/obj/item/clothing/under/scratch
name = "White Suit"
desc = "A white suit, suitable for an excellent host"
@@ -496,13 +474,6 @@
flags = FPRINT | TABLEPASS | SUITSPACE
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
/obj/item/clothing/under/bluesuit
name = "Blue Suit"
icon_state = "bluesuit"
item_state = "bluesuit"
color = "bluesuit"
desc = "A classy suit and tie"
/obj/item/clothing/under/spiderman
name = "Deadpool Suit"
desc = "A suit of Deadpool!"

View File

@@ -6,7 +6,7 @@
var/fire_resist = T0C+100
flags = FPRINT | TABLEPASS
var/list/allowed = list(/obj/item/weapon/tank/emergency_oxygen)
armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0, taser = 2, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/suit/bomb_suit
name = "bomb suit"
@@ -86,15 +86,6 @@
allowed = list(/obj/item/weapon/gun/projectile/detective,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/cigpacket,/obj/item/weapon/zippo,/obj/item/device/detective_scanner,/obj/item/device/taperecorder)
armor = list(melee = 75, bullet = 25, laser = 50, taser = 10, bomb = 25, bio = 10, rad = 0)
/obj/item/clothing/suit/judgerobe
name = "judge's robe"
desc = "This robe commands authority."
icon_state = "judge"
item_state = "judge"
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
allowed = list(/obj/item/weapon/cigpacket,/obj/item/weapon/spacecash)
/obj/item/clothing/suit/labcoat
name = "labcoat"
desc = "A suit that protects against minor chemical spills."
@@ -480,14 +471,6 @@
item_state = "imperium_monk"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
/obj/item/clothing/suit/suit
name = "Blue Suit Jacket"
desc = "A snappy dress jacket."
icon_state = "suitjacket_blue_open"
item_state = "suitjacket_blue_open"
body_parts_covered = UPPER_TORSO|ARMS
armor = list(melee = 5, bullet = 2, laser = 2, taser = 2, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/suit/chickensuit
name = "Chicken Suit"
desc = "A suit made long ago by the ancient empire KFC."

View File

@@ -122,7 +122,9 @@
/datum/game_mode/blob/check_finished()
if((stage >= 4)||(stage <= 1))
if(stage <= 1)
return 0
if(stage >= 4)
return 1
for(var/obj/blob/B in blobs)

View File

@@ -105,6 +105,7 @@
bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
update()

View File

@@ -77,7 +77,7 @@
var/datum/objective/absorb/absorb_objective = new
absorb_objective.owner = changeling
absorb_objective.gen_amount_goal()
absorb_objective.gen_amount_goal(8,12)
changeling.objectives += absorb_objective
switch(rand(1,100))

View File

@@ -1382,6 +1382,7 @@ It is possible to destroy the net by the occupant or someone else.
bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
healthcheck()
return

View File

@@ -410,8 +410,8 @@ datum/objective/capture
datum/objective/absorb
proc/gen_amount_goal() //this doesn't work -- should work now, changed it a bit -- Urist
target_amount = rand (4,6)
proc/gen_amount_goal(var/lowbound = 4, var/highbound = 6)
target_amount = rand (lowbound,highbound)
if (ticker)
var/n_p = 1 //autowin
if (ticker.current_state == GAME_STATE_SETTING_UP)
@@ -433,6 +433,8 @@ datum/objective/absorb
else
return 0
/* Isn't suited for global objectives
/*---------CULTIST----------*/

View File

@@ -5,7 +5,7 @@
/datum/game_mode/traitor
name = "traitor"
config_tag = "traitor"
restricted_jobs = list("Cyborg", "Security Officer", "Warden", "Detective", "Head of Security")//Approved by headmins for a week test
restricted_jobs = list("Cyborg", "AI", "Security Officer", "Warden", "Detective", "Head of Security")//Approved by headmins for a week test, if you see this it would be nice if you didn't spread it everywhere
required_players = 0
required_enemies = 1

View File

@@ -503,20 +503,25 @@
src.equip_if_possible(new /obj/item/device/analyzer/plant_analyzer(src), slot_s_store)
if ("Librarian")
src.equip_if_possible(new /obj/item/clothing/under/suit_jacket/red(src), slot_w_uniform)
src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes)
src.equip_if_possible(new /obj/item/weapon/barcodescanner(src), slot_l_hand)
if ("Lawyer") //muskets 160910
src.equip_if_possible(new /obj/item/clothing/under/bluesuit(src), slot_w_uniform)
if ("Lawyer")
if(!lawyer)
lawyer = 1
src.equip_if_possible(new /obj/item/clothing/under/lawyer/bluesuit(src), slot_w_uniform)
src.equip_if_possible(new /obj/item/clothing/suit/lawyer/bluejacket(src), slot_wear_suit)
src.equip_if_possible(new /obj/item/device/pda/lawyer(src), slot_belt)
else
src.equip_if_possible(new /obj/item/clothing/under/lawyer/purpsuit(src), slot_w_uniform)
src.equip_if_possible(new /obj/item/clothing/suit/lawyer/purpjacket(src), slot_wear_suit)
src.equip_if_possible(new /obj/item/device/pda/lawyer(src), slot_belt)
src.equip_if_possible(new /obj/item/clothing/shoes/brown(src), slot_shoes)
src.equip_if_possible(new /obj/item/clothing/suit/suit(src), slot_wear_suit)
src.equip_if_possible(new /obj/item/weapon/storage/backpack(src), slot_back)
src.equip_if_possible(new /obj/item/weapon/storage/box(src.back), slot_in_backpack)
src.equip_if_possible(new /obj/item/device/detective_scanner(src), slot_in_backpack)
src.equip_if_possible(new /obj/item/device/detective_scanner(src), slot_in_backpack)//Why do they even get this?
src.equip_if_possible(new /obj/item/weapon/storage/briefcase(src), slot_l_hand)
src.equip_if_possible(new /obj/item/device/pda/lawyer(src), slot_belt)
if ("Quartermaster")
src.equip_if_possible(new /obj/item/device/radio/headset/heads/qm (src), slot_ears)

View File

@@ -341,7 +341,7 @@ var/list/assistant_occupations = list(
"Assistant" = -1,
"Chaplain" = 1,
"Librarian" = 1,
"Lawyer" = 1,
"Lawyer" = 2,
"Atmospheric Technician" = 4
//"Tourist", //I am not going to implement these jobs at the moment. Just listed it as examples. --rastaf0
//"Monkey",

View File

@@ -253,11 +253,13 @@ Release Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?sr
return
/obj/machinery/portable_atmospherics/canister/bullet_act(var/obj/item/projectile/Proj)
if (Proj.flag == "bullet")
health -= Proj.damage
if(Proj.flag == "bullet")
src.health = 0
spawn( 0 )
healthcheck()
return
..()
return
/obj/machinery/portable_atmospherics/canister/toxins/New()

View File

@@ -81,7 +81,7 @@
/obj/machinery/bot/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
healthcheck()
/obj/machinery/bot/meteorhit()

View File

@@ -234,6 +234,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
attacked = 0
src.health -= Proj.damage
..()
if(prob(45) && Proj.damage > 0) src.spark_system.start()
if (src.health <= 0)
src.die() // the death process :(

View File

@@ -377,8 +377,8 @@
..()
/obj/machinery/shieldwallgen/bullet_act(var/obj/item/projectile/Proj)
storedpower -= Proj.damage
..()
return
@@ -487,15 +487,14 @@
/obj/machinery/shieldwall/bullet_act(var/obj/item/projectile/Proj)
if(needs_power)
var/obj/machinery/shieldwallgen/G
if(prob(50))
G = gen_primary
else
G = gen_secondary
G.storedpower -= Proj.damage
..()
return

View File

@@ -230,6 +230,7 @@
/obj/machinery/turret/bullet_act(var/obj/item/projectile/Proj)
src.health -= Proj.damage
..()
if(prob(45) && Proj.damage > 0) src.spark_system.start()
if (src.health <= 0)
src.die()
@@ -428,6 +429,7 @@
bullet_act(var/obj/item/projectile/Proj)
var/damage = Proj.damage
src.take_damage(damage)
..()
return

View File

@@ -384,6 +384,7 @@
src.log_append_to_last("Armor saved.")
else
call((proc_res["dynbulletdamage"]||src), "dynbulletdamage")(Proj) //calls equipment
..()
return
/obj/mecha/proc/dynbulletdamage(var/obj/item/projectile/Proj)

View File

@@ -14,6 +14,7 @@
/obj/alien/egg/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
healthcheck()
return

View File

@@ -87,6 +87,7 @@
bullet_act(var/obj/item/projectile/Proj)
health -= round(Proj.damage / 2)
..()
healthcheck()
ex_act(severity)

View File

@@ -19,6 +19,7 @@
/obj/alien/resin/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
healthcheck()
return

View File

@@ -103,25 +103,13 @@
del(src)
/obj/closet/bullet_act(var/obj/item/projectile/Proj)
/* Just in case someone gives closets health
if (flag == PROJECTILE_BULLET)
src.health -= 1
src.healthcheck()
return
if (flag != PROJECTILE_LASER)
src.health -= 3
src.healthcheck()
return
else
src.health -= 5
src.healthcheck()
return
*/
if(prob(40) && istype(Proj, /obj/item/projectile/beam/pulse))
health -= Proj.damage
..()
if(health <= 0)
for (var/atom/movable/A as mob|obj in src)
A.loc = src.loc
del(src)
return
// this should probably use dump_contents()

View File

@@ -1,16 +1,10 @@
/obj/closet/wardrobe/New()
new /obj/item/clothing/under/color/blue( src )
new /obj/item/clothing/under/color/blue( src )
new /obj/item/clothing/under/color/blue( src )
new /obj/item/clothing/under/color/blue( src )
new /obj/item/clothing/under/color/blue( src )
new /obj/item/clothing/under/color/blue( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/under/color/blue(src)
new /obj/item/clothing/under/color/blue(src)
new /obj/item/clothing/under/color/blue(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/brown(src)
return
/obj/closet/wardrobe/red/New()
@@ -29,208 +23,147 @@
return
/obj/closet/wardrobe/pink/New()
new /obj/item/clothing/under/color/pink( src )
new /obj/item/clothing/under/color/pink( src )
new /obj/item/clothing/under/color/pink( src )
new /obj/item/clothing/under/color/pink( src )
new /obj/item/clothing/under/color/pink( src )
new /obj/item/clothing/under/color/pink( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/under/color/pink(src)
new /obj/item/clothing/under/color/pink(src)
new /obj/item/clothing/under/color/pink(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/brown(src)
return
/obj/closet/wardrobe/black/New()
new /obj/item/clothing/under/color/black( src )
new /obj/item/clothing/under/color/black( src )
new /obj/item/clothing/under/color/black( src )
new /obj/item/clothing/under/color/black( src )
new /obj/item/clothing/under/color/black( src )
new /obj/item/clothing/under/color/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/head/that( src )
new /obj/item/clothing/head/that( src )
new /obj/item/clothing/head/that( src )
new /obj/item/clothing/under/color/black(src)
new /obj/item/clothing/under/color/black(src)
new /obj/item/clothing/under/color/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/head/that(src)
new /obj/item/clothing/head/that(src)
new /obj/item/clothing/head/that(src)
return
/obj/closet/wardrobe/chaplain_black/New()
//new /obj/item/clothing/suit/imperium_monk( src ) //No. -- Urist
new /obj/item/clothing/under/rank/chaplain( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/suit/nun( src )
new /obj/item/clothing/suit/chaplain_hoodie( src )
new /obj/item/clothing/head/chaplain_hood( src )
new /obj/item/clothing/suit/holidaypriest( src )
new /obj/item/clothing/suit/hastur ( src )
new /obj/item/clothing/head/hasturhood ( src )
new /obj/item/weapon/candlepack( src )
new /obj/item/weapon/candlepack( src )
//new /obj/item/clothing/suit/imperium_monk(src) //No. -- Urist
new /obj/item/clothing/under/rank/chaplain(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/suit/nun(src)
new /obj/item/clothing/suit/chaplain_hoodie(src)
new /obj/item/clothing/head/chaplain_hood(src)
new /obj/item/clothing/suit/holidaypriest(src)
new /obj/item/clothing/suit/hastur (src)
new /obj/item/clothing/head/hasturhood (src)
new /obj/item/weapon/candlepack(src)
new /obj/item/weapon/candlepack(src)
return
/obj/closet/wardrobe/green/New()
new /obj/item/clothing/under/color/green( src )
new /obj/item/clothing/under/color/green( src )
new /obj/item/clothing/under/color/green( src )
new /obj/item/clothing/under/color/green( src )
new /obj/item/clothing/under/color/green( src )
new /obj/item/clothing/under/color/green( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/under/color/green(src)
new /obj/item/clothing/under/color/green(src)
new /obj/item/clothing/under/color/green(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
return
/obj/closet/wardrobe/orange/New()
new /obj/item/clothing/under/color/orange( src )
new /obj/item/clothing/under/color/orange( src )
new /obj/item/clothing/under/color/orange( src )
new /obj/item/clothing/under/color/orange( src )
new /obj/item/clothing/under/color/orange( src )
new /obj/item/clothing/under/color/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/under/color/orange(src)
new /obj/item/clothing/under/color/orange(src)
new /obj/item/clothing/under/color/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
return
/obj/closet/wardrobe/yellow/New()
new /obj/item/clothing/under/color/yellow( src )
new /obj/item/clothing/under/color/yellow( src )
new /obj/item/clothing/under/color/yellow( src )
new /obj/item/clothing/under/color/yellow( src )
new /obj/item/clothing/under/color/yellow( src )
new /obj/item/clothing/under/color/yellow( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/under/color/yellow(src)
new /obj/item/clothing/under/color/yellow(src)
new /obj/item/clothing/under/color/yellow(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
return
/obj/closet/wardrobe/atmospherics_yellow/New()
new /obj/item/clothing/under/rank/atmospheric_technician( src )
new /obj/item/clothing/under/rank/atmospheric_technician( src )
new /obj/item/clothing/under/rank/atmospheric_technician( src )
new /obj/item/clothing/under/rank/atmospheric_technician( src )
new /obj/item/clothing/under/rank/atmospheric_technician( src )
new /obj/item/clothing/under/rank/atmospheric_technician( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/under/rank/atmospheric_technician(src)
new /obj/item/clothing/under/rank/atmospheric_technician(src)
new /obj/item/clothing/under/rank/atmospheric_technician(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
return
/obj/closet/wardrobe/engineering_yellow/New()
new /obj/item/clothing/under/rank/engineer( src )
new /obj/item/clothing/under/rank/engineer( src )
new /obj/item/clothing/under/rank/engineer( src )
new /obj/item/clothing/under/rank/engineer( src )
new /obj/item/clothing/under/rank/engineer( src )
new /obj/item/clothing/under/rank/engineer( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/under/rank/engineer(src)
new /obj/item/clothing/under/rank/engineer(src)
new /obj/item/clothing/under/rank/engineer(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
return
/obj/closet/wardrobe/white/New()
new /obj/item/clothing/under/color/white( src )
new /obj/item/clothing/under/color/white( src )
new /obj/item/clothing/under/color/white( src )
new /obj/item/clothing/under/color/white( src )
new /obj/item/clothing/under/color/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
//new /obj/item/weapon/storage/stma_kit( src )
//new /obj/item/clothing/suit/labcoat(src)
//new /obj/item/clothing/suit/labcoat(src)
//new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/under/color/white(src)
new /obj/item/clothing/under/color/white(src)
new /obj/item/clothing/under/color/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
return
/obj/closet/wardrobe/toxins_white/New()
new /obj/item/clothing/under/rank/scientist( src )
new /obj/item/clothing/under/rank/scientist( src )
new /obj/item/clothing/under/rank/scientist( src )
new /obj/item/clothing/under/rank/scientist( src )
new /obj/item/clothing/under/rank/scientist( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/weapon/storage/stma_kit( src )
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
return
/obj/closet/wardrobe/genetics_white/New()
new /obj/item/clothing/under/rank/geneticist( src )
new /obj/item/clothing/under/rank/geneticist( src )
new /obj/item/clothing/under/rank/geneticist( src )
new /obj/item/clothing/under/rank/geneticist( src )
new /obj/item/clothing/under/rank/geneticist( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/weapon/storage/stma_kit( src )
new /obj/item/clothing/under/rank/geneticist(src)
new /obj/item/clothing/under/rank/geneticist(src)
new /obj/item/clothing/under/rank/geneticist(src)
new /obj/item/clothing/under/rank/geneticist(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/weapon/storage/stma_kit(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/suit/labcoat(src)
return
/obj/closet/wardrobe/grey/New()
new /obj/item/clothing/under/color/grey( src )
new /obj/item/clothing/under/color/grey( src )
new /obj/item/clothing/under/color/grey( src )
new /obj/item/clothing/under/color/grey( src )
new /obj/item/clothing/under/color/grey( src )
new /obj/item/clothing/under/color/grey( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/shoes/black( src )
new /obj/item/clothing/under/color/grey(src)
new /obj/item/clothing/under/color/grey(src)
new /obj/item/clothing/under/color/grey(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
return
/obj/closet/wardrobe/mixed/New()
new /obj/item/clothing/under/color/blue( src )
new /obj/item/clothing/under/color/blue( src )
new /obj/item/clothing/under/color/blue( src )
new /obj/item/clothing/under/color/pink( src )
new /obj/item/clothing/under/color/pink( src )
new /obj/item/clothing/under/color/pink( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/shoes/brown( src )
return
/obj/closet/lawcloset/New()
new /obj/item/clothing/under/lawyer/black( src )
new /obj/item/clothing/under/lawyer/red ( src )
new /obj/item/clothing/under/lawyer/blue ( src )
new /obj/item/clothing/under/color/white(src)
new /obj/item/clothing/under/color/blue(src)
new /obj/item/clothing/under/color/yellow(src)
new /obj/item/clothing/under/color/green(src)
new /obj/item/clothing/under/color/orange(src)
new /obj/item/clothing/under/color/pink(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/white(src)
return
/obj/closet/lawcloset/New()
new /obj/item/clothing/under/lawyer/black(src)
new /obj/item/clothing/under/lawyer/red(src)
new /obj/item/clothing/under/lawyer/bluesuit(src)
new /obj/item/clothing/suit/lawyer/bluejacket(src)
new /obj/item/clothing/under/lawyer/purpsuit(src)
new /obj/item/clothing/suit/lawyer/purpjacket(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/weapon/storage/briefcase(src)
new /obj/item/weapon/storage/briefcase(src)

View File

@@ -20,6 +20,7 @@
bullet_act()
for(var/mob/M in src)
M << "\red Your chameleon-projector deactivates."
..()
master.disrupt()
relaymove(var/mob/user, direction)
if(can_move)

View File

@@ -15,16 +15,12 @@
src.health -= 5
src.healthcheck()
/obj/displaycase/bullet_act(var/obj/item/projectile/Proj)
if (Proj.flag == "bullet")
src.health -= 10
src.healthcheck()
return
else
src.health -= 4
src.healthcheck()
return
/obj/displaycase/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
src.healthcheck()
return
/obj/displaycase/blob_act()

View File

@@ -180,7 +180,7 @@
effectprob["weak"] = 25
ion
name = "electrode"
name = "ion bolt"
icon_state = "ice_2"
flag = "taser"
damage = 0
@@ -188,6 +188,7 @@
New()
..()
effects["emp"] = 1
effectprob["emp"] = 80
stunshot
name = "stunshot"
@@ -1249,7 +1250,7 @@
desc = "A man portable anti-armor weapon designed to disable mechanical threats"
icon_state = "ionrifle"
fire_sound = 'Laser.ogg'
origin_tech = null
origin_tech = "combat=3;magnets=2"//This could likely be changed up a bit
charge_cost = 100
load_into_chamber()

View File

@@ -124,18 +124,13 @@ STUN BATON
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been attacked with [src.name] by [user.name] ([user.ckey]) (INTENT: [uppertext(user.a_intent)])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to attack [M.name] ([M.ckey]) (INTENT: [uppertext(user.a_intent)])</font>")
if(isrobot(M))
..()
return
if (status == 0 || (status == 1 && charges ==0))
if(user.a_intent == "hurt")
if(!..()) return
/* if (!istype(H:r_hand, /obj/item/weapon/shield/riot) && prob(40))
for(var/mob/O in viewers(M, null))
if (O.client) O.show_message(text("\red <B>[] has blocked []'s stun baton with the riot shield!</B>", M, user), 1, "\red You hear a cracking sound", 2)
return
if (!istype(H:l_hand, /obj/item/weapon/shield/riot) && prob(40))
for(var/mob/O in viewers(M, null))
if (O.client) O.show_message(text("\red <B>[] has blocked []'s stun baton with the riot shield!</B>", M, user), 1, "\red You hear a cracking sound", 2)
return*/
if (M.weakened < 5 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.weakened = 5
for(var/mob/O in viewers(M))
@@ -153,14 +148,6 @@ STUN BATON
flick("baton_active", src)
if (user.a_intent == "hurt")
if(!..()) return
/* if (!istype(H:r_hand, /obj/item/weapon/shield/riot) && prob(40))
for(var/mob/O in viewers(M, null))
if (O.client) O.show_message(text("\red <B>[] has blocked []'s stun baton with the riot shield!</B>", M, user), 1, "\red You hear a cracking sound", 2)
return
if (!istype(H:l_hand, /obj/item/weapon/shield/riot) && prob(40))
for(var/mob/O in viewers(M, null))
if (O.client) O.show_message(text("\red <B>[] has blocked []'s stun baton with the riot shield!</B>", M, user), 1, "\red You hear a cracking sound", 2)
return*/
playsound(src.loc, 'Genhit.ogg', 50, 1, -1)
if(isrobot(user))
var/mob/living/silicon/robot/R = user
@@ -174,14 +161,6 @@ STUN BATON
if (M.stunned < 1 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stunned = 1
else
/* if (!istype(H:r_hand, /obj/item/weapon/shield/riot) && prob(40))
for(var/mob/O in viewers(M, null))
if (O.client) O.show_message(text("\red <B>[] has blocked []'s stun baton with the riot shield!</B>", M, user), 1, "\red You hear a cracking sound", 2)
return
if (!istype(H:l_hand, /obj/item/weapon/shield/riot) && prob(40))
for(var/mob/O in viewers(M, null))
if (O.client) O.show_message(text("\red <B>[] has blocked []'s stun baton with the riot shield!</B>", M, user), 1, "\red You hear a cracking sound", 2)
return*/
playsound(src.loc, 'Egloves.ogg', 50, 1, -1)
if(isrobot(user))
var/mob/living/silicon/robot/R = user

View File

@@ -29,16 +29,12 @@
src.health -= 5
src.healthcheck()
/obj/lamarr/bullet_act(var/obj/item/projectile/Proj)
if (Proj.flag == "bullet")
src.health -= 10
src.healthcheck()
return
else
src.health -= 4
src.healthcheck()
return
/obj/lamarr/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
src.healthcheck()
return
/obj/lamarr/blob_act()

View File

@@ -137,21 +137,9 @@
return
/obj/secure_closet/bullet_act(var/obj/item/projectile/Proj)
/* Just in case someone gives closets health
if (flag == PROJECTILE_BULLET)
src.health -= 1
src.healthcheck()
return
if (flag != PROJECTILE_LASER)
src.health -= 3
src.healthcheck()
return
else
src.health -= 5
src.healthcheck()
return
*/
if(prob(1.5))
health -= Proj.damage
..()
if(health <= 0)
for (var/atom/movable/A as mob|obj in src)
A.loc = src.loc
del(src)

View File

@@ -121,12 +121,6 @@
//PROJECTILE_BOLT = 5 crossbow
//PROJECTILE_WEAKBULLET = 6 detective's revolver
/atom/proc/bullet_act(var/obj/item/projectile/Proj)
if(istype(Proj ,/obj/item/projectile/beam/pulse))
src.ex_act(2)
return
/turf/Entered(atom/A as mob|obj)
..()
if ((A && A.density && !( istype(A, /obj/beam) )))

View File

@@ -1,19 +1,11 @@
/obj/window/bullet_act(var/obj/item/projectile/Proj)
if(Proj.flag == "bullet")
if(!reinf)
new /obj/item/weapon/shard( src.loc )
//SN src = null
src.density = 0
del(src)
else
health -= Proj.damage
if(health <=0)
new /obj/item/weapon/shard( src.loc )
new /obj/item/stack/rods( src.loc )
src.density = 0
del(src)
health -= Proj.damage
..()
if(health <=0)
new /obj/item/weapon/shard( src.loc )
new /obj/item/stack/rods( src.loc )
src.density = 0
del(src)
return
/obj/window/ex_act(severity)

View File

@@ -26,6 +26,13 @@
/turf/ex_act(severity)
return 0
/turf/bullet_act(var/obj/item/projectile/Proj)
if(istype(Proj ,/obj/item/projectile/beam/pulse))
src.ex_act(2)
..()
return
/turf/Enter(atom/movable/mover as mob|obj, atom/forget as mob|obj|turf|area)
if (!mover || !isturf(mover.loc))
return 1

View File

@@ -0,0 +1,64 @@
/*Contains most of the "Law" uniforms*/
/obj/item/clothing/under/lawyer
desc = "Slick threads."
name = "Lawyer suit"
flags = FPRINT | TABLEPASS
/obj/item/clothing/under/lawyer/black
icon_state = "lawyer_black"
item_state = "lawyer_black"
color = "lawyer_black"
/obj/item/clothing/under/lawyer/red
icon_state = "lawyer_red"
item_state = "lawyer_red"
color = "lawyer_red"
/obj/item/clothing/under/lawyer/blue
icon_state = "lawyer_blue"
item_state = "lawyer_blue"
color = "lawyer_blue"
/obj/item/clothing/under/lawyer/bluesuit
name = "Blue Suit"
desc = "A classy suit and tie"
icon_state = "bluesuit"
item_state = "bluesuit"
color = "bluesuit"
/obj/item/clothing/suit/lawyer/bluejacket
name = "Blue Suit Jacket"
desc = "A snappy dress jacket."
icon_state = "suitjacket_blue_open"
item_state = "suitjacket_blue_open"
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/under/lawyer/purpsuit
name = "Purple Suit"
icon_state = "lawyer_purp"
item_state = "lawyer_purp"
color = "lawyer_purp"
/obj/item/clothing/suit/lawyer/purpjacket
name = "Purple Suit Jacket"
desc = "A snappy dress jacket."
icon_state = "suitjacket_purp"
item_state = "suitjacket_purp"
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/suit/judgerobe
name = "judge's robe"
desc = "This robe commands authority."
icon_state = "judge"
item_state = "judge"
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
allowed = list(/obj/item/weapon/cigpacket,/obj/item/weapon/spacecash)

View File

@@ -68,6 +68,7 @@ Contains the procs that control attacking critters
bullet_act(var/obj/item/projectile/Proj)
TakeDamage(Proj.damage)
..()
ex_act(severity)

View File

@@ -177,6 +177,13 @@
else
eye_blurry += Proj.effects["eyeblur"]
if(Proj.effects["emp"])
var/emppulse = Proj.effects["emp"]
if(prob(Proj.effectprob["emp"]))
empulse(src, emppulse, emppulse)
else
empulse(src, 0, emppulse)
return
/mob/living/carbon/alien/humanoid/emp_act(severity)

View File

@@ -153,6 +153,13 @@
else
eye_blurry += Proj.effects["eyeblur"]
if(Proj.effects["emp"])
var/emppulse = Proj.effects["emp"]
if(prob(Proj.effectprob["emp"]))
empulse(src, emppulse, emppulse)
else
empulse(src, 0, emppulse)
return
/mob/living/carbon/alien/larva/emp_act(severity)

View File

@@ -400,6 +400,13 @@
else
eye_blurry += P.effects["eyeblur"]
if(P.effects["emp"])
var/emppulse = P.effects["emp"]
if(prob(P.effectprob["emp"]))
empulse(src, emppulse, emppulse)
else
empulse(src, 0, emppulse)
return
/mob/living/carbon/human/emp_act(severity)

View File

@@ -187,6 +187,14 @@
// ~~~~ N
// Metroids aren't effected by extra status effects. DO NOT NERF THIS PLZ THNX - LOVE, DOOHL 3===========D ~~~~ HONK
// ~~~~ H
//EMP is special and yes they are because emp
if(Proj.effects["emp"])
var/emppulse = Proj.effects["emp"]
if(prob(Proj.effectprob["emp"]))
empulse(src, emppulse, emppulse)
else
empulse(src, 0, emppulse)
/mob/living/carbon/metroid/emp_act(severity)
powerlevel = 0 // oh no, the power!

View File

@@ -184,6 +184,14 @@
eye_blurry = Proj.effects["eyeblur"]
else
eye_blurry += Proj.effects["eyeblur"]
if(Proj.effects["emp"])
var/emppulse = Proj.effects["emp"]
if(prob(Proj.effectprob["emp"]))
empulse(src, emppulse, emppulse)
else
empulse(src, 0, emppulse)
return
/mob/living/carbon/monkey/hand_p(mob/M as mob)

View File

@@ -87,6 +87,8 @@
else
eye_blurry += Proj.effects["eyeblur"]
..()
/mob/living/proc/updatehealth()
if (!src.nodamage)

View File

@@ -268,6 +268,14 @@
// AI bullet code is pretty simple. No other effects really need to be added.
if(!Proj.nodamage) bruteloss += Proj.damage
if(Proj.effects["emp"])
var/emppulse = Proj.effects["emp"]
if(prob(Proj.effectprob["emp"]))
empulse(src, emppulse, emppulse)
else
empulse(src, 0, emppulse)
updatehealth()

View File

@@ -117,6 +117,12 @@
/mob/living/silicon/pai/bullet_act(var/obj/item/projectile/Proj)
bruteloss += Proj.damage
if(Proj.effects["emp"])
var/emppulse = Proj.effects["emp"]
if(prob(Proj.effectprob["emp"]))
empulse(src, emppulse, emppulse)
else
empulse(src, 0, emppulse)
updatehealth()
return

View File

@@ -278,6 +278,14 @@
/mob/living/silicon/robot/bullet_act(var/obj/item/projectile/Proj)
if(!Proj.nodamage) bruteloss += Proj.damage
if(Proj.effects["emp"])
var/emppulse = Proj.effects["emp"]
if(prob(Proj.effectprob["emp"]))
empulse(src, emppulse, emppulse)
else
empulse(src, 0, emppulse)
updatehealth()
if(prob(75) && Proj.damage > 0) spark_system.start()
return

View File

@@ -8,7 +8,13 @@
return
/mob/living/silicon/emp_act(severity)
src.take_organ_damage(60)
switch(severity)
if(1)
src.take_organ_damage(40)
src.stunned = max(src.stunned,rand(5,10))
if(2)
src.take_organ_damage(20)
src.stunned = max(src.stunned,rand(1,5))
flick("noise", src:flash)
src << "\red <B>*BZZZT*</B>"
src << "\red Warning: Electromagnetic pulse detected."

View File

@@ -295,8 +295,7 @@ mob/new_player
var/mob/living/silicon/ai/announcer = pick(ailist)
if(character.mind)
if((character.mind.assigned_role != "Cyborg") && (character.mind.special_role != "MODE"))
announcer.say("[character.real_name] has been sent from Centcom to fill the job of [rank] on [station_name].")
//announcer.say("[character.real_name], the [rank], has awoken from cryo sleep.") -Old Message
announcer.say("[character.real_name] has signed up as [rank].")
proc/ManifestLateSpawn(var/mob/living/carbon/human/H, icon/H_icon) // Attempted fix to add late joiners to various databases -- TLE

View File

@@ -175,6 +175,12 @@ field_generator power level display
if(Proj.flag != "bullet")
power += Proj.damage
update_icon()
if(Proj.effects["emp"])
var/emppulse = Proj.effects["emp"]
if(prob(Proj.effectprob["emp"]))
empulse(src, emppulse, emppulse)
else
empulse(src, 0, emppulse)
return

View File

@@ -31,6 +31,7 @@ var/global/list/uneatable = list(
consume_range = 0 //How many tiles out do we eat
event_chance = 15 //Prob for event each tick
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
New(loc, var/starting_energy = 50, var/temp = 0)
@@ -269,10 +270,17 @@ var/global/list/uneatable = list(
move(var/movement_dir = 0)
if(!move_self)
return 0
if(!(movement_dir in cardinal))
movement_dir = pick(NORTH, SOUTH, EAST, WEST)
if(target && prob(80))
movement_dir = get_dir(src,target) //moves to a singulo beacon, if there is one
else if(!(movement_dir in cardinal))
movement_dir = pick(NORTH, SOUTH, EAST, WEST)
if(movement_dir == last_failed_movement)
var/list/L = new/list(NORTH, SOUTH, EAST, WEST)
L.Remove(last_failed_movement)
movement_dir = pick(L)
if(current_size >= 9)//The superlarge one does not care about things in its way
spawn(0)
step(src, movement_dir)
@@ -280,9 +288,12 @@ var/global/list/uneatable = list(
step(src, movement_dir)
return 1
else if(check_turfs_in(movement_dir))
last_failed_movement = 0//Reset this because we moved
spawn(0)
step(src, movement_dir)
return 1
else
last_failed_movement = movement_dir
return 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -84,6 +84,7 @@
#define FILE_DIR "code/modules/clothing"
#define FILE_DIR "code/modules/clothing/glasses"
#define FILE_DIR "code/modules/clothing/spacesuits"
#define FILE_DIR "code/modules/clothing/uniforms"
#define FILE_DIR "code/modules/critters"
#define FILE_DIR "code/modules/critters/hivebots"
#define FILE_DIR "code/modules/food"
@@ -131,6 +132,7 @@
#define FILE_DIR "icons/effects"
#define FILE_DIR "icons/misc"
#define FILE_DIR "icons/mob"
#define FILE_DIR "icons/mob/huds"
#define FILE_DIR "icons/obj"
#define FILE_DIR "icons/obj/assemblies"
#define FILE_DIR "icons/obj/atmospherics"
@@ -693,6 +695,7 @@
#include "code\modules\clothing\spacesuits\rig.dm"
#include "code\modules\clothing\spacesuits\syndi.dm"
#include "code\modules\clothing\spacesuits\void.dm"
#include "code\modules\clothing\uniforms\lawyer.dm"
#include "code\modules\critters\critter.dm"
#include "code\modules\critters\critter_AI.dm"
#include "code\modules\critters\critter_defenses.dm"