for-if-I-stand-I-stand-by-his-will-alone

This commit is contained in:
Fox McCloud
2019-10-03 19:52:03 -04:00
parent 99a6ee7827
commit 20c4cf0a08
123 changed files with 336 additions and 267 deletions
+1
View File
@@ -13,6 +13,7 @@ GLOBAL_DATUM_INIT(pipe_icon_manager, /datum/pipe_icon_manager, new())
anchored = 1
layer = GAS_PIPE_HIDDEN_LAYER //under wires
resistance_flags = FIRE_PROOF
max_integrity = 200
plane = FLOOR_PLANE
idle_power_usage = 0
active_power_usage = 0
@@ -5,6 +5,8 @@
name = "pressure tank"
desc = "A large vessel containing pressurized gas."
max_integrity = 800
var/volume = 10000 //in liters, 1 meters by 1 meters by 2 meters ~tweaked it a little to simulate a pressure tank without needing to recode them yet
density = 1
+3 -2
View File
@@ -295,8 +295,9 @@
~~~~~~~~~~~~~~~~~~~~~*/
/obj/mecha/proc/diag_hud_set_mechhealth()
var/image/holder = hud_list[DIAG_MECH_HUD]
holder.icon_state = "huddiag[RoundDiagBar(health/initial(health))]"
var/icon/I = icon(icon, icon_state, dir)
holder.pixel_y = I.Height() - world.icon_size
holder.icon_state = "huddiag[RoundDiagBar(obj_integrity/max_integrity)]"
/obj/mecha/proc/diag_hud_set_mechcell()
var/image/holder = hud_list[DIAG_BATT_HUD]
+1 -1
View File
@@ -2,7 +2,7 @@
name = "blob core"
icon = 'icons/mob/blob.dmi'
icon_state = "blank_blob"
health = 200
max_integrity = 400
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 90)
fire_resist = 2
point_return = -1
+1 -2
View File
@@ -2,8 +2,7 @@
name = "factory blob"
icon = 'icons/mob/blob.dmi'
icon_state = "blob_factory"
health = 100
fire_resist = 2
max_integrity = 200
point_return = 18
var/list/spores = list()
var/max_spores = 3
+1 -2
View File
@@ -2,9 +2,8 @@
name = "blob node"
icon = 'icons/mob/blob.dmi'
icon_state = "blank_blob"
health = 100
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 65, "acid" = 90)
fire_resist = 2
point_return = 18
/obj/structure/blob/node/New(loc, var/h = 100)
+1 -2
View File
@@ -2,8 +2,7 @@
name = "resource blob"
icon = 'icons/mob/blob.dmi'
icon_state = "blob_resource"
health = 30
fire_resist = 2
max_integrity = 60
point_return = 12
var/resource_delay = 0
+19 -11
View File
@@ -3,20 +3,28 @@
icon = 'icons/mob/blob.dmi'
icon_state = "blob_idle"
desc = "Some blob creature thingy"
health = 75
fire_resist = 2
point_return = 4
var/maxHealth = 75
max_integrity = 150
brute_resist = 0.25
explosion_block = 3
atmosblock = TRUE
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
/obj/structure/blob/shield/core
point_return = 0
/obj/structure/blob/shield/update_icon()
if(health <= 0)
qdel(src)
return
return
..()
if(obj_integrity < max_integrity * 0.5)
icon_state = "[initial(icon_state)]_damaged"
name = "weakened [initial(name)]"
desc = "A wall of twitching tendrils."
atmosblock = FALSE
else
icon_state = initial(icon_state)
name = initial(name)
desc = initial(desc)
atmosblock = TRUE
air_update_turf(1)
/obj/structure/blob/shield/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
return
@@ -29,9 +37,9 @@
name = "reflective blob"
desc = "A solid wall of slightly twitching tendrils with a reflective glow."
icon_state = "blob_idle_glow"
brute_resist = 0
health = 50
maxHealth = 50
max_integrity = 100
brute_resist = 0.5
explosion_block = 2
point_return = 9
flags_2 = CHECK_RICOCHET_1
var/reflect_chance = 80 //80% chance to reflect
+1 -1
View File
@@ -97,7 +97,7 @@
..()
if(statpanel("Status"))
if(blob_core)
stat(null, "Core Health: [blob_core.health]")
stat(null, "Core Health: [blob_core.obj_integrity]")
stat(null, "Power Stored: [blob_points]/[max_blob_points]")
/mob/camera/blob/Move(var/NewLoc, var/Dir = 0)
+1 -1
View File
@@ -76,7 +76,7 @@
return
else if(S.health < S.maxHealth * 0.5)
else if(S.obj_integrity < S.max_integrity * 0.5)
to_chat(src, "<span class='warning'>This shield blob is too damaged to be modified properly!</span>")
return
+28 -4
View File
@@ -7,12 +7,14 @@
density = 0
opacity = 0
anchored = 1
max_integrity = 30
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70)
var/point_return = 0 //How many points the blob gets back when it removes a blob of that type. If less than 0, blob cannot be removed.
var/health = 30
var/health_timestamp = 0
var/brute_resist = 4
var/fire_resist = 1
var/atmosblock = FALSE //if the blob blocks atmos and heat spread
var/mob/camera/blob/overmind
@@ -23,15 +25,22 @@
..(loc)
for(var/atom/A in loc)
A.blob_act(src)
if(atmosblock)
air_update_turf(1)
return
/obj/structure/blob/Destroy()
if(atmosblock)
atmosblock = FALSE
air_update_turf(1)
blobs -= src
if(isturf(loc)) //Necessary because Expand() is retarded and spawns a blob and then deletes it
playsound(src.loc, 'sound/effects/splat.ogg', 50, 1)
return ..()
/obj/structure/blob/BlockSuperconductivity()
return atmosblock
/obj/structure/blob/CanPass(atom/movable/mover, turf/target, height=0)
if(height==0)
@@ -40,6 +49,9 @@
return 1
return 0
/obj/structure/blob/CanAtmosPass(turf/T)
return !atmosblock
/obj/structure/blob/CanAStarPass(ID, dir, caller)
. = 0
if(ismovableatom(caller))
@@ -215,15 +227,27 @@
/obj/structure/blob/normal
icon_state = "blob"
light_range = 0
health = 21
obj_integrity = 21 //doesn't start at full health
max_integrity = 25
brute_resist = 0.25
/obj/structure/blob/normal/update_icon()
if(health <= 0)
qdel(src)
else if(health <= 15)
..()
if(obj_integrity <= 15)
icon_state = "blob_damaged"
name = "fragile blob"
desc = "A thin lattice of slightly twitching tendrils."
brute_resist = 0.5
else if(overmind)
icon_state = "blob"
name = "blob"
desc = "A thick wall of writhing tendrils."
brute_resist = 0.25
else
icon_state = "blob"
name = "dead blob"
desc = "A thick wall of lifeless tendrils."
brute_resist = 0.25
/* // Used to create the glow sprites. Remember to set the animate loop to 1, instead of infinite!
@@ -321,7 +321,7 @@
for(var/obj/machinery/porta_turret/turret in GLOB.machines)
var/turf/T = get_turf(turret)
if(is_station_level(T.z))
turret.health += 30
turret.obj_integrity += 30
turret.eprojectile = /obj/item/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR.
turret.eshot_sound = 'sound/weapons/lasercannonfire.ogg'
@@ -477,10 +477,9 @@
anchored = 1
light_range = 1
mouse_opacity = MOUSE_OPACITY_ICON
var/health = 30
max_integrity = 30
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
light_color = LIGHT_COLOR_CYAN
max_integrity = 30
var/lon_range = 1
/obj/structure/swarmer/New()
@@ -525,7 +524,7 @@
icon_state = "trap"
light_range = 1
light_color = LIGHT_COLOR_CYAN
health = 10
max_integrity = 10
/obj/structure/swarmer/trap/Crossed(var/atom/movable/AM, oldloc)
if(isliving(AM))
@@ -566,7 +565,7 @@
icon_state = "barricade"
light_range = 1
light_color = LIGHT_COLOR_CYAN
health = 50
max_integrity = 50
density = 1
anchored = 1
@@ -400,6 +400,7 @@ var/bomb_set
name = "nuclear authentication disk"
desc = "Better keep this safe."
icon_state = "nucleardisk"
max_integrity = 250
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+2
View File
@@ -8,6 +8,7 @@
use_power = IDLE_POWER_USE
current_heat_capacity = 1000
layer = 3
max_integrity = 300
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 30)
/obj/machinery/atmospherics/unary/cold_sink/freezer/New()
@@ -168,6 +169,7 @@
anchored = 1.0
layer = 3
current_heat_capacity = 1000
max_integrity = 300
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 30)
/obj/machinery/atmospherics/unary/heat_reservoir/heater/New()
+1
View File
@@ -5,6 +5,7 @@
icon_state = "pdapainter"
density = 1
anchored = 1
max_integrity = 200
var/obj/item/pda/storedpda = null
var/list/colorlist = list()
+1
View File
@@ -5,6 +5,7 @@
layer = 3
plane = FLOOR_PLANE
anchored = 1.0
max_integrity = 200
armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30)
var/uses = 20
var/disabled = TRUE
+2
View File
@@ -80,6 +80,8 @@
active_power_usage = 8
power_channel = ENVIRON
req_one_access = list(access_atmospherics, access_engine_equip)
max_integrity = 250
integrity_failure = 80
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30)
resistance_flags = FIRE_PROOF
siemens_strength = 1
@@ -51,6 +51,8 @@ var/datum/canister_icons/canister_icon_container = new()
var/health = 100.0
flags = CONDUCT
armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 50)
max_integrity = 250
integrity_failure = 100
var/menu = 0
//used by nanoui: 0 = main menu, 1 = relabel
+1
View File
@@ -8,6 +8,7 @@
var/obj/machinery/atmospherics/pipe/target = null
anchored = TRUE
max_integrity = 150
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 40, "acid" = 0)
power_channel = ENVIRON
var/frequency = ATMOS_DISTRO_FREQ
@@ -1,6 +1,7 @@
/obj/machinery/portable_atmospherics
name = "atmoalter"
use_power = NO_POWER_USE
max_integrity = 250
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 60, "acid" = 30)
var/datum/gas_mixture/air_contents = new
+2 -1
View File
@@ -255,7 +255,8 @@
assembly.update_icon()
assembly = null
else
new /obj/item/camera_assembly(loc)
var/obj/item/I = new /obj/item/camera_assembly(loc)
I.obj_integrity = I.max_integrity * 0.5
new /obj/item/stack/cable_coil(loc, 2)
qdel(src)
+1
View File
@@ -4,6 +4,7 @@
name = "AI core"
icon = 'icons/mob/AI.dmi'
icon_state = "0"
max_integrity = 500
var/state = 0
var/datum/ai_laws/laws = null
var/obj/item/circuitboard/circuit = null
+2
View File
@@ -7,6 +7,8 @@
use_power = IDLE_POWER_USE
idle_power_usage = 300
active_power_usage = 300
max_integrity = 200
integrity_failure = 100
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 20)
var/obj/item/circuitboard/circuit = null //if circuit==null, computer can't disassembly
var/processing = 0
+1 -1
View File
@@ -5,7 +5,7 @@
density = 1
anchored = 1
use_power = NO_POWER_USE
max_integrity = 100
max_integrity = 250
var/obj/item/circuitboard/circuit = null
var/list/components = null
var/list/req_components = null
+1
View File
@@ -8,6 +8,7 @@
layer = ABOVE_WINDOW_LAYER
plane = GAME_PLANE
interact_offline = 1
max_integrity = 350
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 30, "acid" = 30)
var/on = 0
var/temperature_archived
-1
View File
@@ -284,7 +284,6 @@
icon_state = "frame1"
anchored = FALSE
density = TRUE
max_integrity = 300
var/constructionStep = CONSTRUCTION_NOCIRCUIT
var/reinforced = 0
+1
View File
@@ -8,6 +8,7 @@
explosion_block = 3
heat_proof = TRUE
safe = FALSE
max_integrity = 600
armor = list("melee" = 50, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 70)
resistance_flags = FIRE_PROOF
damage_deflection = 70
+1 -2
View File
@@ -40,8 +40,7 @@
/obj/machinery/door/window/Destroy()
density = FALSE
for(var/I in debris)
qdel(I)
QDEL_LIST(debris)
if(obj_integrity == 0)
playsound(src, "shatter", 70, 1)
QDEL_NULL(electronics)
+2
View File
@@ -12,6 +12,8 @@ FIRE ALARM
var/timing = 0.0
var/lockdownbyai = 0
anchored = 1.0
max_integrity = 250
integrity_failure = 100
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100, fire = 90, acid = 30)
use_power = IDLE_POWER_USE
idle_power_usage = 2
+2
View File
@@ -5,6 +5,8 @@
desc = "A wall-mounted flashbulb device."
icon = 'icons/obj/stationobjs.dmi'
icon_state = "mflash1"
max_integrity = 250
integrity_failure = 100
damage_deflection = 10
var/id = null
var/range = 2 //this is roughly the size of brig cell
+2
View File
@@ -4,6 +4,8 @@
icon_state = "flood00"
anchored = FALSE
density = TRUE
max_integrity = 100
integrity_failure = 80
light_power = 20
var/on = FALSE
var/obj/item/stock_parts/cell/high/cell = null
+1
View File
@@ -45,6 +45,7 @@ var/list/holopads = list()
active_power_usage = 100
layer = TURF_LAYER+0.1 //Preventing mice and drones from sneaking under them.
plane = FLOOR_PLANE
max_integrity = 300
armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0)
var/list/masters = list()//List of living mobs that use the holopad
var/list/holorays = list()//Holoray-mob link.
+1
View File
@@ -4,6 +4,7 @@
icon = 'icons/obj/stationobjs.dmi'
icon_state = "igniter1"
plane = FLOOR_PLANE
max_integrity = 300
armor = list(melee = 50, bullet = 30, laser = 70, energy = 50, bomb = 20, bio = 0, rad = 0, fire = 100, acid = 70)
resistance_flags = FIRE_PROOF
var/id = null
+1
View File
@@ -97,6 +97,7 @@ Class Procs:
name = "machinery"
icon = 'icons/obj/stationobjs.dmi'
pressure_resistance = 15
max_integrity = 200
layer = BELOW_OBJ_LAYER
var/stat = 0
var/emagged = 0
+1
View File
@@ -10,6 +10,7 @@
level = 1 // underfloor
layer = 2.5
anchored = 1
max_integrity = 500
armor = list(melee = 70, bullet = 70, laser = 70, energy = 70, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80)
var/open = 0 // true if cover is open
var/locked = 1 // true if controls are locked
+13 -8
View File
@@ -79,6 +79,8 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
icon = 'icons/obj/terminals.dmi'
icon_state = "newscaster_normal"
armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30)
max_integrity = 200
integrity_failure = 50
var/screen = NEWSCASTER_MAIN
var/paper_remaining = 15
var/securityCaster = 0
@@ -139,21 +141,24 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
return ..()
/obj/machinery/newscaster/update_icon()
overlays.Cut()
cut_overlays()
if(inoperable())
icon_state = "newscaster_off"
if(stat & BROKEN) //If the thing is smashed, add crack overlay on top of the unpowered sprite.
overlays += image(icon, "crack3")
else
if(!news_network.wanted_issue) //wanted icon state, there can be no overlays on it as it's a priority message
icon_state = "newscaster_normal"
if(alert) //new message alert overlay
overlays += "newscaster_alert"
add_overlay("newscaster_alert")
var/hp_percent = obj_integrity * 100 /max_integrity
switch(hp_percent)
if(75 to 100)
return
if(50 to 75)
add_overlay("crack1")
if(25 to 50)
add_overlay("crack2")
else
icon_state = "newscaster_wanted"
if(hitstaken > 0) //Cosmetic damage overlay
overlays += image(icon, "crack[hitstaken]")
add_overlay("crack3")
/obj/machinery/newscaster/power_change()
..()
+3
View File
@@ -13,6 +13,9 @@
idle_power_usage = 50 //when inactive, this turret takes up constant 50 Equipment power
active_power_usage = 300 //when active, this turret takes up constant 300 Equipment power
power_channel = EQUIP //drains power from the EQUIPMENT channel
max_integrity = 160 //the turret's health
integrity_failure = 80
armor = list(melee = 50, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 0, rad = 0, fire = 90, acid = 90)
var/raised = 0 //if the turret cover is "open" and the turret is raised
var/raising= 0 //if the turret is currently opening or closing its cover
+1
View File
@@ -38,6 +38,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
anchored = 1
icon = 'icons/obj/terminals.dmi'
icon_state = "req_comp0"
max_integrity = 300
armor = list("melee" = 70, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department
var/list/message_log = list() //List of all messages
+1
View File
@@ -5,6 +5,7 @@
icon_state = "sheater0"
name = "space heater"
desc = "Made by Space Amish using traditional space techniques, this heater is guaranteed not to set the station on fire."
max_integrity = 250
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 10)
var/obj/item/stock_parts/cell/cell
var/on = 0
-1
View File
@@ -3,7 +3,6 @@
var/maxsize = 2
internal_damage_threshold = 50
maint_access = 0
damage_absorption = list("brute"=0.7,"fire"=1,"bullet"=0.7,"laser"=0.85,"energy"=1,"bomb"=0.8)
armor = list(melee = 30, bullet = 30, laser = 15, energy = 20, bomb = 20, bio = 0, rad = 0, fire = 100, acid = 100)
destruction_sleep_duration = 2
var/am = "d3c2fbcadca903a41161ccc9df9cf948"
+3 -4
View File
@@ -5,9 +5,8 @@
initial_icon = "durand"
step_in = 4
dir_in = 1 //Facing North.
health = 400
max_integrity = 400
deflect_chance = 20
damage_absorption = list("brute"=0.5,"fire"=1.1,"bullet"=0.65,"laser"=0.85,"energy"=0.9,"bomb"=0.8)
armor = list(melee = 40, bullet = 35, laser = 15, energy = 10, bomb = 20, bio = 0, rad = 50, fire = 100, acid = 100)
max_temperature = 30000
infra_luminosity = 8
@@ -36,9 +35,9 @@
initial_icon = "old_durand"
step_in = 4
dir_in = 1 //Facing North.
health = 400
max_integrity = 400
deflect_chance = 20
damage_absorption = list("brute"=0.5,"fire"=1.1,"bullet"=0.65,"laser"=0.85,"energy"=0.9,"bomb"=0.8)
armor = list(melee = 50, bullet = 35, laser = 15, energy = 15, bomb = 20, bio = 0, rad = 50, fire = 100, acid = 100)
max_temperature = 30000
infra_luminosity = 8
force = 40
+2 -4
View File
@@ -5,9 +5,8 @@
initial_icon = "gygax"
step_in = 3
dir_in = 1 //Facing North.
health = 250
max_integrity = 250
deflect_chance = 5
damage_absorption = list("brute"=0.75,"fire"=1,"bullet"=0.8,"laser"=0.7,"energy"=0.85,"bomb"=1)
armor = list(melee = 25, bullet = 20, laser = 30, energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100)
max_temperature = 25000
infra_luminosity = 6
@@ -39,9 +38,8 @@
name = "Dark Gygax"
icon_state = "darkgygax"
initial_icon = "darkgygax"
health = 300
max_integrity = 300
deflect_chance = 15
damage_absorption = list("brute"=0.6,"fire"=0.8,"bullet"=0.6,"laser"=0.5,"energy"=0.65,"bomb"=0.8)
armor = list(melee = 40, bullet = 40, laser = 50, energy = 35, bomb = 20, bio = 0, rad =20, fire = 100, acid = 100)
max_temperature = 35000
leg_overload_coeff = 100
+2 -3
View File
@@ -4,10 +4,9 @@
icon_state = "honker"
initial_icon = "honker"
step_in = 3
health = 140
max_integrity = 140
deflect_chance = 60
internal_damage_threshold = 60
damage_absorption = list("brute"=1.2,"fire"=1.5,"bullet"=1,"laser"=1,"energy"=1,"bomb"=1)
armor = list("melee" = -20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
max_temperature = 25000
infra_luminosity = 5
@@ -28,7 +27,7 @@
ME.attach(src)
/obj/mecha/combat/honker/get_stats_part()
var/integrity = health/initial(health)*100
var/integrity = obj_integrity/max_integrity*100
var/cell_charge = get_charge()
var/tank_pressure = internal_tank ? round(internal_tank.return_pressure(),0.01) : "None"
var/tank_temperature = internal_tank ? internal_tank.return_temperature() : "Unknown"
+2 -3
View File
@@ -4,9 +4,8 @@
icon_state = "marauder"
initial_icon = "marauder"
step_in = 5
health = 500
max_integrity = 500
deflect_chance = 25
damage_absorption = list("brute"=0.5,"fire"=0.7,"bullet"=0.45,"laser"=0.6,"energy"=0.7,"bomb"=0.7)
armor = list("melee" = 50, "bullet" = 55, "laser" = 40, "energy" = 30, "bomb" = 30, "bio" = 0, "rad" = 60, "fire" = 100, "acid" = 100)
max_temperature = 60000
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
@@ -52,7 +51,7 @@
initial_icon = "seraph"
operation_req_access = list(access_cent_commander)
step_in = 3
health = 550
max_integrity = 550
wreckage = /obj/effect/decal/mecha_wreckage/seraph
internal_damage_threshold = 20
force = 80
+1 -2
View File
@@ -7,9 +7,8 @@
dir_in = 2 //Facing south.
step_energy_drain = 3
normal_step_energy_drain = 3
health = 200
max_integrity = 200
deflect_chance = 30
damage_absorption = list("brute"=0.7,"fire"=0.7,"bullet"=0.7,"laser"=0.7,"energy"=0.7,"bomb"=0.7)
armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 30, "bio" = 0, "rad" = 50, "fire" = 100, "acid" = 100)
max_temperature = 25000
infra_luminosity = 3
+1 -2
View File
@@ -5,9 +5,8 @@
initial_icon = "mime"
step_in = 2
dir_in = 1 //Facing North.
health = 150
max_integrity = 150
deflect_chance = 30
damage_absorption = list("brute"=0.75,"fire"=1,"bullet"=0.8,"laser"=0.7,"energy"=0.85,"bomb"=1)
armor = list("melee" = 25, "bullet" = 20, "laser" = 30, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
max_temperature = 15000
wreckage = /obj/effect/decal/mecha_wreckage/reticence
@@ -7,6 +7,7 @@
icon_state = "mecha_equip"
force = 5
origin_tech = "materials=2;engineering=2"
max_integrity = 300
var/equip_cooldown = 0
var/equip_ready = 1
var/energy_drain = 0
@@ -245,8 +245,8 @@
chassis.clearInternalDamage(int_dam_flag)
repaired = 1
break
if(health_boost<0 || chassis.health < initial(chassis.health))
chassis.health += min(health_boost, initial(chassis.health)-chassis.health)
if(h_boost<0 || chassis.obj_integrity < chassis.max_integrity)
chassis.obj_integrity += min(h_boost, chassis.max_integrity-chassis.obj_integrity)
repaired = 1
if(repaired)
if(!chassis.use_power(energy_drain))
+1 -1
View File
@@ -175,7 +175,7 @@
if(recharge_port && !QDELETED(recharge_port))
data["recharge_port"] = list("mech" = null)
if(recharge_port.recharging_mecha && !QDELETED(recharge_port.recharging_mecha))
data["recharge_port"]["mech"] = list("health" = recharge_port.recharging_mecha.health, "maxhealth" = initial(recharge_port.recharging_mecha.health), "cell" = null)
data["recharge_port"]["mech"] = list("health" = recharge_port.recharging_mecha.obj_integrity, "maxhealth" = initial(recharge_port.recharging_mecha.max_integrity), "cell" = null)
if(recharge_port.recharging_mecha.cell && !QDELETED(recharge_port.recharging_mecha.cell))
data["has_mech"] = 1
data["mecha_name"] = recharge_port.recharging_mecha || "None"
+14 -32
View File
@@ -15,6 +15,7 @@
layer = MOB_LAYER //icon draw layer
infra_luminosity = 15 //byond implementation is bugged.
force = 5
max_integrity = 300 //max_integrity is base health
armor = list(melee = 20, bullet = 10, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100)
var/list/facing_modifiers = list(MECHA_FRONT_ARMOUR = 1.5, MECHA_SIDE_ARMOUR = 1, MECHA_BACK_ARMOUR = 0.5)
var/ruin_mecha = FALSE //if the mecha starts on a ruin, don't automatically give it a tracking beacon to prevent metagaming.
@@ -27,10 +28,7 @@
var/step_energy_drain = 10
var/melee_energy_drain = 15
var/overload_step_energy_drain_min = 100
var/health = 300 //health is health
var/deflect_chance = 10 //chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act.
//the values in this list show how much damage will pass through, not how much will be absorbed.
var/list/damage_absorption = list("brute"=0.8,"fire"=1.2,"bullet"=0.9,"laser"=1,"energy"=1,"bomb"=1)
var/obj/item/stock_parts/cell/cell
var/state = 0
var/list/log = new
@@ -167,7 +165,7 @@
/obj/mecha/examine(mob/user)
. = ..()
var/integrity = health/initial(health)*100
var/integrity = obj_integrity * 100 / max_integrity
switch(integrity)
if(85 to 100)
. += "It's fully intact."
@@ -328,8 +326,7 @@
else
occupant.clear_alert("mechaport")
if(leg_overload_mode)
take_damage(1)
if(health < initial(health) - initial(health) / 3)
if(obj_integrity < max_integrity - max_integrity / 3)
leg_overload_mode = FALSE
step_in = initial(step_in)
step_energy_drain = initial(step_energy_drain)
@@ -436,10 +433,11 @@
//////// Internal damage ////////
///////////////////////////////////
/obj/mecha/proc/check_for_internal_damage(var/list/possible_int_damage,var/ignore_threshold=null)
if(!islist(possible_int_damage) || isemptylist(possible_int_damage)) return
/obj/mecha/proc/check_for_internal_damage(list/possible_int_damage, ignore_threshold=null)
if(!islist(possible_int_damage) || isemptylist(possible_int_damage))
return
if(prob(20))
if(ignore_threshold || health*100/initial(health)<internal_damage_threshold)
if(ignore_threshold || obj_integrity*100/max_integrity < internal_damage_threshold)
for(var/T in possible_int_damage)
if(internal_damage & T)
possible_int_damage -= T
@@ -447,11 +445,10 @@
if(int_dam_flag)
setInternalDamage(int_dam_flag)
if(prob(5))
if(ignore_threshold || health*100/initial(health)<internal_damage_threshold)
var/obj/item/mecha_parts/mecha_equipment/destr = safepick(equipment)
if(destr)
qdel(destr)
return
if(ignore_threshold || obj_integrity*100/max_integrity < internal_damage_threshold)
var/obj/item/mecha_parts/mecha_equipment/ME = safepick(equipment)
if(ME)
qdel(ME)
/obj/mecha/proc/hasInternalDamage(int_dam_flag=null)
return int_dam_flag ? internal_damage&int_dam_flag : internal_damage
@@ -534,21 +531,6 @@
if(.)
. *= booster_damage_modifier
/obj/mecha/proc/absorbDamage(damage,damage_type)
return call((proc_res["dynabsorbdamage"]||src), "dynabsorbdamage")(damage,damage_type)
/obj/mecha/proc/dynabsorbdamage(damage,damage_type)
return damage*(listgetindex(damage_absorption,damage_type) || 1)
/obj/mecha/proc/update_health()
if(health > 0)
spark_system.start()
diag_hud_set_mechhealth()
else
qdel(src)
return
/obj/mecha/attack_hand(mob/living/user)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
@@ -773,7 +755,7 @@
else if(iswelder(W) && user.a_intent != INTENT_HARM)
var/obj/item/weldingtool/WT = W
if(health < initial(health))
if(obj_integrity < max_integrity)
if(WT.remove_fuel(0, user))
user.visible_message("<span class='notice'>[user] starts repairing some damage to [name].</span>", "<span class='notice'>You start repairing some damage to [name]</span>")
if(do_after_once(user, 15 * WT.toolspeed, target = src, attempt_cancel_message = "You stop repairing [name]."))
@@ -782,7 +764,7 @@
user.visible_message("<span class='notice'>[user] repairs the damaged gas tank.</span>", "<span class='notice'>You repair the damaged gas tank.</span>")
else
user.visible_message("<span class='notice'>[user] repairs some damage to [name].</span>", "<span class='notice'>You repair some damage to [name].</span>")
health += min(20, initial(health) - health)
obj_integrity += min(10, max_integrity - obj_integrity)
else
to_chat(user, "<span class='warning'>The welder must be on for this task!</span>")
else
@@ -1073,7 +1055,7 @@
visible_message("<span class='notice'>[user] starts to climb into [src]")
if(do_after(user, 40, target = src))
if(health <= 0)
if(obj_integrity <= 0)
to_chat(user, "<span class='warning'>You cannot get in the [name], it has been destroyed!</span>")
else if(occupant)
to_chat(user, "<span class='danger'>[occupant] was faster! Try better next time, loser.</span>")
+1 -2
View File
@@ -113,7 +113,6 @@
chassis.log_message("Toggled defence mode.")
UpdateButtonIcon()
/datum/action/innate/mecha/mech_overload_mode
name = "Toggle leg actuators overload"
button_icon_state = "mech_overload_off"
@@ -121,7 +120,7 @@
/datum/action/innate/mecha/mech_overload_mode/Activate(forced_state = null)
if(!owner || !chassis || chassis.occupant != owner)
return
if(chassis.health < initial(chassis.health) - initial(chassis.health) / 3)
if(chassis.obj_integrity < chassis.max_integrity - chassis.max_integrity / 3)
chassis.occupant_message("<span class='danger'>The leg actuators are too damaged to overload!</span>")
return // Can't activate them if the mech is too damaged
if(!isnull(forced_state))
+2 -2
View File
@@ -89,7 +89,7 @@
answer["cell_percentage"] = round(M.cell.percent())
else
answer["cell"] = 0
answer["integrity"] = M.health/initial(M.health)*100
answer["integrity"] = round((M.obj_integrity/M.max_integrity*100), 0.01)
answer["airtank"] = M.return_pressure()
answer["pilot"] = "[M.occupant||"None"]"
var/area/area = get_area(M)
@@ -109,7 +109,7 @@
var/cell_charge = M.get_charge()
var/area/A = get_area(M)
var/answer = {"<b>Name:</b> [M.name]
<b>Integrity:</b> [M.health/initial(M.health)*100]%
<b>Integrity:</b> [M.obj_integrity / M.max_integrity * 100]%
<b>Cell charge:</b> [isnull(cell_charge)?"Not found":"[M.cell.percent()]%"]
<b>Airtank:</b> [M.return_pressure()]kPa
<b>Pilot:</b> [M.occupant||"None"]
+1 -1
View File
@@ -69,7 +69,7 @@
/obj/mecha/proc/get_stats_part()
var/integrity = health/initial(health)*100
var/integrity = obj_integrity/max_integrity*100
var/cell_charge = get_charge()
var/tank_pressure = internal_tank ? round(internal_tank.return_pressure(),0.01) : "None"
var/tank_temperature = internal_tank ? internal_tank.return_temperature() : "Unknown"
+1 -1
View File
@@ -5,7 +5,7 @@
initial_icon = "odysseus"
step_in = 3
max_temperature = 15000
health = 120
max_integrity = 120
wreckage = /obj/effect/decal/mecha_wreckage/odysseus
internal_damage_threshold = 35
deflect_chance = 15
+22 -29
View File
@@ -7,15 +7,15 @@
var/fast_pressure_step_in = 2 //step_in while in normal pressure conditions
var/slow_pressure_step_in = 4 //step_in while in better pressure conditions
max_temperature = 20000
health = 200
max_integrity = 200
lights_power = 7
deflect_chance = 15
damage_absorption = list("brute"=0.6,"fire"=1,"bullet"=0.8,"laser"=0.9,"energy"=1,"bomb"=0.6)
armor = list("melee" = 40, "bullet" = 20, "laser" = 10, "energy" = 20, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
max_equip = 6
wreckage = /obj/effect/decal/mecha_wreckage/ripley
var/list/cargo = new
var/cargo_capacity = 15
var/hides = 0
/obj/mecha/working/ripley/Move()
. = ..()
@@ -32,9 +32,8 @@
ore.forceMove(ore_box)
/obj/mecha/working/ripley/Destroy()
while(damage_absorption["brute"] < 0.6)
new /obj/item/stack/sheet/animalhide/goliath_hide(loc)
damage_absorption["brute"] = damage_absorption["brute"] + 0.1 //If a goliath-plated ripley gets killed, all the plates drop
for(var/i=1, i <= hides, i++)
new /obj/item/stack/sheet/animalhide/goliath_hide(loc) //If a goliath-plated ripley gets killed, all the plates drop
for(var/atom/movable/A in cargo)
A.forceMove(loc)
step_rand(A)
@@ -43,30 +42,24 @@
/obj/mecha/working/ripley/go_out()
..()
if(damage_absorption["brute"] < 0.6 && damage_absorption["brute"] > 0.3)
overlays = null
overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-open")
else if(damage_absorption["brute"] == 0.3)
overlays = null
overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full-open")
update_icon()
/obj/mecha/working/ripley/moved_inside(var/mob/living/carbon/human/H as mob)
/obj/mecha/working/ripley/moved_inside(mob/living/carbon/human/H)
..()
if(damage_absorption["brute"] < 0.6 && damage_absorption["brute"] > 0.3)
overlays = null
overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g")
else if(damage_absorption["brute"] == 0.3)
overlays = null
overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full")
update_icon()
/obj/mecha/working/ripley/mmi_moved_inside(var/obj/item/mmi/mmi_as_oc as obj,mob/user as mob)
/obj/mecha/working/ripley/mmi_moved_inside(obj/item/mmi/mmi_as_oc, mob/user)
..()
if(damage_absorption["brute"] < 0.6 && damage_absorption["brute"] > 0.3)
overlays = null
overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g")
else if(damage_absorption["brute"] == 0.3)
overlays = null
overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full")
update_icon()
/obj/mecha/working/ripley/update_icon()
..()
if(hides)
cut_overlays()
if(hides < 3)
add_overlay(occupant ? "ripley-g" : "ripley-g-open")
else
add_overlay(occupant ? "ripley-g-full" : "ripley-g-full-open")
/obj/mecha/working/ripley/firefighter
desc = "Standart APLU chassis was refitted with additional thermal protection and cistern."
@@ -74,10 +67,9 @@
icon_state = "firefighter"
initial_icon = "firefighter"
max_temperature = 65000
health = 250
max_integrity = 250
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
lights_power = 7
damage_absorption = list("brute"=0.6,"fire"=0.5,"bullet"=0.7,"laser"=0.7,"energy"=1,"bomb"=0.4)
armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 60, "bio" = 0, "rad" = 70, "fire" = 100, "acid" = 100)
max_equip = 5 // More armor, less tools
wreckage = /obj/effect/decal/mecha_wreckage/ripley/firefighter
@@ -91,9 +83,9 @@
slow_pressure_step_in = 3
opacity=0
max_temperature = 65000
health = 300
max_integrity = 300
lights_power = 7
damage_absorption = list("brute"=0.6,"fire"=0.4,"bullet"=0.6,"laser"=0.6,"energy"=1,"bomb"=0.3)
armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 0, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
wreckage = /obj/effect/decal/mecha_wreckage/ripley/deathripley
step_energy_drain = 0
normal_step_energy_drain = 0
@@ -107,6 +99,7 @@
/obj/mecha/working/ripley/mining
desc = "An old, dusty mining ripley."
name = "APLU \"Miner\""
obj_integrity = 75 //Low starting health
/obj/mecha/working/ripley/mining/New()
..()
+7 -28
View File
@@ -3,13 +3,13 @@
/obj/structure/glowshroom
name = "glowshroom"
desc = "Mycena Bregprox, a species of mushroom that glows in the dark."
anchored = 1
anchored = TRUE
opacity = 0
density = 0
density = FALSE
icon = 'icons/obj/lighting.dmi'
icon_state = "glowshroom" //replaced in New
layer = 2.1
var/endurance = 30
layer = ABOVE_NORMAL_TURF_LAYER
max_integrity = 30
var/delay = 1200
var/floor = 0
var/generation = 1
@@ -52,7 +52,8 @@
myseed.adjust_production(rand(-3,6))
myseed.adjust_endurance(rand(-3,6))
delay = delay - myseed.production * 100 //So the delay goes DOWN with better stats instead of up. :I
endurance = myseed.endurance
obj_integrity = myseed.endurance
max_integrity = myseed.endurance
if(myseed.get_gene(/datum/plant_gene/trait/glow))
var/datum/plant_gene/trait/glow/G = myseed.get_gene(/datum/plant_gene/trait/glow)
set_light(G.glow_range(myseed), G.glow_power(myseed), G.glow_color)
@@ -151,23 +152,6 @@
floor = 1
return 1
/obj/structure/glowshroom/attackby(obj/item/I, mob/user)
..()
var/damage_to_do = I.force
if(istype(I, /obj/item/scythe))
var/obj/item/scythe/S = I
if(S.extend) //so folded telescythes won't get damage boosts / insta-clears (they instead will instead be treated like non-scythes)
damage_to_do *= 4
for(var/obj/structure/glowshroom/G in range(1,src))
G.endurance -= damage_to_do
G.CheckEndurance()
return
else if(I.sharp)
damage_to_do = I.force * 3 // wirecutter: 6->18, knife 10->30, hatchet 12->36
if(I.damtype != STAMINA)
endurance -= damage_to_do
CheckEndurance()
/obj/structure/glowshroom/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
if(damage_type == BURN && damage_amount)
playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE)
@@ -175,12 +159,7 @@
/obj/structure/glowshroom/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
endurance -= 5
CheckEndurance()
/obj/structure/glowshroom/proc/CheckEndurance()
if(endurance <= 0)
qdel(src)
take_damage(5, BURN, 0, 0)
/obj/structure/glowshroom/acid_act(acidpwr, acid_volume)
. = 1
+5 -34
View File
@@ -5,7 +5,7 @@
icon = 'icons/effects/effects.dmi'
anchored = TRUE
density = FALSE
var/health = 15
max_integrity = 15
var/mob/living/carbon/human/master_commander = null
/obj/structure/spider/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
@@ -26,31 +26,10 @@
master_commander = null
return ..()
/obj/structure/spider/attackby(obj/item/W, mob/user, params)
if(W.attack_verb.len)
visible_message("<span class='danger'>[user] has [pick(W.attack_verb)] [src] with [W]!</span>")
else
visible_message("<span class='danger'>[user] has attacked [src] with [W]!</span>")
var/damage = W.force / 4
if(iswelder(W))
var/obj/item/weldingtool/WT = W
if(WT.remove_fuel(0, user))
damage = 15
playsound(loc, WT.usesound, 100, 1)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
health -= damage
healthcheck()
/obj/structure/spider/proc/healthcheck()
if(health <= 0)
qdel(src)
/obj/structure/spider/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
health -= 5
healthcheck()
take_damage(5, BURN, 0, 0)
/obj/structure/spider/stickyweb
icon_state = "stickyweb1"
@@ -105,7 +84,7 @@
icon_state = "spiderling"
anchored = 0
layer = 2.75
health = 3
max_integrity = 3
var/amount_grown = 0
var/grow_as = null
var/obj/machinery/atmospherics/unary/vent_pump/entry_vent
@@ -123,6 +102,7 @@
/obj/structure/spider/spiderling/Destroy()
STOP_PROCESSING(SSobj, src)
entry_vent = null
new /obj/effect/decal/cleanable/spiderling_remains(get_turf(src))
return ..()
/obj/structure/spider/spiderling/Bump(atom/user)
@@ -131,15 +111,6 @@
else
..()
/obj/structure/spider/spiderling/proc/die()
visible_message("<span class='alert'>[src] dies!</span>")
new /obj/effect/decal/cleanable/spiderling_remains(loc)
qdel(src)
/obj/structure/spider/spiderling/healthcheck()
if(health <= 0)
die()
/obj/structure/spider/spiderling/process()
if(travelling_in_vent)
if(istype(loc, /turf))
@@ -229,7 +200,7 @@
name = "cocoon"
desc = "Something wrapped in silky spider web"
icon_state = "cocoon1"
health = 60
max_integrity = 60
/obj/structure/spider/cocoon/New()
..()
+2
View File
@@ -15,6 +15,8 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
var/inhand_x_dimension = 32
var/inhand_y_dimension = 32
max_integrity = 200
can_be_hit = FALSE
suicidal_hands = TRUE
+1
View File
@@ -22,6 +22,7 @@
sound = 'sound/items/zip.ogg'
var/item_path = /obj/item/bodybag
density = 0
integrity_failure = 0
/obj/structure/closet/body_bag/attackby(W as obj, mob/user as mob, params)
@@ -5,6 +5,7 @@
lefthand_file = 'icons/mob/inhands/equipment/instruments_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/instruments_righthand.dmi'
resistance_flags = FLAMMABLE
max_integrity = 100
var/datum/song/handheld/song
var/instrumentId = "generic"
var/instrumentExt = "mid"
@@ -8,6 +8,7 @@
throw_speed = 3
throw_range = 7
resistance_flags = FLAMMABLE
max_integrity = 40
var/heal_brute = 0
var/heal_burn = 0
var/self_delay = 20
@@ -133,52 +133,41 @@ var/global/list/datum/stack_recipe/sinew_recipes = list ( \
flags = NOBLUDGEON
w_class = WEIGHT_CLASS_NORMAL
layer = MOB_LAYER
var/static/list/can_strengthen_clothing
/obj/item/stack/sheet/animalhide/goliath_hide/Initialize(mapload)
. = ..()
if(!can_strengthen_clothing)
can_strengthen_clothing = typecacheof(list(
var/static/list/goliath_platable_armor_typecache = typecacheof(list(
/obj/item/clothing/suit/space/hardsuit/mining,
/obj/item/clothing/head/helmet/space/hardsuit/mining,
/obj/item/clothing/suit/hooded/explorer,
/obj/item/clothing/head/hooded/explorer,
/obj/item/clothing/head/helmet/space/plasmaman/mining
))
/obj/item/clothing/head/helmet/space/plasmaman/mining))
/obj/item/stack/sheet/animalhide/goliath_hide/afterattack(atom/target, mob/user, proximity_flag)
if(proximity_flag)
if(is_type_in_typecache(target, can_strengthen_clothing))
var/obj/item/clothing/C = target
var/current_armor = C.armor
if(current_armor["melee"] < 60)
current_armor["melee"] = min(current_armor["melee"] + 10, 60)
to_chat(user, "<span class='info'>You strengthen [target], improving its resistance against melee attacks.</span>")
use(1)
if(!proximity_flag)
return
if(is_type_in_typecache(target, goliath_platable_armor_typecache))
var/obj/item/clothing/C = target
var/list/current_armor = C.armor
if(current_armor["melee"] < 60)
current_armor["melee"] = min(current_armor["melee"] + 10, 60)
to_chat(user, "<span class='info'>You strengthen [target], improving its resistance against melee attacks.</span>")
use(1)
else
to_chat(user, "<span class='warning'>You can't improve [C] any further!</span>")
else if(istype(target, /obj/mecha/working/ripley))
var/obj/mecha/working/ripley/D = target
if(D.hides < 3)
D.hides++
D.armor["melee"] = min(D.armor["melee"] + 10, 70)
D.armor["bullet"] = min(D.armor["bullet"] + 5, 50)
D.armor["laser"] = min(D.armor["laser"] + 5, 50)
to_chat(user, "<span class='info'>You strengthen [target], improving its resistance against melee attacks.</span>")
D.update_icon()
if(D.hides == 3)
D.desc = "Autonomous Power Loader Unit. It's wearing a fearsome carapace entirely composed of goliath hide plates - its pilot must be an experienced monster hunter."
else
to_chat(user, "<span class='info'>You can't improve [C] any further.</span>")
return
if(istype(target, /obj/mecha/working/ripley))
var/obj/mecha/D = target
if(D.icon_state != "ripley-open")
to_chat(user, "<span class='info'>You can't add armour onto the mech while someone is inside!</span>")
return
var/list/damage_absorption = D.damage_absorption
if(damage_absorption["brute"] > 0.3)
damage_absorption["brute"] = max(damage_absorption["brute"] - 0.1, 0.3)
damage_absorption["bullet"] = damage_absorption["bullet"] - 0.05
damage_absorption["fire"] = damage_absorption["fire"] - 0.05
damage_absorption["laser"] = damage_absorption["laser"] - 0.025
to_chat(user, "<span class='info'>You strengthen [target], improving its resistance against melee attacks.</span>")
use(1)
D.overlays += image("icon"="mecha.dmi", "icon_state"="ripley-g-open")
D.desc = "Autonomous Power Loader Unit. Its armour is enhanced with some goliath hide plates."
if(damage_absorption["brute"] == 0.3)
D.overlays += image("icon"="mecha.dmi", "icon_state"="ripley-g-full-open")
D.desc = "Autonomous Power Loader Unit. It's wearing a fearsome carapace entirely composed of goliath hide plates - the pilot must be an experienced monster hunter."
else
to_chat(user, "<span class='warning'>You can't improve [D] any further!</span>")
return
use(1)
else
to_chat(user, "<span class='warning'>You can't improve [D] any further!</span>")
/obj/item/stack/sheet/animalhide/ashdrake
name = "ash drake hide"
@@ -10,6 +10,7 @@
var/list/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
hitsound = 'sound/weapons/blade1.ogg' // Probably more appropriate than the previous hitsound. -- Dave
usesound = 'sound/weapons/blade1.ogg'
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30)
resistance_flags = FIRE_PROOF
toolspeed = 1
+1 -1
View File
@@ -9,7 +9,7 @@
materials = list(MAT_METAL=200)
w_class = WEIGHT_CLASS_NORMAL
resistance_flags = FLAMMABLE
max_integrity = 50
max_integrity = 100
amount_per_transfer_from_this = 5
possible_transfer_amounts = list(5,10,20,30,50,70)
volume = 70
@@ -13,6 +13,7 @@
attack_verb = list("stabbed", "slashed", "sliced", "cut")
hitsound = 'sound/weapons/bladeslice.ogg'
armor = list("melee" = 100, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 100)
max_integrity = 40
resistance_flags = ACID_PROOF
sharp = TRUE
var/cooldown = 0
@@ -8,6 +8,7 @@
righthand_file = 'icons/mob/inhands/equipment/belt_righthand.dmi'
slot_flags = SLOT_BELT
attack_verb = list("whipped", "lashed", "disciplined")
max_integrity = 300
var/use_item_overlays = 0 // Do we have overlays for items held inside the belt?
/obj/item/storage/belt/update_icon()
@@ -9,6 +9,7 @@
slot_flags = SLOT_BACK
slowdown = 1
actions_types = list(/datum/action/item_action/toggle_mister)
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30)
resistance_flags = FIRE_PROOF
@@ -182,6 +182,7 @@
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
hitsound = 'sound/weapons/bladeslice.ogg'
usesound = 'sound/items/crowbar.ogg'
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30)
resistance_flags = FIRE_PROOF
@@ -231,6 +232,7 @@
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
block_chance = 75
sharp_when_wielded = TRUE // only sharp when wielded
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70)
resistance_flags = FIRE_PROOF
light_power = 2
@@ -340,6 +342,7 @@
sharp = TRUE
no_spin_thrown = TRUE
var/obj/item/grenade/explosive = null
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 30)
var/icon_prefix = "spearglass"
@@ -811,6 +814,7 @@
force_wielded = 15
attack_verb = list("attacked", "impaled", "pierced")
hitsound = 'sound/weapons/bladeslice.ogg'
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30)
resistance_flags = FIRE_PROOF
@@ -9,6 +9,7 @@
throw_speed = 7
throw_range = 15
attack_verb = list("banned")
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70)
resistance_flags = FIRE_PROOF
@@ -48,6 +49,7 @@
w_class = WEIGHT_CLASS_NORMAL
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
block_chance = 50
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
@@ -74,6 +76,7 @@
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
block_chance = 50
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
+1
View File
@@ -1,6 +1,7 @@
/obj/structure
icon = 'icons/obj/structures.dmi'
pressure_resistance = 8
max_integrity = 300
var/climbable
var/mob/climber
var/broken = FALSE
+2
View File
@@ -4,6 +4,8 @@
icon = 'icons/obj/barsigns.dmi'
icon_state = "empty"
req_access = list(access_bar)
max_integrity = 500
integrity_failure = 250
armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
var/list/barsigns=list()
var/list/hiddensigns
@@ -4,6 +4,8 @@
icon = 'icons/obj/closet.dmi'
icon_state = "closed"
density = 1
max_integrity = 200
integrity_failure = 50
armor = list("melee" = 20, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 60)
var/icon_closed = "closed"
var/icon_opened = "open"
@@ -7,6 +7,7 @@
opened = 0
locked = 1
broken = 0
max_integrity = 250
armor = list("melee" = 30, "bullet" = 50, "laser" = 50, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80)
damage_deflection = 20
var/large = 1
@@ -220,6 +220,7 @@
var/greenlight = "securecrateg"
var/sparks = "securecratesparks"
var/emag = "securecrateemag"
max_integrity = 500
armor = list("melee" = 30, "bullet" = 50, "laser" = 50, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80)
damage_deflection = 25
var/tamperproof = 0
@@ -529,6 +530,7 @@
icon_state = "largemetal"
icon_opened = "largemetalopen"
icon_closed = "largemetal"
integrity_failure = 0 //Makes the crate break when integrity reaches 0, instead of opening and becoming an invisible sprite.
/obj/structure/closet/crate/large/close()
. = ..()
@@ -98,6 +98,8 @@ GLOBAL_LIST_INIT(captain_display_cases, list())
anchored = TRUE
resistance_flags = ACID_PROOF
armor = list("melee" = 30, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 100)
max_integrity = 200
integrity_failure = 50
var/health = 30
var/obj/item/occupant = null
var/destroyed = FALSE
@@ -10,6 +10,8 @@
icon_state = "extinguisher_closed"
anchored = 1
density = 0
max_integrity = 200
integrity_failure = 50
var/obj/item/extinguisher/has_extinguisher = null
var/extinguishertype
var/opened = 0
@@ -21,6 +21,7 @@
density = TRUE
opacity = TRUE
max_integrity = 100
canSmoothWith = list(
/turf/simulated/wall,
@@ -226,6 +227,7 @@
mineral = /obj/item/stack/sheet/mineral/diamond
walltype = /turf/simulated/wall/mineral/diamond
canSmoothWith = list(/obj/structure/falsewall/diamond, /turf/simulated/wall/mineral/diamond)
max_integrity = 800
/obj/structure/falsewall/plasma
+3 -3
View File
@@ -6,7 +6,7 @@
layer = BELOW_OBJ_LAYER
var/state = GIRDER_NORMAL
var/girderpasschance = 20 // percentage chance that a projectile passes through the girder.
var/health = 200
max_integrity = 200
var/can_displace = TRUE //If the girder can be moved around by crowbarring it
var/metalUsed = 2 //used to determine amount returned in deconstruction
@@ -376,14 +376,14 @@
anchored = 0
state = GIRDER_DISPLACED
girderpasschance = 25
health = 120
max_integrity = 120
/obj/structure/girder/reinforced
name = "reinforced girder"
icon_state = "reinforced"
state = GIRDER_REINF
girderpasschance = 0
health = 350
max_integrity = 350
/obj/structure/girder/cult
name = "runed girder"
@@ -8,6 +8,7 @@
desc = "The frame of a meat spike."
density = 1
anchored = 0
max_integrity = 200
/obj/structure/kitchenspike_frame/attackby(obj/item/I, mob/user, params)
add_fingerprint(user)
@@ -37,6 +38,7 @@
anchored = 1
buckle_lying = FALSE
can_buckle = TRUE
max_integrity = 250
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/structure/kitchenspike/attack_hand(mob/user)
+1
View File
@@ -6,6 +6,7 @@
density = FALSE
anchored = TRUE
armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50)
max_integrity = 50
layer = LATTICE_LAYER //under pipes
plane = FLOOR_PLANE
var/number_of_rods = 1
@@ -7,6 +7,7 @@
icon = 'icons/obj/doors/mineral_doors.dmi'
icon_state = "metal"
max_integrity = 200
armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 50, "acid" = 50)
var/initial_state
var/state = 0 //closed, 1 == open
@@ -148,13 +149,13 @@
qdel(src)
/obj/structure/mineral_door/iron
hardness = 3
max_integrity = 300
/obj/structure/mineral_door/silver
name = "silver door"
icon_state = "silver"
sheetType = /obj/item/stack/sheet/mineral/silver
hardness = 3
max_integrity = 300
/obj/structure/mineral_door/gold
name = "gold door"
@@ -165,14 +166,14 @@
name = "uranium door"
icon_state = "uranium"
sheetType = /obj/item/stack/sheet/mineral/uranium
hardness = 3
max_integrity = 300
light_range = 2
/obj/structure/mineral_door/sandstone
name = "sandstone door"
icon_state = "sandstone"
sheetType = /obj/item/stack/sheet/mineral/sandstone
hardness = 0.5
max_integrity = 100
/obj/structure/mineral_door/transparent
opacity = 0
@@ -208,7 +209,7 @@
name = "diamond door"
icon_state = "diamond"
sheetType = /obj/item/stack/sheet/mineral/diamond
hardness = 10
max_integrity = 1000
/obj/structure/mineral_door/wood
name = "wood door"
+2
View File
@@ -6,6 +6,8 @@
icon_state = "mirror"
density = 0
anchored = 1
max_integrity = 200
integrity_failure = 100
var/list/ui_users = list()
/obj/structure/mirror/New(turf/T, newdir = SOUTH, building = FALSE)
+2
View File
@@ -16,6 +16,7 @@
icon = 'icons/obj/stationobjs.dmi'
icon_state = "morgue1"
density = 1
max_integrity = 400
dir = EAST
var/obj/structure/m_tray/connected = null
var/list/status_descriptors = list(
@@ -184,6 +185,7 @@
var/obj/structure/morgue/connected = null
anchored = 1.0
pass_flags = LETPASSTHROW
max_integrity = 350
/obj/structure/m_tray/attack_hand(mob/user as mob)
@@ -5,6 +5,7 @@
icon_state = "nboard00"
density = 0
anchored = 1
max_integrity = 150
var/notices = 0
/obj/structure/noticeboard/Initialize()
+2
View File
@@ -4,6 +4,7 @@
opacity = 0
density = 0
layer = 3.5
max_integrity = 100
armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
/obj/structure/sign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
@@ -66,6 +67,7 @@
/obj/structure/sign/double/map
name = "station map"
desc = "A framed picture of the station."
max_integrity = 500
/obj/structure/sign/double/map/left
icon_state = "map-left"
+10 -1
View File
@@ -5,6 +5,7 @@
icon_state = ""
density = 1
anchored = 0
max_integrity = 100
var/oreAmount = 5
var/material_drop_type = /obj/item/stack/sheet/metal
@@ -61,6 +62,7 @@
qdel(src)
/obj/structure/statue/uranium
max_integrity = 300
light_range = 2
material_drop_type = /obj/item/stack/sheet/mineral/uranium
var/last_event = 0
@@ -98,6 +100,7 @@
active = null
/obj/structure/statue/plasma
max_integrity = 200
material_drop_type = /obj/item/stack/sheet/mineral/plasma
desc = "This statue is suitably made from plasma."
@@ -145,6 +148,7 @@
PlasmaBurn()
/obj/structure/statue/gold
max_integrity = 300
material_drop_type = /obj/item/stack/sheet/mineral/gold
desc = "This is a highly valuable statue made from gold."
@@ -169,6 +173,7 @@
icon_state = "rd"
/obj/structure/statue/silver
max_integrity = 300
material_drop_type = /obj/item/stack/sheet/mineral/silver
desc = "This is a valuable statue made from silver."
@@ -193,6 +198,7 @@
icon_state = "medborg"
/obj/structure/statue/diamond
max_integrity = 1000
material_drop_type = /obj/item/stack/sheet/mineral/diamond
desc = "This is a very expensive diamond statue."
@@ -209,6 +215,7 @@
icon_state = "ai2"
/obj/structure/statue/bananium
max_integrity = 300
material_drop_type = /obj/item/stack/sheet/mineral/bananium
desc = "A bananium statue with a small engraving:'HOOOOOOONK'."
var/spam_flag = 0
@@ -237,6 +244,7 @@
spam_flag = 0
/obj/structure/statue/sandstone
max_integrity = 50
material_drop_type = /obj/item/stack/sheet/mineral/sandstone
/obj/structure/statue/sandstone/assistant
@@ -251,6 +259,7 @@
icon_state = "venus"
/obj/structure/statue/tranquillite
max_integrity = 300
material_drop_type = /obj/item/stack/sheet/mineral/tranquillite
desc = "..."
@@ -278,10 +287,10 @@
icon_state = "snowman"
anchored = TRUE
density = TRUE
max_integrity = 50
/obj/structure/snowman/built
desc = "Just like the ones you remember from childhood!"
max_integrity = 50
/obj/structure/snowman/built/Destroy()
new /obj/item/reagent_containers/food/snacks/grown/carrot(drop_location())
@@ -5,7 +5,7 @@
desc = "It's a gruesome pile of thick, sticky resin shaped like a nest."
icon = 'icons/mob/alien.dmi'
icon_state = "nest"
var/health = 100
max_integrity = 120
var/image/nest_overlay
comfort = 0
@@ -8,6 +8,8 @@
buckle_lying = FALSE // you sit in a chair, not lay
anchored = TRUE
resistance_flags = NONE
max_integrity = 250
integrity_failure = 25
buckle_offset = 0
var/buildstacktype = /obj/item/stack/sheet/metal
var/buildstackamount = 1
+7 -7
View File
@@ -482,7 +482,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
cancolor = TRUE
heat_resistance = 1600
armor = list("melee" = 80, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100)
max_integrity = 50
max_integrity = 75
explosion_block = 1
damage_deflection = 11
glass_type = /obj/item/stack/sheet/rglass
@@ -554,7 +554,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
shardtype = /obj/item/shard/plasma
glass_type = /obj/item/stack/sheet/plasmaglass
heat_resistance = 32000
max_integrity = 120
max_integrity = 200
explosion_block = 1
armor = list("melee" = 80, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 45, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100)
@@ -568,7 +568,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
shardtype = /obj/item/shard/plasma
glass_type = /obj/item/stack/sheet/plasmarglass
reinf = TRUE
max_integrity = 160
max_integrity = 500
explosion_block = 2
armor = list("melee" = 80, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100)
damage_deflection = 21
@@ -603,7 +603,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
shardtype = /obj/item/shard/plasma
glass_type = /obj/item/stack/sheet/plasmaglass
heat_resistance = 32000
max_integrity = 240
max_integrity = 300
smooth = SMOOTH_TRUE
canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced)
explosion_block = 1
@@ -618,7 +618,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
glass_type = /obj/item/stack/sheet/plasmarglass
smooth = SMOOTH_TRUE
reinf = TRUE
max_integrity = 320
max_integrity = 1000
explosion_block = 2
armor = list("melee" = 80, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100)
@@ -632,7 +632,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
icon_state = "r_window"
smooth = SMOOTH_TRUE
canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced)
max_integrity = 100
max_integrity = 150
reinf = TRUE
heat_resistance = 1600
armor = list("melee" = 80, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100)
@@ -658,7 +658,7 @@ obj/structure/window/full/reinforced/ice
desc = "A reinforced, air-locked pod window."
icon = 'icons/obj/smooth_structures/shuttle_window.dmi'
icon_state = "shuttle_window"
max_integrity = 160
max_integrity = 150
reinf = TRUE
heat_resistance = 1600
explosion_block = 3
+1
View File
@@ -2,6 +2,7 @@
name = "shuttle"
icon = 'icons/turf/shuttle.dmi'
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
max_integrity = 500
armor = list(melee = 100, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) //default + ignores melee
/obj/structure/shuttle/shuttleRotate(rotation)
+2
View File
@@ -1,5 +1,7 @@
/obj/item/clothing
name = "clothing"
max_integrity = 200
integrity_failure = 80
resistance_flags = FLAMMABLE
var/list/species_restricted = null //Only these species can wear this kit.
var/scan_reagents = 0 //Can the wearer see reagents while it's equipped?
@@ -4,6 +4,7 @@
desc = "A special helmet designed for work in a hazardous, low-pressure environment."
icon_state = "hardsuit0-engineering"
item_state = "eng_helm"
max_integrity = 300
armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 50, "acid" = 75)
var/basestate = "hardsuit"
allowed = list(/obj/item/flashlight)
@@ -87,6 +88,7 @@
desc = "A special space suit for environments that might pose hazards beyond just the vacuum of space. Provides more protection than a standard space suit."
icon_state = "hardsuit-engineering"
item_state = "eng_hardsuit"
max_integrity = 300
armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 50, "acid" = 75)
allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/t_scanner, /obj/item/rcd, /obj/item/rpd)
siemens_coefficient = 0
+1
View File
@@ -219,6 +219,7 @@
icon_state = "durathread"
item_state = "durathread"
strip_delay = 60
max_integrity = 200
resistance_flags = FLAMMABLE
armor = list("melee" = 20, "bullet" = 10, "laser" = 30, "energy" = 5, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 50)
@@ -10,6 +10,7 @@
lefthand_file = 'icons/goonstation/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/goonstation/mob/inhands/items_righthand.dmi'
materials = list(MAT_GLASS=500)
max_integrity = 20
resistance_flags = ACID_PROOF
/obj/item/reagent_containers/food/drinks/drinkingglass/attackby(obj/item/I, mob/user, params)
@@ -8,6 +8,7 @@
icon = 'icons/obj/cooking_machines.dmi'
icon_state = "icecream_vat"
use_power = IDLE_POWER_USE
max_integrity = 300
idle_power_usage = 20
var/obj/item/reagent_containers/glass/beaker = null
var/useramount = 15 //Last used amount
@@ -53,6 +53,7 @@ var/list/ingredients_source = list(
icon_state = "icecream_vat"
density = 1
anchored = 0
max_integrity = 300
var/list/ingredients = list()
var/dispense_flavour = 1
var/obj/item/reagent_containers/glass/held_container
@@ -37,7 +37,6 @@
icon_state = "beebox"
anchored = TRUE
density = TRUE
max_integrity = 300
var/mob/living/simple_animal/hostile/poison/bees/queen/queen_bee = null
var/list/bees = list() //bees owned by the box, not those inside it
var/list/honeycombs = list()
+1
View File
@@ -136,6 +136,7 @@
bitesize_mod = 2
tastes = list("cherry" = 1, "explosion" = 1)
volume = 125 //Gives enough room for the black powder at max potency
max_integrity = 40
wine_power = 0.8
/obj/item/reagent_containers/food/snacks/grown/cherry_bomb/attack_self(mob/living/user)
+1
View File
@@ -8,6 +8,7 @@
var/lastattempt = null
var/attempts = 10
var/codelen = 4
integrity_failure = 0 //no breaking open the crate
/obj/structure/closet/crate/secure/loot/New()
..()

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