Merge branch 'master' of https://github.com/tgstation/-tg-station into hudwhyyoudothistome

Conflicts:
	code/modules/hydroponics/hydroponics.dm
This commit is contained in:
tkdrg
2014-12-08 13:48:22 -03:00
172 changed files with 674 additions and 511 deletions
@@ -1400,7 +1400,7 @@
"aAV" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"})
"aAW" = (/obj/structure/mirror{pixel_x = 28},/obj/machinery/shower{tag = "icon-shower (WEST)"; icon_state = "shower"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"})
"aAX" = (/obj/machinery/washing_machine,/turf/simulated/floor/plasteel{icon_state = "barber"},/area/crew_quarters/sleep)
"aAY" = (/obj/structure/table,/obj/item/clothing/under/suit_jacket/female{pixel_x = 3; pixel_y = 1},/obj/item/clothing/under/suit_jacket/really_black{pixel_x = -2; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/obj/item/clothing/tie/waistcoat,/obj/item/clothing/suit/lawyer/blackjacket,/obj/item/clothing/under/suit_jacket/red,/obj/item/clothing/tie/black,/obj/item/clothing/under/lawyer/blacksuit,/turf/simulated/floor/plasteel{icon_state = "barber"},/area/crew_quarters/sleep)
"aAY" = (/obj/structure/table,/obj/item/clothing/under/suit_jacket/female{pixel_x = 3; pixel_y = 1},/obj/item/clothing/under/suit_jacket/really_black{pixel_x = -2; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/obj/item/clothing/tie/waistcoat,/obj/item/clothing/suit/toggle/lawyer/black,/obj/item/clothing/under/suit_jacket/red,/obj/item/clothing/tie/black,/obj/item/clothing/under/lawyer/blacksuit,/turf/simulated/floor/plasteel{icon_state = "barber"},/area/crew_quarters/sleep)
"aAZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/sleep)
"aBa" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor/plasteel,/area/crew_quarters/sleep)
"aBb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/crew_quarters/sleep)
+14 -11
View File
@@ -9,7 +9,7 @@
/atom/movable/attackby(obj/item/W, mob/living/user)
user.do_attack_animation(src)
if(W && !(W.flags&NOBLUDGEON))
visible_message("<span class='danger'>[src] has been hit by [user] with [W].</span>")
visible_message("<span class='danger'>[user] has hit [src] with [W].</span>")
/mob/living/attackby(obj/item/I, mob/user)
user.changeNext_move(CLICK_CD_MELEE)
@@ -23,18 +23,21 @@
if(istype(location, /turf/simulated))
location.add_blood_floor(src)
var/showname = "."
if(user)
showname = " by [user]!"
user.do_attack_animation(src)
if(!(user in viewers(src, null)))
showname = "."
var/message_verb = ""
if(I.attack_verb && I.attack_verb.len)
src.visible_message("<span class='danger'>[src] has been [pick(I.attack_verb)] with [I][showname]</span>",
"<span class='userdanger'>[src] has been [pick(I.attack_verb)] with [I][showname]</span>")
message_verb = "[pick(I.attack_verb)]"
else if(I.force)
src.visible_message("<span class='danger'>[src] has been attacked with [I][showname]</span>",
"<span class='userdanger'>[src] has been attacked with [I][showname]</span>")
message_verb = "attacked"
var/attack_message = "[src] has been [message_verb] with [I]."
if(user)
user.do_attack_animation(src)
if(user in viewers(src, null))
attack_message = "[user] has [message_verb] [src] with [I]!"
if(message_verb)
visible_message("<span class='danger'>[attack_message]</span>",
"<span class='userdanger'>[attack_message]</span>")
// Proximity_flag is 1 if this afterattack was called on something adjacent, in your square, or on your person.
// Click parameters is the params string from byond Click() code, see that documentation.
+1 -1
View File
@@ -132,7 +132,7 @@
var/sandbox_autoclose = 0 // close the sandbox panel after spawning an item, potentially reducing griff
var/default_laws = 0 //Controls what laws the AI spawns with.
var/silicon_max_law_amount = 0
var/silicon_max_law_amount = 12
/datum/configuration/New()
var/list/L = typesof(/datum/game_mode) - /datum/game_mode
+1 -1
View File
@@ -45,7 +45,7 @@ var/global/datum/controller/supply_shuttle/supply_shuttle
return 0
return ..()
/obj/structure/plasticflaps/ex_act(severity, specialty)
/obj/structure/plasticflaps/ex_act(severity, target)
..()
switch(severity)
if (1)
+5 -7
View File
@@ -959,10 +959,8 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,
/obj/item/weapon/storage/book/bible/booze,
/obj/item/weapon/storage/book/bible/booze,
/obj/item/clothing/suit/chaplain_hoodie,
/obj/item/clothing/head/chaplain_hood,
/obj/item/clothing/suit/chaplain_hoodie,
/obj/item/clothing/head/chaplain_hood)
/obj/item/clothing/suit/toggle/chaplain_hoodie,
/obj/item/clothing/suit/toggle/chaplain_hoodie)
cost = 40 // it costs so much because the Space Church is ran by Space Jews
containername = "religious supplies crate"
@@ -1147,11 +1145,11 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/clothing/under/assistantformal,
/obj/item/clothing/under/assistantformal,
/obj/item/clothing/under/lawyer/bluesuit,
/obj/item/clothing/suit/lawyer/bluejacket,
/obj/item/clothing/suit/toggle/lawyer,
/obj/item/clothing/under/lawyer/purpsuit,
/obj/item/clothing/suit/lawyer/purpjacket,
/obj/item/clothing/suit/toggle/lawyer/purple,
/obj/item/clothing/under/lawyer/blacksuit,
/obj/item/clothing/suit/lawyer/blackjacket,
/obj/item/clothing/suit/toggle/lawyer/black,
/obj/item/clothing/tie/waistcoat,
/obj/item/clothing/tie/blue,
/obj/item/clothing/tie/red,
+6 -2
View File
@@ -232,8 +232,12 @@ its easier to just keep the beam vertical.
/atom/proc/relaymove()
return
/atom/proc/ex_act(severity, specialty)
contents_explosion(src, severity, specialty)
/atom/proc/contents_explosion(severity, target)
for(var/atom/A in contents)
A.ex_act(severity, target)
/atom/proc/ex_act(severity, target)
contents_explosion(severity, target)
/atom/proc/blob_act()
return
+3 -3
View File
@@ -126,7 +126,7 @@
A.blob_act()
return 1
/obj/effect/blob/ex_act(severity, specialty)
/obj/effect/blob/ex_act(severity, target)
..()
var/damage = 150
health -= ((damage/brute_resist) - (severity * 5))
@@ -154,7 +154,7 @@
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1)
src.visible_message("<span class='danger'>The [src.name] has been attacked with \the [W][(user ? " by [user]" : "")]!</span>")
visible_message("<span class='danger'>[user] has attacked the [src.name] with \the [W]!</span>")
var/damage = 0
switch(W.damtype)
if("fire")
@@ -172,7 +172,7 @@
M.changeNext_move(CLICK_CD_MELEE)
M.do_attack_animation(src)
playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1)
src.visible_message("<span class='danger'>The [src.name] has been attacked by \the [M]!</span>")
visible_message("<span class='danger'>\The [M] has attacked the [src.name]!</span>")
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
if(!damage) // Avoid divide by zero errors
return
+1 -1
View File
@@ -149,7 +149,7 @@ var/bomb_set
if ((M.client && M.machine == src))
src.attack_hand(M)
/obj/machinery/nuclearbomb/ex_act(severity, specialty)
/obj/machinery/nuclearbomb/ex_act(severity, target)
return
/obj/machinery/nuclearbomb/blob_act()
+2 -2
View File
@@ -350,10 +350,10 @@ Lawyer
if(lawyers%2 != 0)
H.equip_to_slot_or_del(new /obj/item/clothing/under/lawyer/bluesuit(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/lawyer/bluejacket(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/lawyer(H), slot_wear_suit)
else
H.equip_to_slot_or_del(new /obj/item/clothing/under/lawyer/purpsuit(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/lawyer/purpjacket(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/lawyer/purple(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/briefcase(H), slot_l_hand)
+5 -5
View File
@@ -30,7 +30,7 @@ Chief Medical Officer
/datum/job/cmo/equip_items(var/mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_medical_officer(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat/cmo(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat/cmo(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
@@ -63,7 +63,7 @@ Medical Doctor
/datum/job/doctor/equip_items(var/mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
@@ -90,7 +90,7 @@ Chemist
/datum/job/chemist/equip_items(var/mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chemist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat/chemist(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat/chemist(H), slot_wear_suit)
/*
Geneticist
@@ -115,7 +115,7 @@ Geneticist
/datum/job/geneticist/equip_items(var/mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/geneticist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat/genetics(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat/genetics(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
/*
@@ -144,6 +144,6 @@ Virologist
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(H), slot_wear_mask)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat/virologist(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat/virologist(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
+3 -3
View File
@@ -32,7 +32,7 @@ Research Director
/datum/job/rd/equip_items(var/mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/research_director(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/weapon/clipboard(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/device/laser_pointer(H), slot_l_store)
@@ -63,7 +63,7 @@ Scientist
/datum/job/scientist/equip_items(var/mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat/science(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat/science(H), slot_wear_suit)
/*
Roboticist
@@ -88,5 +88,5 @@ Roboticist
/datum/job/roboticist/equip_items(var/mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/roboticist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/toolbox/mechanical(H), slot_l_hand)
+1 -1
View File
@@ -84,7 +84,7 @@
default_deconstruction_crowbar(I)
/obj/machinery/sleeper/ex_act(severity, specialty)
/obj/machinery/sleeper/ex_act(severity, target)
go_out()
..()
+1 -1
View File
@@ -204,7 +204,7 @@ update_flag
healthcheck()
..()
/obj/machinery/portable_atmospherics/canister/ex_act(severity, specialty)
/obj/machinery/portable_atmospherics/canister/ex_act(severity, target)
switch(severity)
if(1.0)
if(destroyed || prob(30))
+1 -1
View File
@@ -293,7 +293,7 @@
healthcheck()
return
/obj/machinery/bot/ex_act(severity, specialty)
/obj/machinery/bot/ex_act(severity, target)
switch(severity)
if(1.0)
explode()
+2 -2
View File
@@ -267,8 +267,8 @@ Auto Patrol[]"},
if(declare_arrests)
var/area/location = get_area(src)
speak("[arrest_type ? "Detaining" : "Arresting"] level [threatlevel] scumbag <b>[target]</b> in [location].", radio_frequency)
target.visible_message("<span class='danger'>[target] has been stunned by [src]!</span>",\
"<span class='userdanger'>[target] has been stunned by [src]!</span></span>")
target.visible_message("<span class='danger'>[src] has stunned [target]!</span>",\
"<span class='userdanger'>[src] has stunned [target]!</span></span>")
mode = BOT_PREP_ARREST
anchored = 1
+9 -6
View File
@@ -77,6 +77,9 @@ var/global/mulebot_count = 0
suffix = "#[mulebot_count]"
name = "\improper Mulebot ([suffix])"
obj/machinery/bot/mulebot/bot_reset()
..()
reached_target = 0
// attack by item
@@ -515,10 +518,9 @@ var/global/mulebot_count = 0
if(num_steps)
process_bot()
num_steps--
spawn(0)
for(var/i=num_steps,i>0,i--)
sleep(2)
process_bot()
for(var/i=num_steps,i>0,i--)
sleep(2)
process_bot()
if(refresh) updateDialog()
@@ -531,8 +533,8 @@ var/global/mulebot_count = 0
return
if(BOT_LOADING) // loading/unloading
return
if(BOT_DELIVER,BOT_GO_HOME,BOT_BLOCKED) // navigating to deliver,home, or blocked
if(BOT_DELIVER,BOT_GO_HOME,BOT_BLOCKED) // navigating to deliver,home, or blocked
if(loc == target) // reached target
at_target()
return
@@ -842,7 +844,8 @@ var/global/mulebot_count = 0
else
loaddir = 0
icon_state = "mulebot[(wires.MobAvoid() != null)]"
calc_path()
if(destination) // No need to calculate a path if you do not have a destination set!
calc_path()
updateDialog()
//Detects and stores current active delivery beacons.
+2 -2
View File
@@ -230,8 +230,8 @@ Auto Patrol: []"},
if(declare_arrests)
var/area/location = get_area(src)
speak("[arrest_type ? "Detaining" : "Arresting"] level [threatlevel] scumbag <b>[target]</b> in [location].", radio_frequency)
target.visible_message("<span class='danger'>[target] has been stunned by [src]!</span>",\
"<span class='userdanger'>[target] has been stunned by [src]!</span>")
target.visible_message("<span class='danger'>[src] has stunned [target]!</span>",\
"<span class='userdanger'>[src] has stunned [target]!</span>")
mode = BOT_PREP_ARREST
anchored = 1
+2 -2
View File
@@ -93,7 +93,7 @@
..()
/obj/machinery/camera/ex_act(severity, specialty)
/obj/machinery/camera/ex_act(severity, target)
if(src.invuln)
return
else
@@ -221,7 +221,7 @@
spark_system.start()
playsound(loc, 'sound/weapons/blade1.ogg', 50, 1)
playsound(loc, "sparks", 50, 1)
visible_message("<span class='notice'>The camera has been sliced apart by [] with an energy blade!</span>")
visible_message("<span class='notice'>[user] has sliced the camera apart with an energy blade!</span>")
qdel(src)
else if(istype(W, /obj/item/device/laser_pointer))
var/obj/item/device/laser_pointer/L = W
+1 -1
View File
@@ -347,7 +347,7 @@
if(prob(100/(severity*efficiency))) malfunction()
..()
/obj/machinery/clonepod/ex_act(severity, specialty)
/obj/machinery/clonepod/ex_act(severity, target)
..()
if(!gc_destroyed)
go_out()
@@ -146,7 +146,7 @@
..()
/obj/machinery/computer/HolodeckControl/ex_act(severity, specialty)
/obj/machinery/computer/HolodeckControl/ex_act(severity, target)
emergencyShutdown()
..()
+4 -1
View File
@@ -31,7 +31,10 @@
..()
/obj/machinery/computer/ex_act(severity, specialty)
/obj/machinery/computer/ex_act(severity, target)
if(target == src)
qdel(src)
return
switch(severity)
if(1.0)
qdel(src)
+2 -2
View File
@@ -91,7 +91,7 @@ for reference:
qdel(src)
..()
/obj/structure/barricade/wooden/ex_act(severity, specialty)
/obj/structure/barricade/wooden/ex_act(severity, target)
switch(severity)
if(1.0)
visible_message("<span class='danger'>The barricade is blown apart!</span>")
@@ -210,7 +210,7 @@ for reference:
src.explode()
..()
/obj/machinery/deployable/barrier/ex_act(severity, specialty)
/obj/machinery/deployable/barrier/ex_act(severity, target)
switch(severity)
if(1.0)
src.explode()
+1 -1
View File
@@ -898,7 +898,7 @@ About the new airlock wires panel:
if( !istype(src, /obj/machinery/door/airlock) || !user || !W || !W.isOn() || !user.loc )
return playsound(loc, 'sound/items/Welder2.ogg', 50, 1)
welded = !welded
user.visible_message("<span class='warning'>[src] has been [welded? "welded shut":"unwelded"] by [user.name].</span>", \
user.visible_message("<span class='warning'>[user.name] has [welded? "welded shut":"unwelded"] [src].</span>", \
"<span class='notice'>You've [welded ? "welded the airlock shut":"unwelded the airlock"].</span>")
update_icon()
return
+1 -1
View File
@@ -169,7 +169,7 @@
..()
/obj/machinery/door/ex_act(severity, specialty)
/obj/machinery/door/ex_act(severity, target)
if(severity == 3)
if(prob(80))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
+3 -3
View File
@@ -162,7 +162,7 @@
qdel(src)
return
/obj/machinery/door/window/ex_act(severity, specialty)
/obj/machinery/door/window/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
@@ -201,7 +201,7 @@
if(M.damtype == "brute")
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
M.occupant_message("<span class='danger'>You hit [src].</span>")
visible_message("<span class='danger'>[src] has been hit by [M.name].</span>")
visible_message("<span class='danger'>[M.name] has hit [src].</span>")
take_damage(M.force)
return
@@ -350,7 +350,7 @@
return
var/aforce = I.force
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
visible_message("<span class='danger'>\The [src] has been hit by [user] with [I].</span>")
visible_message("<span class='danger'>[user] has hit \the [src] with [I].</span>")
if(I.damtype == BURN || I.damtype == BRUTE)
take_damage(aforce)
return
+1 -1
View File
@@ -162,7 +162,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
stat |= ~NOPOWER
//Destruction procs.
/obj/machinery/hologram/ex_act(severity, specialty)
/obj/machinery/hologram/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
+1 -1
View File
@@ -220,7 +220,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
src.update_icon()
/obj/machinery/newscaster/ex_act(severity, specialty)
/obj/machinery/newscaster/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
+1 -1
View File
@@ -370,7 +370,7 @@
..()
/obj/machinery/porta_turret/ex_act(severity, specialty)
/obj/machinery/porta_turret/ex_act(severity, target)
if(severity >= 3) //turret dies if an explosion touches it!
qdel(src)
else
+1 -1
View File
@@ -66,7 +66,7 @@
open_machine()
..(severity)
/obj/machinery/recharge_station/ex_act(severity, specialty)
/obj/machinery/recharge_station/ex_act(severity, target)
if(occupier)
open_machine()
..()
+3 -3
View File
@@ -64,7 +64,7 @@
opacity = 1
spawn(20) if(src) opacity = 0
/obj/machinery/shield/ex_act(severity, specialty)
/obj/machinery/shield/ex_act(severity, target)
switch(severity)
if(1.0)
if (prob(75))
@@ -181,7 +181,7 @@
update_icon()
return
/obj/machinery/shieldgen/ex_act(severity, specialty)
/obj/machinery/shieldgen/ex_act(severity, target)
switch(severity)
if(1.0)
src.health -= 75
@@ -567,7 +567,7 @@
return
/obj/machinery/shieldwall/ex_act(severity, specialty)
/obj/machinery/shieldwall/ex_act(severity, target)
if(needs_power)
var/obj/machinery/shieldwallgen/G
switch(severity)
+1 -1
View File
@@ -124,7 +124,7 @@
dump_everything()
update_icon()
/obj/machinery/suit_storage_unit/ex_act(severity, specialty)
/obj/machinery/suit_storage_unit/ex_act(severity, target)
switch(severity)
if(1.0)
if(prob(50))
+1 -1
View File
@@ -180,7 +180,7 @@
origin_tech = "syndicate=6;combat=5"
var/adminlog = null
/obj/item/weapon/bombcore/ex_act(severity, specialty) //Little boom can chain a big boom
/obj/item/weapon/bombcore/ex_act(severity, target) //Little boom can chain a big boom
src.detonate()
/obj/item/weapon/bombcore/proc/detonate()
+2 -2
View File
@@ -291,7 +291,7 @@
power_change()
..()
/obj/machinery/turret/ex_act(severity, specialty)
/obj/machinery/turret/ex_act(severity, target)
if(severity < 3)
src.die()
@@ -361,7 +361,7 @@
..()
take_damage(0) //check your health
/obj/machinery/gun_turret/ex_act(severity, specialty)
/obj/machinery/gun_turret/ex_act(severity, target)
switch(severity)
if(1)
die()
+3 -3
View File
@@ -77,7 +77,7 @@
for(var/obj/item/weapon/vending_refill/VR in component_parts)
refill_inventory(VR, product_records)
/obj/machinery/vending/ex_act(severity, specialty)
/obj/machinery/vending/ex_act(severity, target)
..()
if(!gc_destroyed)
if(prob(25))
@@ -765,7 +765,7 @@
vend_reply = "Thank you for using AutoDrobe!"
products = list(/obj/item/clothing/suit/chickensuit = 1,/obj/item/clothing/head/chicken = 1,/obj/item/clothing/under/gladiator = 1,
/obj/item/clothing/head/helmet/gladiator = 1,/obj/item/clothing/under/gimmick/rank/captain/suit = 1,/obj/item/clothing/head/flatcap = 1,
/obj/item/clothing/suit/labcoat/mad = 1,/obj/item/clothing/glasses/gglasses = 1,/obj/item/clothing/shoes/jackboots = 1,
/obj/item/clothing/suit/toggle/labcoat/mad = 1,/obj/item/clothing/glasses/gglasses = 1,/obj/item/clothing/shoes/jackboots = 1,
/obj/item/clothing/under/schoolgirl = 1,/obj/item/clothing/head/kitty = 1,/obj/item/clothing/under/blackskirt = 1,/obj/item/clothing/head/beret = 1,
/obj/item/clothing/tie/waistcoat = 1,/obj/item/clothing/under/suit_jacket = 1,/obj/item/clothing/head/that =1,/obj/item/clothing/under/kilt = 1,/obj/item/clothing/head/beret = 1,/obj/item/clothing/tie/waistcoat = 1,
/obj/item/clothing/glasses/monocle =1,/obj/item/clothing/head/bowler = 1,/obj/item/weapon/cane = 1,/obj/item/clothing/under/sl_suit = 1,
@@ -851,7 +851,7 @@
icon_state = "robotics"
icon_deny = "robotics-deny"
req_access_txt = "29"
products = list(/obj/item/clothing/suit/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/flash/handheld = 4,
products = list(/obj/item/clothing/suit/toggle/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/flash/handheld = 4,
/obj/item/weapon/stock_parts/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3,
/obj/item/weapon/scalpel = 2,/obj/item/weapon/circular_saw = 2,/obj/item/weapon/tank/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5,
/obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5)
+2 -2
View File
@@ -321,7 +321,7 @@ obj/mecha/proc/can_use(mob/user)
else
return
M.occupant_message("<span class='danger'>You hit [src].</span>")
visible_message("<span class='danger'>[src] has been hit by [M.name].</span>")
visible_message("<span class='danger'>[M.name] has hit [src].</span>")
take_damage(M.force, damtype)
add_logs(M.occupant, src, "attacked", object=M, addition="(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])")
return
@@ -607,7 +607,7 @@ obj/mecha/proc/can_use(mob/user)
Proj.on_hit(src)
return
/obj/mecha/ex_act(severity, specialty)
/obj/mecha/ex_act(severity, target)
src.log_message("Affected by explosion of severity: [severity].",1)
if(prob(src.deflect_chance))
severity++
+6 -6
View File
@@ -79,7 +79,7 @@
healthcheck()
/obj/structure/alien/resin/ex_act(severity, specialty)
/obj/structure/alien/resin/ex_act(severity, target)
switch(severity)
if(1.0)
health -= 150
@@ -211,16 +211,16 @@
new /obj/structure/alien/weeds(T, linked_node)
/obj/structure/alien/weeds/ex_act(severity, specialty)
/obj/structure/alien/weeds/ex_act(severity, target)
qdel(src)
/obj/structure/alien/weeds/attackby(obj/item/I, mob/user)
user.changeNext_move(CLICK_CD_MELEE)
if(I.attack_verb.len)
visible_message("<span class='danger'>[src] has been [pick(I.attack_verb)] with [I] by [user].</span>")
visible_message("<span class='danger'>[user] has [pick(I.attack_verb)] [src] with [I]!</span>")
else
visible_message("<span class='danger'>[src] has been attacked with [I] by [user]!</span>")
visible_message("<span class='danger'>[user] has attacked [src] with [I]!</span>")
var/damage = I.force / 4.0
if(istype(I, /obj/item/weapon/weldingtool))
@@ -373,9 +373,9 @@
/obj/structure/alien/egg/attackby(obj/item/I, mob/user)
if(I.attack_verb.len)
visible_message("<span class='danger'>[src] has been [pick(I.attack_verb)] with [I] by [user].</span>")
visible_message("<span class='danger'>[user] has [pick(I.attack_verb)] [src] with [I]!</span>")
else
visible_message("<span class='danger'>[src] has been attacked with [I] by [user]!</span>")
visible_message("<span class='danger'>[user] has attacked [src] with [I]!</span>")
var/damage = I.force / 4
if(istype(I, /obj/item/weapon/weldingtool))
@@ -58,7 +58,7 @@
icon_state = "gibbl5"
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6")
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, specialty)
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
return
/obj/effect/decal/cleanable/blood/gibs/remove_ex_blood()
@@ -314,7 +314,7 @@ obj/structure/sign/poster/attackby(obj/item/I, mob/user)
var/temp_loc = user.loc
switch(alert("Do I want to rip the poster from the wall?","You think...","Yes","No"))
if("Yes")
if(user.loc != temp_loc)
if( user.loc != temp_loc || ruined )
return
visible_message("<span class='warning'>[user] rips [src] in a single, decisive motion!</span>" )
playsound(src.loc, 'sound/items/poster_ripped.ogg', 100, 1)
+1 -1
View File
@@ -2,5 +2,5 @@
name = "decal"
icon = 'icons/effects/effects.dmi'
/obj/effect/decal/ex_act(severity, specialty)
/obj/effect/decal/ex_act(severity, target)
qdel(src)
+1 -1
View File
@@ -944,7 +944,7 @@ steam.start() -- spawns the effect
icon_state = "ironfoam"
/obj/structure/foamedmetal/ex_act(severity, specialty)
/obj/structure/foamedmetal/ex_act(severity, target)
qdel(src)
/obj/structure/foamedmetal/blob_act()
+1 -1
View File
@@ -117,7 +117,7 @@
endurance -= W.force
CheckEndurance()
/obj/effect/glowshroom/ex_act(severity, specialty)
/obj/effect/glowshroom/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
+1 -1
View File
@@ -111,7 +111,7 @@
/obj/effect/landmark/costume/madscientist/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/suit/labcoat/mad(src.loc)
new /obj/item/clothing/suit/toggle/labcoat/mad(src.loc)
new /obj/item/clothing/glasses/gglasses(src.loc)
qdel(src)
+3 -3
View File
@@ -8,7 +8,7 @@
var/health = 15
//similar to weeds, but only barfed out by nurses manually
/obj/effect/spider/ex_act(severity, specialty)
/obj/effect/spider/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
@@ -22,9 +22,9 @@
/obj/effect/spider/attackby(var/obj/item/weapon/W, var/mob/user)
if(W.attack_verb.len)
visible_message("<span class='danger'>\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]" : "")]!</span>")
visible_message("<span class='danger'>[user] has [pick(W.attack_verb)] \the [src] with \the [W]!</span>")
else
visible_message("<span class='danger'>\The [src] has been attacked with \the [W][(user ? " by [user]" : "")]!</span>")
visible_message("<span class='danger'>[user] has attacked \the [src] with \the [W]!</span>")
var/damage = W.force / 4.0
+1 -6
View File
@@ -6,11 +6,6 @@
if(dx>=dy) return dx + (0.5*dy) //The longest side add half the shortest side approximates the hypotenuse
else return dy + (0.5*dx)
/proc/contents_explosion(var/atom/A, severity, specialty)
for(var/atom/B in A.contents)
B.ex_act(severity, specialty)
proc/trange(var/Dist=0,var/turf/Center=null)//alternative to range (ONLY processes turfs and thus less intensive)
if(Center==null) return
@@ -111,7 +106,7 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa
//------- TURF FIRES -------
if(T)
if(flame_dist && prob(40) && !istype(T, /turf/space))
if(flame_dist && prob(40) && !istype(T, /turf/space) && !T.density)
new/obj/effect/hotspot(T) //Mostly for ambience!
if(dist > 0)
T.ex_act(dist)
+10 -1
View File
@@ -42,6 +42,9 @@
var/list/attack_verb = list() //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
var/list/species_exception = list() // even if a species cannot put items in a certain slot, if the species id is in the item's exception list, it will be able to wear that item
var/suittoggled = 0
var/hooded = 0
/obj/item/device
icon = 'icons/obj/device.dmi'
@@ -54,6 +57,12 @@
/obj/item/blob_act()
qdel(src)
/obj/item/ex_act(severity, target)
if(severity == 1 || target == src)
qdel(src)
if(!gc_destroyed)
contents_explosion(severity, target)
//user: The mob that is suiciding
//damagetype: The type of damage the item will inflict on the user
//BRUTELOSS = 1
@@ -313,7 +322,7 @@
M.adjustBruteLoss(10)
*/
if(M != user)
M.visible_message("<span class='danger'>[M] has been stabbed in the eye with [src] by [user]!</span>", \
M.visible_message("<span class='danger'>[user] has stabbed [M] in the eye with [src]!</span>", \
"<span class='userdanger'>[user] stabs you in the eye with [src]!</span>")
else
user.visible_message( \
+1 -1
View File
@@ -33,7 +33,7 @@
user.update_inv_l_hand()
loc.assume_air(air_contents)
/obj/item/latexballon/ex_act(severity, specialty)
/obj/item/latexballon/ex_act(severity, target)
burst()
switch(severity)
if (1)
+1 -1
View File
@@ -32,7 +32,7 @@
if (user)
if (M != user)
user.visible_message( \
"<span class='notice'>[M] has been applied with [src] by [user].</span>", \
"<span class='notice'>[user] has applied [src] on [M].</span>", \
"<span class='notice'>You apply \the [src] to [M].</span>" \
)
else
@@ -28,12 +28,13 @@ AI MODULES
user << "<span class='warning'>ERROR: No laws found on board.</span>"
return
//Handle the lawcap
if(reciever.laws)
var/tot_laws = 0
tot_laws += reciever.laws.inherent.len
tot_laws += reciever.laws.supplied.len
tot_laws += reciever.laws.ion.len
tot_laws += laws.len
for(var/lawlist in list(reciever.laws.inherent,reciever.laws.supplied,reciever.laws.ion,laws))
for(var/mylaw in lawlist)
if(mylaw != "")
tot_laws++
if(tot_laws > config.silicon_max_law_amount && !bypass_law_amt_check)//allows certain boards to avoid this check, eg: reset
user << "<span class='caution'>Not enough memory allocated to [reciever]'s law processor to handle this amount of laws."
message_admins("[key_name_admin(user)] tried to upload laws to [key_name_admin(reciever)] that would exceed the law cap.")
+2 -1
View File
@@ -272,7 +272,8 @@
else
if(user.a_intent == "harm" && !defib.safety)
busy = 1
H.visible_message("<span class='danger'>[M.name] has been touched with [src] by [user]!</span>")
H.visible_message("<span class='danger'>[user] has touched [H.name] with [src]!</span>", \
"<span class='userdanger'>[user] has touched [H.name] with [src]!</span>")
H.adjustStaminaLoss(50)
H.Weaken(5)
H.updatehealth() //forces health update before next life tick
+10 -4
View File
@@ -5,9 +5,11 @@
icon_state = "d6"
w_class = 1
var/sides = 6
var/result = null
/obj/item/weapon/dice/New()
icon_state = "[initial(icon_state)][rand(1, sides)]"
result = rand(1, sides)
update_icon()
/obj/item/weapon/dice/d2
name = "d2"
@@ -60,13 +62,13 @@
diceroll(user)
/obj/item/weapon/dice/proc/diceroll(mob/user as mob)
var/result = rand(1, sides)
result = rand(1, sides)
var/comment = ""
if(sides == 20 && result == 20)
comment = "Nat 20!"
else if(sides == 20 && result == 1)
comment = "Ouch, bad luck."
icon_state = "[initial(icon_state)][result]"
update_icon()
if(initial(icon_state) == "d00")
result = (result - 1)*10
if(user != null) //Dice was rolled in someone's hand
@@ -80,4 +82,8 @@
if(istype(H) && !H.shoes)
H << "<span class='userdanger'>You step on the D4!</span>"
H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg")))
H.Weaken(3)
H.Weaken(3)
/obj/item/weapon/dice/update_icon()
overlays.Cut()
overlays += "[src.icon_state][src.result]"
@@ -87,7 +87,7 @@
/obj/item/weapon/c4/proc/explode(var/turf/location)
location.ex_act(2, isturf(target) ? 1 : 2)
location.ex_act(2, target)
explosion(location,0,0,3)
if(target)
target.overlays -= image_overlay
@@ -130,7 +130,7 @@
for(var/obj/item/weapon/implant/loyalty/imp in implant_list)
if(!imp) continue
if(istype(imp, /obj/item/weapon/implant/loyalty))
M.visible_message("<span class='danger'>[M] has been implanted by the [src.name].</span>")
M.visible_message("<span class='warning'>[M] has been implanted by the [src.name].</span>")
if(imp.implanted(M))
imp.loc = M
@@ -25,7 +25,7 @@
var/turf/T = get_turf(M)
if(T && (M == user || do_after(user, 50)))
if(user && M && (get_turf(M) == T) && src && imp)
M.visible_message("<span class='warning'>[M] has been implanted by [user].</span>")
M.visible_message("<span class='warning'>[user] has implanted [M].</span>")
add_logs(user, M, "implanted", object="[name]")
user << "<span class='notice'>You implanted the implant into [M].</span>"
if(imp.implanted(M))
@@ -53,14 +53,14 @@
M.stuttering = 7
M.Stun(7)
M.Weaken(7)
M.visible_message("<span class='danger'>[M] has been beaten with [src] by [user]!</span>", \
"<span class='userdanger'>[M] has been beaten with [src] by [user]!</span>")
M.visible_message("<span class='danger'>[user] has beaten [M] with [src]!</span>", \
"<span class='userdanger'>[user] has beaten [M] with [src]!</span>")
else
playsound(loc, 'sound/effects/woodhit.ogg', 50, 1, -1)
M.Stun(7)
M.Weaken(7)
M.visible_message("<span class='danger'>[M] has been stunned with [src] by [user]!</span>", \
"<span class='userdanger'>[M] has been stunned with [src] by [user]!</span>")
M.visible_message("<span class='danger'>[user] has stunned [M] with [src]!</span>", \
"<span class='userdanger'>[user] has stunned [M] with [src]!</span>")
if(ishuman(M))
var/mob/living/carbon/human/H = M
@@ -127,7 +127,8 @@
target.Weaken(3)
add_logs(user, target, "stunned", object="telescopic baton")
src.add_fingerprint(user)
target.visible_message("<span class ='danger'>[target] has been knocked down with \the [src] by [user]!</span>")
target.visible_message("<span class ='danger'>[user] has knocked down [target] with \the [src]!</span>", \
"<span class ='userdanger'>[user] has knocked down [target] with \the [src]!</span>")
if(!iscarbon(user))
target.LAssailant = null
else
@@ -46,12 +46,11 @@
spark_system.start()
playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
playsound(src.loc, "sparks", 50, 1)
for(var/mob/O in viewers(user, 3))
O.show_message(text("<span class='notice'>\The [src] has been sliced open by [] with an energy blade!</span>", user), 1, text("<span class='danger'>You hear metal being sliced and sparks flying.</span>"), 2)
visible_message("<span class='notice'>[user] has sliced open \the [src] with an energy blade!</span>", "<span class='danger'>You hear metal being sliced and sparks flying.</span>")
return
else
for(var/mob/O in viewers(user, 3))
O.show_message(text("<span class='notice'>\The [src] has been broken by [] with an electromagnetic card!</span>", user), 1, text("You hear a faint electrical spark."), 2)
O.show_message("<span class='notice'>[user] has broken \the [src] with an electromagnetic card!</span>", 1, "You hear a faint electrical spark.", 2)
return
if(!locked)
..()
@@ -81,8 +81,7 @@
new /obj/item/weapon/melee/energy/sword/saber(src)
new /obj/item/weapon/melee/energy/sword/saber(src)
new /obj/item/weapon/dnainjector/telemut/darkbundle(src)
new /obj/item/clothing/head/chaplain_hood(src)
new /obj/item/clothing/suit/chaplain_hoodie(src)
new /obj/item/clothing/suit/toggle/chaplain_hoodie(src)
new /obj/item/weapon/card/id/syndicate(src)
return
+4 -4
View File
@@ -121,8 +121,8 @@
user.do_attack_animation(L)
baton_stun(L, user)
else
L.visible_message("<span class='warning'>[L] has been prodded with [src] by [user]. Luckily it was off.</span>", \
"<span class='warning'>You've been prodded with [src] by [user]. Luckily it was off</span>")
L.visible_message("<span class='warning'>[user] has prodded [L] with [src]. Luckily it was off.</span>", \
"<span class='warning'>[user] has prodded you with [src]. Luckily it was off</span>")
return
else
..()
@@ -138,8 +138,8 @@
L.Weaken(stunforce)
L.apply_effect(STUTTER, stunforce)
L.visible_message("<span class='danger'>[L] has been stunned with [src] by [user]!</span>", \
"<span class='userdanger'>You've been stunned with [src] by [user]!</span>")
L.visible_message("<span class='danger'>[user] has stunned [L] with [src]!</span>", \
"<span class='userdanger'>[user] has stunned you with [src]!</span>")
playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
if(isrobot(loc))
+5 -10
View File
@@ -123,17 +123,12 @@
/obj/proc/hide(h)
return
/obj/ex_act(severity, specialty)
var/survivability = specialty * 15
switch(severity)
if(1)
/obj/ex_act(severity, target)
if(severity == 1 || target == src)
qdel(src)
else if(severity == 2)
if(prob(50))
qdel(src)
if(2)
if(prob(50 + survivability))
qdel(src)
if(3)
if(prob(25 + survivability))
qdel(src)
if(!gc_destroyed)
..()
+1 -1
View File
@@ -13,6 +13,6 @@
/obj/structure/mech_melee_attack(obj/mecha/M)
if(M.damtype == "brute")
M.occupant_message("<span class='danger'>You hit [src].</span>")
visible_message("<span class='danger'>[src] has been hit by [M.name].</span>")
visible_message("<span class='danger'>[M.name] has hit [src].</span>")
return 1
return 0
+1 -1
View File
@@ -37,7 +37,7 @@
var/mob/M = G.affecting
M.resting = 1
M.loc = loc
visible_message("<span class='notice'>[M] has been laid on [src] by [user].</span>")
visible_message("<span class='notice'>[user] has laid [M] on [src].</span>")
patient = M
check_patient()
qdel(W)
@@ -127,7 +127,8 @@
return src.open()
// this should probably use dump_contents()
/obj/structure/closet/ex_act(severity, specialty)
/obj/structure/closet/ex_act(severity, target)
contents_explosion(severity, target)
open()
..()
@@ -176,7 +177,7 @@
return
playsound(loc, 'sound/items/Welder2.ogg', 50, 1)
new /obj/item/stack/sheet/metal(src.loc)
visible_message("<span class='notice'>\The [src] has been cut apart by [user] with \the [WT].</span>", "You hear welding.")
visible_message("<span class='notice'>[user] has cut \the [src] apart with \the [WT].</span>", "You hear welding.")
qdel(src)
return
@@ -198,9 +199,9 @@
return
playsound(loc, 'sound/items/welder.ogg', 50, 1)
welded = !welded
user << "<span class='notice'>You [welded ? "welded the [src] shut":"unwelded the [src]"]</span>"
user << "<span class='notice'>You [welded ? "welded [src] shut":"unwelded [src]"].</span>"
update_icon()
user.visible_message("<span class='warning'>[src] has been [welded? "welded shut":"unwelded"] by [user.name].</span>")
user.visible_message("<span class='warning'>[user.name] has [welded ? "welded [src] shut":"unwelded [src]"].</span>")
return
else if(!place(user, W))
src.attack_hand(user)
@@ -101,7 +101,7 @@
spawn(10) update_icon()
/obj/structure/closet/fireaxecabinet/ex_act(severity, specialty)
/obj/structure/closet/fireaxecabinet/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
@@ -95,10 +95,10 @@
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/suit/toggle/lawyer(src)
new /obj/item/clothing/under/lawyer/purpsuit(src)
new /obj/item/clothing/suit/lawyer/purpjacket(src)
new /obj/item/clothing/suit/toggle/lawyer/purple(src)
new /obj/item/clothing/under/lawyer/blacksuit(src)
new /obj/item/clothing/suit/lawyer/blackjacket(src)
new /obj/item/clothing/suit/toggle/lawyer/black(src)
new /obj/item/clothing/shoes/laceup(src)
new /obj/item/clothing/shoes/laceup(src)
@@ -16,6 +16,7 @@
new /obj/item/clothing/gloves/fingerless(src)
new /obj/item/clothing/head/soft(src)
// new /obj/item/weapon/cartridge/quartermaster(src)
new /obj/item/clothing/suit/toggle/wintercoat/cargo(src)
return
/obj/structure/closet/secure_closet/quartermaster
@@ -40,4 +41,5 @@
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson(src)
new /obj/item/clothing/head/soft(src)
new /obj/item/clothing/suit/toggle/wintercoat/cargo(src)
return
@@ -30,6 +30,7 @@
new /obj/item/clothing/mask/gas(src)
new /obj/item/device/multitool(src)
new /obj/item/device/flash/handheld(src)
new /obj/item/clothing/suit/toggle/wintercoat/engineering(src)
return
/obj/structure/closet/secure_closet/engineering_electrical
@@ -108,6 +109,7 @@
new /obj/item/clothing/suit/hazardvest(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson(src)
new /obj/item/clothing/suit/toggle/wintercoat/engineering(src)
return
/obj/structure/closet/secure_closet/atmospherics
@@ -131,4 +133,5 @@
new /obj/item/weapon/watertank/atmos(src)
new /obj/item/clothing/suit/fire/atmos(src)
new /obj/item/clothing/head/hardhat/atmos(src)
new /obj/item/clothing/suit/toggle/wintercoat/engineering/atmos(src)
return
@@ -23,4 +23,5 @@
new /obj/item/clothing/head/greenbandana(src)
new /obj/item/weapon/minihoe(src)
new /obj/item/weapon/hatchet(src)
new /obj/item/clothing/suit/toggle/wintercoat/hydro(src)
return
@@ -66,13 +66,14 @@
else
new /obj/item/weapon/storage/backpack/satchel_med(src)
new /obj/item/clothing/under/rank/medical(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/suit/toggle/labcoat(src)
new /obj/item/clothing/shoes/sneakers/white(src)
new /obj/item/device/radio/headset/headset_med(src)
new /obj/item/clothing/gloves/latex(src)
new /obj/item/weapon/defibrillator/loaded(src)
new /obj/item/weapon/storage/belt/medical(src)
new /obj/item/clothing/glasses/hud/health(src)
new /obj/item/clothing/suit/toggle/wintercoat/medical(src)
return
@@ -95,7 +96,7 @@
new /obj/item/weapon/storage/backpack/satchel_med(src)
new /obj/item/clothing/suit/bio_suit/cmo(src)
new /obj/item/clothing/head/bio_hood/cmo(src)
new /obj/item/clothing/suit/labcoat/cmo(src)
new /obj/item/clothing/suit/toggle/labcoat/cmo(src)
new /obj/item/clothing/under/rank/chief_medical_officer(src)
new /obj/item/clothing/shoes/sneakers/brown (src)
new /obj/item/weapon/cartridge/cmo(src)
@@ -104,6 +105,7 @@
new /obj/item/weapon/defibrillator/loaded(src)
new /obj/item/weapon/storage/belt/medical(src)
new /obj/item/device/flash/handheld(src)
new /obj/item/clothing/suit/toggle/wintercoat/medical(src)
new /obj/item/weapon/reagent_containers/hypospray/CMO(src)
return
@@ -51,6 +51,8 @@
contents = list()
new /obj/item/weapon/storage/backpack/satchel/withwallet( src )
new /obj/item/device/radio/headset( src )
new /obj/item/clothing/suit/toggle/wintercoat(src)
new /obj/item/clothing/head/santa(src)
return
/obj/structure/closet/secure_closet/personal/attackby(obj/item/W as obj, mob/user as mob)
@@ -11,12 +11,13 @@
/obj/structure/closet/secure_closet/scientist/New()
..()
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/suit/labcoat/science(src)
new /obj/item/clothing/suit/toggle/labcoat/science(src)
new /obj/item/clothing/shoes/sneakers/white(src)
// new /obj/item/weapon/cartridge/signal/toxins(src)
new /obj/item/device/radio/headset/headset_sci(src)
new /obj/item/weapon/tank/air(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/suit/toggle/wintercoat/science(src)
return
@@ -35,7 +36,7 @@
..()
new /obj/item/clothing/suit/bio_suit/scientist(src)
new /obj/item/clothing/head/bio_hood/scientist(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/suit/toggle/labcoat(src)
new /obj/item/clothing/under/rank/research_director(src)
new /obj/item/clothing/under/rank/research_director/alt(src)
new /obj/item/clothing/under/rank/research_director/turtleneck(src)
@@ -48,4 +49,5 @@
new /obj/item/clothing/suit/armor/reactive(src)
new /obj/item/device/flash/handheld(src)
new /obj/item/device/laser_pointer(src)
new /obj/item/clothing/suit/toggle/wintercoat/science(src)
return
@@ -46,7 +46,7 @@
add_fingerprint(user)
for(var/mob/O in viewers(user, 3))
if((O.client && !( O.blinded )))
O << "<span class='notice'>The locker has been [locked ? null : "un"]locked by [user].</span>"
O << "<span class='notice'>[user] has [locked ? null : "un"]locked the locker.</span>"
if(src.locked)
src.icon_state = src.icon_locked
else
@@ -77,11 +77,10 @@
spark_system.start()
playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
playsound(src.loc, "sparks", 50, 1)
for(var/mob/O in viewers(user, 3))
O.show_message("<span class='warning'>The locker has been sliced open by [user] with an energy blade!</span>", 1, "You hear metal being sliced and sparks flying.", 2)
visible_message("<span class='warning'>[user] has sliced the locker open with an energy blade!</span>", "You hear metal being sliced and sparks flying.")
else
for(var/mob/O in viewers(user, 3))
O.show_message("<span class='warning'>The locker has been broken by [user] with an electromagnetic card!</span>", 1, "You hear a faint electrical spark.", 2)
O.show_message("<span class='warning'>[user] has broken the locker with an electromagnetic card!</span>", 1, "You hear a faint electrical spark.", 2)
else
..(W, user)
@@ -23,6 +23,8 @@
new /obj/item/clothing/shoes/sneakers/brown(src)
new /obj/item/device/radio/headset/heads/captain/alt(src)
new /obj/item/clothing/gloves/captain(src)
new /obj/item/clothing/suit/toggle/wintercoat/captain(src)
new /obj/item/clothing/head/santa(src)
new /obj/item/weapon/gun/energy/gun(src)
return
@@ -50,6 +52,8 @@
new /obj/item/device/flash/handheld(src)
new /obj/item/clothing/glasses/sunglasses(src)
new /obj/item/weapon/mining_voucher(src)
new /obj/item/clothing/suit/toggle/wintercoat/cargo(src)
new /obj/item/clothing/head/hardhat/reindeer()
return
@@ -82,6 +86,7 @@
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/clothing/suit/toggle/wintercoat/security(src)
return
@@ -112,6 +117,7 @@
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/clothing/suit/toggle/wintercoat/security(src)
return
@@ -138,6 +144,7 @@
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/clothing/suit/toggle/wintercoat/security(src)
return
@@ -206,6 +213,7 @@
new /obj/item/device/radio/headset/headset_sec/alt(src)
new /obj/item/device/detective_scanner(src)
new /obj/item/clothing/suit/armor/vest/det_suit(src)
new /obj/item/clothing/suit/toggle/wintercoat(src)
new /obj/item/ammo_box/c38(src)
new /obj/item/ammo_box/c38(src)
new /obj/item/weapon/gun/projectile/revolver/detective(src)
@@ -21,8 +21,6 @@
/obj/structure/closet/wardrobe/red/New()
new /obj/item/weapon/storage/backpack/security(src)
new /obj/item/weapon/storage/backpack/security(src)
new /obj/item/weapon/storage/backpack/satchel_sec(src)
new /obj/item/weapon/storage/backpack/satchel_sec(src)
new /obj/item/clothing/under/rank/security(src)
new /obj/item/clothing/under/rank/security(src)
@@ -36,6 +34,9 @@
new /obj/item/clothing/head/beret/sec(src)
new /obj/item/clothing/head/beret/sec(src)
new /obj/item/clothing/head/beret/sec(src)
new /obj/item/clothing/head/santa(src)
new /obj/item/clothing/head/santa(src)
new /obj/item/clothing/head/santa(src)
return
/obj/structure/closet/wardrobe/pink
@@ -86,8 +87,7 @@
new /obj/item/clothing/shoes/sneakers/black(src)
new /obj/item/clothing/suit/nun(src)
new /obj/item/clothing/head/nun_hood(src)
new /obj/item/clothing/suit/chaplain_hoodie(src)
new /obj/item/clothing/head/chaplain_hood(src)
new /obj/item/clothing/suit/toggle/chaplain_hoodie(src)
new /obj/item/clothing/suit/holidaypriest(src)
new /obj/item/weapon/storage/backpack/cultpack (src)
new /obj/item/weapon/storage/fancy/candle_box(src)
@@ -195,9 +195,9 @@
/obj/structure/closet/wardrobe/white/medical/New()
new /obj/item/clothing/under/rank/nursesuit (src)
new /obj/item/clothing/head/nursehat (src)
new /obj/item/clothing/suit/labcoat/emt(src)
new /obj/item/clothing/suit/labcoat/emt(src)
new /obj/item/clothing/suit/labcoat/emt(src)
new /obj/item/clothing/suit/toggle/labcoat/emt(src)
new /obj/item/clothing/suit/toggle/labcoat/emt(src)
new /obj/item/clothing/suit/toggle/labcoat/emt(src)
new /obj/item/clothing/under/rank/medical/blue(src)
new /obj/item/clothing/under/rank/medical/green(src)
new /obj/item/clothing/under/rank/medical/purple(src)
@@ -232,9 +232,9 @@
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/suit/toggle/labcoat(src)
new /obj/item/clothing/suit/toggle/labcoat(src)
new /obj/item/clothing/suit/toggle/labcoat(src)
new /obj/item/clothing/shoes/sneakers/white(src)
new /obj/item/clothing/shoes/sneakers/white(src)
new /obj/item/clothing/shoes/sneakers/white(src)
@@ -249,14 +249,15 @@
/obj/structure/closet/wardrobe/robotics_black/New()
new /obj/item/clothing/under/rank/roboticist(src)
new /obj/item/clothing/under/rank/roboticist(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/suit/toggle/labcoat(src)
new /obj/item/clothing/suit/toggle/labcoat(src)
new /obj/item/clothing/shoes/sneakers/black(src)
new /obj/item/clothing/shoes/sneakers/black(src)
new /obj/item/clothing/gloves/fingerless(src)
new /obj/item/clothing/gloves/fingerless(src)
new /obj/item/clothing/head/soft/black(src)
new /obj/item/clothing/head/soft/black(src)
new /obj/item/clothing/suit/toggle/wintercoat/science(src)
return
@@ -270,8 +271,9 @@
new /obj/item/clothing/under/rank/chemist(src)
new /obj/item/clothing/shoes/sneakers/white(src)
new /obj/item/clothing/shoes/sneakers/white(src)
new /obj/item/clothing/suit/labcoat/chemist(src)
new /obj/item/clothing/suit/labcoat/chemist(src)
new /obj/item/clothing/suit/toggle/labcoat/chemist(src)
new /obj/item/clothing/suit/toggle/labcoat/chemist(src)
new /obj/item/clothing/suit/toggle/wintercoat/medical(src)
return
@@ -285,8 +287,9 @@
new /obj/item/clothing/under/rank/geneticist(src)
new /obj/item/clothing/shoes/sneakers/white(src)
new /obj/item/clothing/shoes/sneakers/white(src)
new /obj/item/clothing/suit/labcoat/genetics(src)
new /obj/item/clothing/suit/labcoat/genetics(src)
new /obj/item/clothing/suit/toggle/labcoat/genetics(src)
new /obj/item/clothing/suit/toggle/labcoat/genetics(src)
new /obj/item/clothing/suit/toggle/wintercoat/medical(src)
return
@@ -300,10 +303,11 @@
new /obj/item/clothing/under/rank/virologist(src)
new /obj/item/clothing/shoes/sneakers/white(src)
new /obj/item/clothing/shoes/sneakers/white(src)
new /obj/item/clothing/suit/labcoat/virologist(src)
new /obj/item/clothing/suit/labcoat/virologist(src)
new /obj/item/clothing/suit/toggle/labcoat/virologist(src)
new /obj/item/clothing/suit/toggle/labcoat/virologist(src)
new /obj/item/clothing/mask/surgical(src)
new /obj/item/clothing/mask/surgical(src)
new /obj/item/clothing/suit/toggle/wintercoat/medical(src)
return
@@ -326,6 +330,10 @@
new /obj/item/clothing/under/assistantformal(src)
if(prob(40))
new /obj/item/clothing/under/assistantformal(src)
if(prob(50))
new /obj/item/clothing/suit/toggle/wintercoat(src)
new /obj/item/clothing/shoes/winterboots(src)
new /obj/item/clothing/head/santa(src)
return
@@ -335,9 +343,9 @@
icon_closed = "mixed"
/obj/structure/closet/wardrobe/mixed/New()
if(prob(25))
if(prob(40))
new /obj/item/clothing/suit/jacket(src)
if(prob(25))
if(prob(40))
new /obj/item/clothing/suit/jacket(src)
new /obj/item/clothing/under/color/white(src)
new /obj/item/clothing/under/color/blue(src)
@@ -348,4 +356,8 @@
new /obj/item/clothing/shoes/sneakers/black(src)
new /obj/item/clothing/shoes/sneakers/brown(src)
new /obj/item/clothing/shoes/sneakers/white(src)
if(prob(50))
new /obj/item/clothing/suit/toggle/wintercoat(src)
new /obj/item/clothing/shoes/winterboots(src)
new /obj/item/clothing/head/santa(src)
return
+1 -1
View File
@@ -10,7 +10,7 @@
var/occupied = 1
var/destroyed = 0
/obj/structure/displaycase/ex_act(severity, specialty)
/obj/structure/displaycase/ex_act(severity, target)
switch(severity)
if (1)
new /obj/item/weapon/shard( src.loc )
+1 -1
View File
@@ -9,7 +9,7 @@
var/opened = 0
/obj/structure/extinguisher_cabinet/ex_act(severity, specialty)
/obj/structure/extinguisher_cabinet/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
+2 -1
View File
@@ -89,7 +89,8 @@
anchored = 1
/obj/structure/flora/ausbushes/New()
icon_state = "firstbush_[rand(1, 4)]"
if(icon_state == "firstbush_1")
icon_state = "firstbush_[rand(1, 4)]"
..()
/obj/structure/flora/ausbushes/reedbush
+3 -3
View File
@@ -198,7 +198,7 @@
qdel(src)
/obj/structure/girder/ex_act(severity, specialty)
/obj/structure/girder/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
@@ -229,7 +229,7 @@
state = 2
girderpasschance = 0
/obj/structure/girder/reinforced/ex_act(severity, specialty)
/obj/structure/girder/reinforced/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
@@ -285,7 +285,7 @@
qdel(src)
/obj/structure/cultgirder/ex_act(severity, specialty)
/obj/structure/cultgirder/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
+1 -1
View File
@@ -16,7 +16,7 @@
stored = new/obj/item/stack/rods(src)
stored.amount = 2
/obj/structure/grille/ex_act(severity, specialty)
/obj/structure/grille/ex_act(severity, target)
qdel(src)
/obj/structure/grille/blob_act()
+1 -1
View File
@@ -10,7 +10,7 @@
var/occupied = 1
var/destroyed = 0
/obj/structure/lamarr/ex_act(severity, specialty)
/obj/structure/lamarr/ex_act(severity, target)
switch(severity)
if (1)
new /obj/item/weapon/shard( src.loc )
+1 -1
View File
@@ -38,7 +38,7 @@
qdel(src)
return
/obj/structure/lattice/ex_act(severity, specialty)
/obj/structure/lattice/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
+1 -1
View File
@@ -165,7 +165,7 @@ FLOOR SAFES
obj/structure/safe/blob_act()
return
obj/structure/safe/ex_act(severity, specialty)
obj/structure/safe/ex_act(severity, target)
return
+1 -1
View File
@@ -5,7 +5,7 @@
density = 0
layer = 3.5
/obj/structure/sign/ex_act(severity, specialty)
/obj/structure/sign/ex_act(severity, target)
qdel(src)
/obj/structure/sign/blob_act()
@@ -6,7 +6,7 @@
anchored = 1.0
pressure_resistance = 15
/obj/structure/stool/ex_act(severity, specialty)
/obj/structure/stool/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
+34 -55
View File
@@ -180,21 +180,11 @@
else
dir = 2
/obj/structure/table/ex_act(severity, specialty)
switch(severity)
if(1.0)
qdel(src)
return
if(2.0)
if (prob(50))
qdel(src)
return
if(3.0)
if (prob(25))
src.density = 0
else
return
/obj/structure/table/ex_act(severity, target)
..()
if(severity == 3)
if(prob(25))
density = 0
/obj/structure/table/blob_act()
if(prob(75))
@@ -257,17 +247,20 @@
if(get_dist(src, user) < 2)
var/obj/item/weapon/grab/G = I
if(G.affecting.buckled)
user << "<span class='notice'>[G.affecting] is buckled to [G.affecting.buckled]!</span>"
return
user << "<span class='warning'>[G.affecting] is buckled to [G.affecting.buckled]!</span>"
return 0
if(G.state < GRAB_AGGRESSIVE)
user << "<span class='notice'>You need a better grip to do that!</span>"
return
user << "<span class='warning'>You need a better grip to do that!</span>"
return 0
if(!G.confirm())
return
return 0
G.affecting.loc = src.loc
G.affecting.Weaken(5)
G.affecting.visible_message("<span class='danger'>[G.assailant] pushes [G.affecting] onto [src].</span>", \
"<span class='userdanger'>[G.assailant] pushes [G.affecting] onto [src].</span>")
add_logs(G.assailant, G.affecting, "pushed")
qdel(I)
return 1
qdel(I)
/obj/structure/table/attackby(obj/item/I, mob/user)
@@ -373,15 +366,21 @@
/obj/structure/table/proc/climb_table(mob/user)
src.add_fingerprint(user)
user.visible_message("<span class='warning'>[user] starts climbing onto [src].</span>", \
"<span class='notice'>[user] starts climbing onto [src].</span>")
if(do_mob(user, user, 20))
user.pass_flags += PASSTABLE
step(user,get_dir(user,src.loc))
user.pass_flags -= PASSTABLE
user.visible_message("<span class='warning'>[user] climbs onto [src].</span>", \
"<span class='notice'>[user] climbs onto [src].</span>")
add_logs(user, src, "climbed onto")
user.Stun(2)
"<span class='notice'>You start climbing onto [src].</span>")
var/climb_time = 20
if(user.restrained()) //Table climbing takes twice as long when restrained.
climb_time *= 2
if(do_mob(user, user, climb_time))
if(src.loc) //Checking if table has been destroyed
user.pass_flags += PASSTABLE
step(user,get_dir(user,src.loc))
user.pass_flags -= PASSTABLE
user.visible_message("<span class='warning'>[user] climbs onto [src].</span>", \
"<span class='notice'>You climb onto [src].</span>")
add_logs(user, src, "climbed onto")
user.Stun(2)
return 1
return 0
/*
@@ -394,37 +393,17 @@
buildstack = /obj/item/stack/sheet/glass
/obj/structure/table/glass/tablepush(obj/item/I, mob/user)
if(get_dist(src, user) < 2)
var/obj/item/weapon/grab/G = I
if(G.affecting.buckled)
user << "<span class='notice'>[G.affecting] is buckled to [G.affecting.buckled]!</span>"
return
if(G.state < GRAB_AGGRESSIVE)
user << "<span class='notice'>You need a better grip to do that!</span>"
return
if(!G.confirm())
return
G.affecting.loc = src.loc
G.affecting.Weaken(5)
G.affecting.visible_message("<span class='danger'>[G.assailant] smashes [G.affecting] into [src].</span>", \
"<span class='userdanger'>[G.assailant] smashes [G.affecting] into [src].</span>")
if(..())
visible_message("<span class='warning'>[src] breaks!</span>")
playsound(src.loc, "shatter", 50, 1)
new frame(src.loc)
new /obj/item/weapon/shard(src.loc)
qdel(src)
qdel(I)
/obj/structure/table/glass/climb_table(mob/user)
src.add_fingerprint(user)
user.visible_message("<span class='warning'>[user] starts climbing onto [src].</span>", \
"<span class='notice'>[user] starts climbing onto [src].</span>")
if(do_mob(user, user, 20))
user.pass_flags += PASSTABLE
step(user,get_dir(user,src.loc))
user.pass_flags -= PASSTABLE
user.visible_message("<span class='warning'>[user] climbs onto [src], and it breaks!.</span>", \
"<span class='notice'>[user] climbs onto [src], and it breaks!.</span>")
add_logs(user, src, "climbed onto")
if(..())
visible_message("<span class='warning'>[src] breaks!</span>")
playsound(src.loc, "shatter", 50, 1)
new frame(src.loc)
new /obj/item/weapon/shard(src.loc)
@@ -510,7 +489,7 @@
throwpass = 1 //You can throw objects over this, despite it's density.
var/health = 5
/obj/structure/rack/ex_act(severity, specialty)
/obj/structure/rack/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
@@ -25,7 +25,7 @@
return !density
// When destroyed by explosions, properly handle contents.
obj/structure/transit_tube/ex_act(severity, specialty)
obj/structure/transit_tube/ex_act(severity, target)
if(3 - severity >= 0)
var/oldloc = loc
..(severity + 1)
+9 -9
View File
@@ -53,7 +53,7 @@
return
/obj/structure/window/ex_act(severity, specialty)
/obj/structure/window/ex_act(severity, target)
switch(severity)
if(1.0)
qdel(src)
@@ -104,7 +104,7 @@
var/obj/item/I = AM
tforce = I.throwforce
if(reinf)
if(reinf)
tforce *= 0.25
playsound(loc, 'sound/effects/Glasshit.ogg', 100, 1)
@@ -164,12 +164,12 @@
update_nearby_icons()
/obj/structure/window/attack_animal(mob/living/user as mob)
if(!isanimal(user))
if(!isanimal(user))
return
var/mob/living/simple_animal/M = user
M.do_attack_animation(src)
if(M.melee_damage_upper <= 0)
if(M.melee_damage_upper <= 0)
return
attack_generic(M, M.melee_damage_upper)
@@ -177,7 +177,7 @@
/obj/structure/window/attack_slime(mob/living/carbon/slime/user as mob)
user.do_attack_animation(src)
if(!user.is_adult)
if(!user.is_adult)
return
attack_generic(user, rand(10, 15))
@@ -196,11 +196,11 @@
user << (anchored ? "<span class='notice'>You begin to unscrew the frame from the floor.</span>" : "<span class='notice'>You begin to screw the frame to the floor.</span>")
else if(!reinf)
user << (anchored ? "<span class='notice'>You begin to unscrew the window from the floor.</span>" : "<span class='notice'>You begin to screw the window to the floor.</span>")
if(do_after(user, 40))
if(reinf && (state == 1 || state == 2))
//If state was unfastened, fasten it, else do the reverse
state = (state == 1 ? 2 : 1)
state = (state == 1 ? 2 : 1)
user << (state == 1 ? "<span class='notice'>You have unfastened the window from the frame.</span>" : "<span class='notice'>You have fastened the window to the frame.</span>")
else if(reinf && state == 0)
anchored = !anchored
@@ -216,7 +216,7 @@
playsound(loc, 'sound/items/Crowbar.ogg', 75, 1)
if(do_after(user, 40))
//If state was out of frame, put into frame, else do the reverse
state = (state == 0 ? 1 : 0)
state = (state == 0 ? 1 : 0)
user << (state == 1 ? "<span class='notice'>You have pried the window into the frame.</span>" : "<span class='notice'>You have pried the window out of the frame.</span>")
else if(istype(I, /obj/item/weapon/weldingtool))
@@ -472,4 +472,4 @@
dir = 5
maxhealth = 100
shuttlew = 1
fulltile = 1
fulltile = 1
+4 -4
View File
@@ -42,12 +42,12 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
if(floor_tile)
builtin_tile = new floor_tile
/turf/simulated/floor/ex_act(severity, specialty)
/turf/simulated/floor/ex_act(severity, target)
..()
if(specialty == 2)
return
if(specialty == 1)
if(target == src)
src.ChangeTurf(/turf/space)
if(target != null)
ex_act(3)
return
switch(severity)
if(1.0)
@@ -64,8 +64,8 @@
name = "Beach"
icon = 'icons/misc/beach.dmi'
/turf/simulated/floor/beach/ex_act(severity, specialty)
contents_explosion(src, severity)
/turf/simulated/floor/beach/ex_act(severity, target)
contents_explosion(severity, target)
/turf/simulated/floor/beach/sand
name = "Sand"
@@ -90,8 +90,8 @@
icon = 'icons/turf/snow.dmi'
icon_state = "snow"
/turf/simulated/floor/plating/snow/ex_act(severity, specialty)
contents_explosion(src, severity)
/turf/simulated/floor/plating/snow/ex_act(severity, target)
contents_explosion(severity, target)
/turf/simulated/floor/noslip
name = "high-traction floor"
+3 -4
View File
@@ -47,11 +47,10 @@
builtin_sheet.loc = src
new /obj/item/stack/sheet/metal(src)
/turf/simulated/wall/ex_act(severity, specialty)
if(specialty)
/turf/simulated/wall/ex_act(severity, target)
if(target == src)
dismantle_wall(1,1)
return
switch(severity)
if(1.0)
//SN src = null
@@ -78,7 +77,7 @@
if(M.damtype == "brute")
playsound(src, 'sound/weapons/punch4.ogg', 50, 1)
M.occupant_message("<span class='danger'>You hit [src].</span>")
visible_message("<span class='danger'>[src] has been hit by [M.name].</span>")
visible_message("<span class='danger'>[M.name] has hit [src]!</span>")
if(prob(5) && M.force > 20)
dismantle_wall(1)
M.occupant_message("<span class='warning'>You smash through the wall.</span>")
+1 -2
View File
@@ -745,10 +745,9 @@ var/global/list/g_fancy_list_of_types = null
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/clothing/head/chaplain_hood(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/chaplain_hoodie(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/chaplain_hoodie(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(M), slot_l_store)
M.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(M), slot_r_store)
+2 -2
View File
@@ -174,7 +174,7 @@
name = "Doctor"
corpseradio = /obj/item/device/radio/headset/headset_med
corpseuniform = /obj/item/clothing/under/rank/medical
corpsesuit = /obj/item/clothing/suit/labcoat
corpsesuit = /obj/item/clothing/suit/toggle/labcoat
corpseback = /obj/item/weapon/storage/backpack/medic
corpsepocket1 = /obj/item/device/flashlight/pen
corpseshoes = /obj/item/clothing/shoes/sneakers/black
@@ -216,7 +216,7 @@
name = "Scientist"
corpseradio = /obj/item/device/radio/headset/headset_sci
corpseuniform = /obj/item/clothing/under/rank/scientist
corpsesuit = /obj/item/clothing/suit/labcoat/science
corpsesuit = /obj/item/clothing/suit/toggle/labcoat/science
corpseback = /obj/item/weapon/storage/backpack
corpseshoes = /obj/item/clothing/shoes/sneakers/white
corpseid = 1
@@ -324,8 +324,8 @@
placed.underlays += turfs_underlays
//atom creation method that preloads variables before creation
/atom/New(atom/loc, dmm_suite/preloader/_dmm_preloader = null)
if(_dmm_preloader)
/atom/New(atom/loc, dmm_suite/preloader/_dmm_preloader)
if(istype(_dmm_preloader, /dmm_suite/preloader))
_dmm_preloader.load(src)
. = ..()
+1
View File
@@ -141,6 +141,7 @@ BLIND // can't see anything
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
slot_flags = SLOT_OCLOTHING
var/blood_overlay_type = "suit"
var/togglename = null
//Spacesuit
//Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together.
@@ -57,4 +57,6 @@
item_color = null //So they don't wash.
transfer_prints = TRUE
strip_delay = 40
put_on_delay = 20
put_on_delay = 20
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
-7
View File
@@ -33,13 +33,6 @@
desc = "The symbol of true bureaucratic micromanagement."
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
//Chaplain
/obj/item/clothing/head/chaplain_hood
name = "chaplain's hood"
desc = "It's hood that covers the head. It keeps you warm during the space winters."
icon_state = "chaplain_hood"
flags = HEADCOVERSEYES|BLOCKHAIR
//Chaplain
/obj/item/clothing/head/nun_hood
name = "nun hood"
+8
View File
@@ -202,3 +202,11 @@
throw_range = 5
w_class = 2.0
attack_verb = list("warned", "cautioned", "smashed")
/obj/item/clothing/head/santa
name = "santa hat"
desc = "On the first day of christmas my employer gave to me!"
icon_state = "santahatnorm"
item_state = "that"
cold_protection = HEAD
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
+6 -1
View File
@@ -91,15 +91,20 @@
icon_state = "ushankadown"
item_state = "ushankadown"
flags_inv = HIDEEARS
var/earflaps = 1
cold_protection = HEAD
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
/obj/item/clothing/head/ushanka/attack_self(mob/user as mob)
if(src.icon_state == "ushankadown")
if(earflaps)
src.icon_state = "ushankaup"
src.item_state = "ushankaup"
earflaps = 0
user << "You raise the ear flaps on the ushanka."
else
src.icon_state = "ushankadown"
src.item_state = "ushankadown"
earflaps = 1
user << "You lower the ear flaps on the ushanka."
/*
+11 -6
View File
@@ -28,10 +28,6 @@
permeability_coefficient = 0.01
flags = NOSLIP
armor = list(melee = 80, bullet = 60, laser = 50, energy = 50, bomb = 50, bio = 30, rad = 30)
cold_protection = FEET
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
heat_protection = FEET
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
/obj/item/clothing/shoes/space_ninja
name = "ninja shoes"
@@ -95,13 +91,22 @@
strip_delay = 50
put_on_delay = 50
/obj/item/clothing/shoes/winterboots
name = "winter boots"
desc = "Boots lined with 'synthetic' animal fur."
icon_state = "winterboots"
item_state = "winterboots"
cold_protection = FEET|LEGS
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
heat_protection = FEET|LEGS
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
/obj/item/clothing/shoes/cult
name = "boots"
name = "cultist boots"
desc = "A pair of boots worn by the followers of Nar-Sie."
icon_state = "cult"
item_state = "cult"
item_color = "cult"
cold_protection = FEET
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
heat_protection = FEET
@@ -5,7 +5,6 @@
icon_state = "hardsuit0-engineering"
item_state = "eng_helm"
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
allowed = list(/obj/item/device/flashlight)
var/brightness_on = 4 //luminosity when on
var/on = 0
item_color = "engineering" //Determines used sprites: hardsuit[on]-[color] and hardsuit[on]-[color]2 (lying down sprite)
@@ -27,6 +27,8 @@
item_state = "deathsquad"
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
/obj/item/clothing/suit/space/deathsquad
name = "deathsquad suit"
@@ -37,6 +39,8 @@
armor = list(melee = 80, bullet = 80, laser = 50,energy = 50, bomb = 100, bio = 100, rad = 100)
slowdown = 1
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
/obj/item/clothing/head/helmet/space/deathsquad/beret
name = "officer's beret"
@@ -6,6 +6,7 @@
allowed = list(/obj/item/weapon/stock_parts/cell)
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25)
strip_delay = 12
unacidable = 1
/obj/item/clothing/suit/space/space_ninja
@@ -15,6 +16,7 @@
item_state = "s-ninja_suit"
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/stock_parts/cell)
slowdown = 0
unacidable = 1
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
strip_delay = 12

Some files were not shown because too many files have changed in this diff Show More