mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Merge branch 'master' into belt-mining
This commit is contained in:
@@ -586,6 +586,13 @@ emp_act
|
||||
converted_protection *= perm
|
||||
return CLAMP(1-converted_protection, 0, 1)
|
||||
|
||||
/mob/living/carbon/human/water_act(amount)
|
||||
adjust_fire_stacks(-amount * 5)
|
||||
for(var/atom/movable/AM in contents)
|
||||
AM.water_act(amount)
|
||||
remove_modifiers_of_type(/datum/modifier/fire)
|
||||
|
||||
species.handle_water_damage(src, amount)
|
||||
|
||||
/mob/living/carbon/human/shank_attack(obj/item/W, obj/item/weapon/grab/G, mob/user, hit_zone)
|
||||
|
||||
|
||||
@@ -142,7 +142,8 @@
|
||||
"Your skin prickles in the heat."
|
||||
)
|
||||
|
||||
var/water_resistance = 0.1 // How wet the species gets from being splashed. Only really useful for Prometheans.
|
||||
var/water_resistance = 0.1 // How wet the species gets from being splashed.
|
||||
var/water_damage_mod = 0 // How much water damage is multiplied by when splashing this species.
|
||||
|
||||
var/passive_temp_gain = 0 // Species will gain this much temperature every second
|
||||
var/hazard_high_pressure = HAZARD_HIGH_PRESSURE // Dangerously high pressure.
|
||||
@@ -475,3 +476,9 @@
|
||||
// Allow species to display interesting information in the human stat panels
|
||||
/datum/species/proc/Stat(var/mob/living/carbon/human/H)
|
||||
return
|
||||
|
||||
/datum/species/proc/handle_water_damage(var/mob/living/carbon/human/H, var/amount = 0)
|
||||
amount *= 1 - H.get_water_protection()
|
||||
amount *= water_damage_mod
|
||||
if(amount > 0)
|
||||
H.adjustToxLoss(amount)
|
||||
|
||||
@@ -72,6 +72,7 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
siemens_coefficient = 0.8
|
||||
|
||||
water_resistance = 0
|
||||
water_damage_mod = 0.3
|
||||
|
||||
genders = list(MALE, FEMALE, NEUTER, PLURAL)
|
||||
|
||||
@@ -173,9 +174,13 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
var/regen_burn = TRUE
|
||||
var/regen_tox = TRUE
|
||||
var/regen_oxy = TRUE
|
||||
// VOREStation Removal Start
|
||||
/*
|
||||
if(H.fire_stacks < 0 && H.get_water_protection() <= 0.5) // If over half your body is soaked, you're melting.
|
||||
H.adjustToxLoss(max(0,(3 - (3 * H.get_water_protection())) * heal_rate)) // Tripled because 0.5 is miniscule, and fire_stacks are capped in both directions.
|
||||
healing = FALSE
|
||||
*/
|
||||
//VOREStation Removal End
|
||||
|
||||
//Prometheans automatically clean every surface they're in contact with every life tick - this includes the floor without shoes.
|
||||
//They gain nutrition from doing this.
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
push_flags = ~HEAVY
|
||||
swap_flags = ~HEAVY
|
||||
gluttonous = 0
|
||||
water_damage_mod = 0 //No water damage
|
||||
valid_transform_species = list(
|
||||
"Human", "Unathi", "Tajara", "Skrell",
|
||||
"Diona", "Teshari", "Monkey","Sergal",
|
||||
|
||||
@@ -580,6 +580,15 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
if(wear_suit && (wear_suit.flags_inv & HIDEJUMPSUIT) && !istype(wear_suit, /obj/item/clothing/suit/space/rig))
|
||||
return //Wearing a suit that prevents uniform rendering
|
||||
|
||||
var/obj/item/clothing/under/under = w_uniform
|
||||
|
||||
var/uniform_sprite
|
||||
|
||||
if(under.index)
|
||||
uniform_sprite = "[INV_W_UNIFORM_DEF_ICON]_[under.index].dmi"
|
||||
else
|
||||
uniform_sprite = "[INV_W_UNIFORM_DEF_ICON].dmi"
|
||||
|
||||
//Build a uniform sprite
|
||||
//VOREStation Edit start.
|
||||
var/icon/c_mask = null
|
||||
@@ -587,9 +596,8 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
var/obj/item/clothing/suit/S = wear_suit
|
||||
if(!(wear_suit && ((wear_suit.flags_inv & HIDETAIL) || (istype(S) && S.taurized)))) //Clip the lower half of the uniform off using the tail's clip mask.
|
||||
c_mask = new /icon(tail_style.clip_mask_icon, tail_style.clip_mask_state)
|
||||
overlays_standing[UNIFORM_LAYER] = w_uniform.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_w_uniform_str, default_icon = INV_W_UNIFORM_DEF_ICON, default_layer = UNIFORM_LAYER, clip_mask = c_mask)
|
||||
overlays_standing[UNIFORM_LAYER] = w_uniform.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_w_uniform_str, default_icon = uniform_sprite, default_layer = UNIFORM_LAYER, clip_mask = c_mask)
|
||||
//VOREStation Edit end.
|
||||
|
||||
apply_layer(UNIFORM_LAYER)
|
||||
|
||||
/mob/living/carbon/human/update_inv_wear_id()
|
||||
@@ -758,22 +766,24 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
if(!wear_suit)
|
||||
return //No point, no suit.
|
||||
|
||||
// Part of splitting the suit sprites up
|
||||
var/iconFile = INV_SUIT_DEF_ICON
|
||||
var/obj/item/clothing/suit/S //VOREStation edit - break this var out a level for use below.
|
||||
if(istype(wear_suit, /obj/item/clothing/suit))
|
||||
S = wear_suit
|
||||
if(S.update_icon_define)
|
||||
iconFile = S.update_icon_define
|
||||
var/obj/item/clothing/suit/suit = wear_suit
|
||||
var/suit_sprite
|
||||
|
||||
if(suit.index)
|
||||
suit_sprite = "[INV_SUIT_DEF_ICON]_[suit.index].dmi"
|
||||
else if(istype(suit, /obj/item/clothing) && !isnull(suit.update_icon_define))
|
||||
suit_sprite = suit.update_icon_define
|
||||
else
|
||||
suit_sprite = "[INV_SUIT_DEF_ICON].dmi"
|
||||
|
||||
//VOREStation Edit start.
|
||||
var/icon/c_mask = null
|
||||
var/tail_is_rendered = (overlays_standing[TAIL_LAYER] || overlays_standing[TAIL_LAYER_ALT])
|
||||
var/valid_clip_mask = (tail_style && tail_style.clip_mask_icon && tail_style.clip_mask_state)
|
||||
|
||||
if(tail_is_rendered && valid_clip_mask && !(S && S.taurized)) //Clip the lower half of the suit off using the tail's clip mask for taurs since taur bodies aren't hidden.
|
||||
if(tail_is_rendered && valid_clip_mask && !(suit && suit.taurized)) //Clip the lower half of the suit off using the tail's clip mask for taurs since taur bodies aren't hidden.
|
||||
c_mask = new /icon(tail_style.clip_mask_icon, tail_style.clip_mask_state)
|
||||
overlays_standing[SUIT_LAYER] = wear_suit.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_wear_suit_str, default_icon = iconFile, default_layer = SUIT_LAYER, clip_mask = c_mask)
|
||||
overlays_standing[SUIT_LAYER] = wear_suit.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_wear_suit_str, default_icon = suit_sprite, default_layer = SUIT_LAYER, clip_mask = c_mask)
|
||||
//VOREStation Edit end.
|
||||
|
||||
apply_layer(SUIT_LAYER)
|
||||
|
||||
@@ -417,6 +417,14 @@
|
||||
src.modules += new /obj/item/weapon/tool/screwdriver/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/reagent_containers/glass/beaker/large(src)
|
||||
src.modules += new /obj/item/weapon/storage/part_replacer(src)
|
||||
src.modules += new /obj/item/weapon/card/robot(src)
|
||||
src.modules += new /obj/item/weapon/gripper/no_use/organ/robotics(src)
|
||||
src.modules += new /obj/item/weapon/gripper/no_use/mech(src)
|
||||
src.modules += new /obj/item/device/robotanalyzer(src)
|
||||
src.modules += new /obj/item/weapon/weldingtool/electric/mounted/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/tool/wrench/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/tool/wirecutters/cyborg(src)
|
||||
src.modules += new /obj/item/device/multitool(src)
|
||||
src.emag = new /obj/item/weapon/hand_tele(src)
|
||||
|
||||
var/datum/matter_synth/water = new /datum/matter_synth(500)
|
||||
@@ -433,6 +441,21 @@
|
||||
B.water = water
|
||||
src.modules += B
|
||||
|
||||
var/datum/matter_synth/nanite = new /datum/matter_synth/nanite(10000)
|
||||
synths += nanite
|
||||
var/datum/matter_synth/wire = new /datum/matter_synth/wire()
|
||||
synths += wire
|
||||
|
||||
var/obj/item/stack/nanopaste/N = new /obj/item/stack/nanopaste(src)
|
||||
N.uses_charge = 1
|
||||
N.charge_costs = list(1000)
|
||||
N.synths = list(nanite)
|
||||
src.modules += N
|
||||
|
||||
var/obj/item/stack/cable_coil/cyborg/C = new /obj/item/stack/cable_coil/cyborg(src)
|
||||
C.synths = list(wire)
|
||||
src.modules += C
|
||||
|
||||
R.icon = 'icons/mob/widerobot_vr.dmi'
|
||||
R.hands.icon = 'icons/mob/screen1_robot_vr.dmi'
|
||||
R.ui_style_vr = TRUE
|
||||
@@ -452,7 +475,8 @@
|
||||
name = "Construction Hound module"
|
||||
sprites = list(
|
||||
"Pupdozer" = "pupdozer",
|
||||
"Borgi" = "borgi-eng"
|
||||
"Borgi" = "borgi-eng",
|
||||
"V2 Engidog" = "thottbot"
|
||||
)
|
||||
channels = list("Engineering" = 1)
|
||||
networks = list(NETWORK_ENGINEERING)
|
||||
@@ -467,13 +491,21 @@
|
||||
src.modules += new /obj/item/weapon/tool/wirecutters/cyborg(src)
|
||||
src.modules += new /obj/item/device/multitool(src)
|
||||
src.modules += new /obj/item/device/t_scanner(src)
|
||||
src.modules += new /obj/item/device/analyzer(src)
|
||||
src.modules += new /obj/item/taperoll/engineering(src)
|
||||
src.modules += new /obj/item/weapon/inflatable_dispenser/robot(src)
|
||||
src.modules += new /obj/item/device/pipe_painter(src)
|
||||
src.modules += new /obj/item/device/floor_painter(src)
|
||||
src.modules += new /obj/item/weapon/gripper/no_use/loader(src)
|
||||
src.modules += new /obj/item/weapon/pickaxe(src)
|
||||
src.modules += new /obj/item/weapon/dogborg/jaws/small(src)
|
||||
src.modules += new /obj/item/device/dogborg/boop_module(src)
|
||||
src.modules += new /obj/item/weapon/gripper(src)
|
||||
src.modules += new /obj/item/weapon/gripper/circuit(src)
|
||||
src.modules += new /obj/item/device/analyzer(src)
|
||||
src.modules += new /obj/item/device/pipe_painter(src)
|
||||
src.modules += new /obj/item/device/floor_painter(src)
|
||||
src.modules += new /obj/item/device/geiger(src)
|
||||
src.emag = new /obj/item/weapon/dogborg/pounce(src)
|
||||
|
||||
//Painfully slow charger regen but high capacity. Also starts with low amount.
|
||||
@@ -497,6 +529,11 @@
|
||||
plastic.recharge_rate = 100
|
||||
plastic.max_energy = 50000
|
||||
plastic.energy = 10000
|
||||
var/datum/matter_synth/plasteel = new /datum/matter_synth/plasteel()
|
||||
plasteel.name = "Plasteel reserves"// Adding plasteel synthesizer to move in-line with Engiborg.
|
||||
plasteel.recharge_rate = 100
|
||||
plasteel.max_energy = 20000
|
||||
plasteel.energy = 10000
|
||||
var/datum/matter_synth/water = new /datum/matter_synth(500)
|
||||
water.name = "Water reserves"
|
||||
water.recharge_rate = 0
|
||||
@@ -509,6 +546,7 @@
|
||||
synths += plastic
|
||||
synths += wire
|
||||
synths += water
|
||||
synths += plasteel
|
||||
|
||||
var/obj/item/device/dogborg/tongue/T = new /obj/item/device/dogborg/tongue(src)
|
||||
T.water = water
|
||||
@@ -562,6 +600,10 @@
|
||||
PL.synths = list(plastic)
|
||||
src.modules += PL
|
||||
|
||||
var/obj/item/stack/material/cyborg/plasteel/PS = new (src)
|
||||
PS.synths = list(plasteel)
|
||||
src.modules += PS
|
||||
|
||||
R.icon = 'icons/mob/widerobot_vr.dmi'
|
||||
R.hands.icon = 'icons/mob/screen1_robot_vr.dmi'
|
||||
R.ui_style_vr = TRUE
|
||||
|
||||
@@ -69,6 +69,7 @@
|
||||
icon_dead = "measelshark-dead"
|
||||
meat_amount = 6 //Big fish, tons of meat. Great for feasts.
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/sliceable/sharkchunk
|
||||
vore_active = 1
|
||||
vore_bump_chance = 100
|
||||
vore_default_mode = DM_HOLD //docile shark
|
||||
vore_capacity = 5
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/datum/preferences/update_preview_icon() // Lines up and un-overlaps character edit previews. Also un-splits taurs.
|
||||
var/mob/living/carbon/human/dummy/mannequin/mannequin = get_mannequin(client_ckey)
|
||||
if(!mannequin.dna) // Special handling for preview icons before SSAtoms has initailized.
|
||||
mannequin.dna = new /datum/dna(null)
|
||||
mannequin.delete_inventory(TRUE)
|
||||
dress_preview_mob(mannequin)
|
||||
COMPILE_OVERLAYS(mannequin)
|
||||
|
||||
Reference in New Issue
Block a user