This commit is contained in:
BlackMajor
2022-04-20 16:30:44 +12:00
parent c8b8ff2e0f
commit beb962eac3
19 changed files with 73 additions and 76 deletions
@@ -1 +1 @@
#define PROTEAN_EDIBLE_MATERIALS list(MAT_STEEL) //CHOMPedit: only steel
#define PROTEAN_EDIBLE_MATERIALS list(MAT_STEEL,MAT_GLASS)
@@ -16,13 +16,13 @@
show_stat_health = FALSE //We will do it ourselves
response_help = "pets the" //CHOMP Edit
response_disarm = "gently pushes aside the " //CHOMP Edit
response_harm = "hits the" //CHOMP Edit
response_help = "pets the"
response_disarm = "gently pushes aside the "
response_harm = "hits the"
harm_intent_damage = 3
melee_damage_lower = 5 //CHOMP Edit
melee_damage_upper = 5 //CHOMP Edit
melee_damage_lower = 5
melee_damage_upper = 5
attacktext = list("slashed")
min_oxy = 0
@@ -34,7 +34,7 @@
min_n2 = 0
max_n2 = 0
minbodytemp = 0
maxbodytemp = 900
maxbodytemp = INFINITY
movement_cooldown = 2
var/mob/living/carbon/human/humanform
@@ -176,14 +176,12 @@
return ..()
/mob/living/simple_mob/protean_blob/adjustBruteLoss(var/amount,var/include_robo)
amount *= 1.5
if(humanform)
return humanform.adjustBruteLoss(amount)
else
return ..()
/mob/living/simple_mob/protean_blob/adjustFireLoss(var/amount,var/include_robo)
amount *= 1.5
if(humanform)
return humanform.adjustFireLoss(amount)
else
@@ -323,20 +321,20 @@
visible_message("<b>[name]</b> gloms over some of \the [S], absorbing it.")
else
return ..()
/mob/living/simple_mob/protean_blob/attack_hand(mob/living/L) //CHOMP Add this whole block.
if(L.get_effective_size() >= (src.get_effective_size() + 0.5) )
src.get_scooped(L)
else
..()
/mob/living/simple_mob/protean_blob/MouseDrop(var/atom/over_object) //CHOMP Add this whole block.
if(ishuman(over_object) && usr == src && src.Adjacent(over_object))
var/mob/living/carbon/human/H = over_object
get_scooped(H, TRUE)
else
return ..()
/mob/living/simple_mob/protean_blob/MouseEntered(location,control,params)
if(resting)
return
@@ -449,7 +447,7 @@ var/global/list/disallowed_protean_accessories = list(
remove_micros(I, root) //Recursion. I'm honestly depending on there being no containment loop, but at the cost of performance that can be fixed too.
if(istype(I, /obj/item/weapon/holder))
root.remove_from_mob(I)
//CHOMP Add start
/mob/living/simple_mob/protean_blob/proc/rig_transform() //CHOMP Add this whole block.
set name = "Modify Form - Hardsuit"
@@ -2,77 +2,77 @@
/obj/item/organ/external/chest/unbreakable/nano
robotic = ORGAN_NANOFORM
encased = FALSE
max_damage = 50 // <-- This is different from the rest
max_damage = 100 // <-- This is different from the rest
min_broken_damage = 1000
vital = TRUE // <-- This is different from the rest
model = "protean"
/obj/item/organ/external/groin/unbreakable/nano
robotic = ORGAN_NANOFORM
encased = FALSE
max_damage = 30 // <-- This is different from the rest
max_damage = 100 // <-- This is different from the rest
min_broken_damage = 1000 //Multiple
vital = FALSE
model = "protean"
/obj/item/organ/external/head/unbreakable/nano
robotic = ORGAN_NANOFORM
encased = FALSE
max_damage = 30
max_damage = 100
min_broken_damage = 1000 //Inheritance
vital = FALSE
model = "protean"
/obj/item/organ/external/arm/unbreakable/nano
robotic = ORGAN_NANOFORM
encased = FALSE
max_damage = 20
max_damage = 100
min_broken_damage = 1000 //Please
vital = FALSE
model = "protean"
/obj/item/organ/external/arm/right/unbreakable/nano
robotic = ORGAN_NANOFORM
encased = FALSE
max_damage = 20
max_damage = 100
min_broken_damage = 1000
vital = FALSE
model = "protean"
/obj/item/organ/external/leg/unbreakable/nano
robotic = ORGAN_NANOFORM
encased = FALSE
max_damage = 20
max_damage = 100
min_broken_damage = 1000
vital = FALSE
model = "protean"
/obj/item/organ/external/leg/right/unbreakable/nano
robotic = ORGAN_NANOFORM
encased = FALSE
max_damage = 20
max_damage = 100
min_broken_damage = 1000
vital = FALSE
model = "protean"
/obj/item/organ/external/hand/unbreakable/nano
robotic = ORGAN_NANOFORM
encased = FALSE
max_damage = 20
max_damage = 100
min_broken_damage = 1000
vital = FALSE
model = "protean"
/obj/item/organ/external/hand/right/unbreakable/nano
robotic = ORGAN_NANOFORM
encased = FALSE
max_damage = 20
max_damage = 100
min_broken_damage = 1000
vital = FALSE
model = "protean"
/obj/item/organ/external/foot/unbreakable/nano
robotic = ORGAN_NANOFORM
encased = FALSE
max_damage = 20
max_damage = 100
min_broken_damage = 1000
vital = FALSE
model = "protean"
/obj/item/organ/external/foot/right/unbreakable/nano
robotic = ORGAN_NANOFORM
encased = FALSE
max_damage = 20
max_damage = 100
min_broken_damage = 1000
vital = FALSE
model = "protean"
@@ -101,7 +101,7 @@
organ_tag = O_FACT
parent_organ = BP_TORSO
var/list/materials = list(MAT_STEEL = 0)
var/list/materials = list(MAT_STEEL = 0, MAT_GLASS = 0)
var/max_storage = 10000
organ_verbs = list(
/mob/living/carbon/human/proc/reagent_purge
@@ -7,8 +7,8 @@
icon = 'icons/obj/rig_modules_ch.dmi'
default_mob_icon = 'icons/mob/rig_back_ch.dmi'
icon_state = "nanomachine_rig"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 90)
siemens_coefficient= 0.5
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 100)
siemens_coefficient= 1
slowdown = 0
offline_slowdown = 0
seal_delay = 1
@@ -19,7 +19,7 @@
boot_type = /obj/item/clothing/shoes/magboots/rig/protean
chest_type = /obj/item/clothing/suit/space/rig/protean
glove_type = /obj/item/clothing/gloves/gauntlets/rig/protean
//I doooon't think I can get rig_back.dmi as a _ch file. That is part of /obj/item/weapon/rig/update_icon(var/update_mob_icon).
/obj/item/weapon/rig/protean/relaymove(mob/user, var/direction)
@@ -27,6 +27,11 @@
return
forced_move(direction, user, FALSE)
/obj/item/weapon/rig/protean/check_suit_access(mob/living/carbon/human/user)
if(user == myprotean)
return TRUE
return ..()
/obj/item/clothing/head/helmet/space/rig/protean
name = "mass"
desc = "A helmet-shaped clump of nanomachines."
@@ -61,8 +66,8 @@
/obj/item/weapon/storage/backpack,
) //Subspace radio is in for the citadel version. IDK if we have that and I don't think we need it so I removed it from this list.
//Backend stuff to make the sprites work. Copied and pasted from rig_pieces_vr.dm, but added ch to everything. Only reason for this to be touched is to add or remove species. This might just need to go in a new file named rig_pieces_ch.dm.
/obj/item/clothing/head/helmet/space/rig/protean
@@ -76,14 +81,14 @@
SPECIES_SERGAL = 'icons/mob/species/sergal/helmet_ch.dmi',
SPECIES_NEVREAN = 'icons/mob/species/sergal/helmet_ch.dmi',
SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/helmet_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/mob/species/fox/helmet_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/mob/species/fox/helmet_ch.dmi',
SPECIES_FENNEC = 'icons/mob/species/vulpkanin/helmet_ch.dmi',
SPECIES_PROMETHEAN = 'icons/mob/species/skrell/helmet_ch.dmi',
SPECIES_TESHARI = 'icons/inventory/head/mob_ch_teshari.dmi',
SPECIES_VASILISSAN = 'icons/mob/species/skrell/helmet_ch.dmi',
SPECIES_VOX = 'icons/mob/species/vox/head_ch.dmi'
SPECIES_VOX = 'icons/mob/species/vox/head_ch.dmi'
)
sprite_sheets_obj = list(
SPECIES_HUMAN = 'icons/obj/clothing/hats_ch.dmi',
SPECIES_TAJ = 'icons/obj/clothing/hats_ch.dmi',
@@ -94,12 +99,12 @@
SPECIES_SERGAL = 'icons/obj/clothing/hats_ch.dmi',
SPECIES_NEVREAN = 'icons/obj/clothing/hats_ch.dmi',
SPECIES_VULPKANIN = 'icons/obj/clothing/hats_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/obj/clothing/hats_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/obj/clothing/hats_ch.dmi',
SPECIES_FENNEC = 'icons/obj/clothing/hats_ch.dmi',
SPECIES_PROMETHEAN = 'icons/obj/clothing/hats_ch.dmi',
SPECIES_TESHARI = 'icons/obj/clothing/hats_ch.dmi',
SPECIES_VASILISSAN = 'icons/obj/clothing/hats_ch.dmi',
SPECIES_VOX = 'icons/obj/clothing/hats_ch.dmi'
SPECIES_VOX = 'icons/obj/clothing/hats_ch.dmi'
)
/obj/item/clothing/suit/space/rig/protean
@@ -113,14 +118,14 @@
SPECIES_SERGAL = 'icons/mob/species/sergal/suit_ch.dmi',
SPECIES_NEVREAN = 'icons/mob/species/sergal/suit_ch.dmi',
SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/suit_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/mob/species/fox/suit_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/mob/species/fox/suit_ch.dmi',
SPECIES_FENNEC = 'icons/mob/species/vulpkanin/suit_ch.dmi',
SPECIES_PROMETHEAN = 'icons/mob/species/skrell/suit_ch.dmi',
SPECIES_TESHARI = 'icons/inventory/suit/mob_ch_teshari.dmi',
SPECIES_VASILISSAN = 'icons/mob/species/skrell/suit_ch.dmi',
SPECIES_VOX = 'icons/mob/species/vox/suit_ch.dmi'
SPECIES_VOX = 'icons/mob/species/vox/suit_ch.dmi'
)
sprite_sheets_obj = list(
SPECIES_HUMAN = 'icons/obj/clothing/spacesuits_ch.dmi',
SPECIES_TAJ = 'icons/obj/clothing/spacesuits_ch.dmi',
@@ -131,14 +136,14 @@
SPECIES_SERGAL = 'icons/obj/clothing/spacesuits_ch.dmi',
SPECIES_NEVREAN = 'icons/obj/clothing/spacesuits_ch.dmi',
SPECIES_VULPKANIN = 'icons/obj/clothing/spacesuits_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/obj/clothing/spacesuits_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/obj/clothing/spacesuits_ch.dmi',
SPECIES_FENNEC = 'icons/obj/clothing/spacesuits_ch.dmi',
SPECIES_PROMETHEAN = 'icons/obj/clothing/spacesuits_ch.dmi',
SPECIES_TESHARI = 'icons/obj/clothing/spacesuits_ch.dmi',
SPECIES_VASILISSAN = 'icons/obj/clothing/spacesuits_ch.dmi',
SPECIES_VOX = 'icons/obj/clothing/spacesuits_ch.dmi'
SPECIES_VOX = 'icons/obj/clothing/spacesuits_ch.dmi'
)
/obj/item/clothing/gloves/gauntlets/rig/protean
sprite_sheets = list(
SPECIES_HUMAN = 'icons/mob/hands_ch.dmi',
@@ -150,14 +155,14 @@
SPECIES_SERGAL = 'icons/mob/hands_ch.dmi',
SPECIES_NEVREAN = 'icons/mob/hands_ch.dmi',
SPECIES_VULPKANIN = 'icons/mob/hands_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/mob/hands_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/mob/hands_ch.dmi',
SPECIES_FENNEC = 'icons/mob/hands_ch.dmi',
SPECIES_PROMETHEAN = 'icons/mob/hands_ch.dmi',
SPECIES_TESHARI = 'icons/mob/hands_ch.dmi',
SPECIES_VASILISSAN = 'icons/mob/hands_ch.dmi',
SPECIES_VOX = 'icons/mob/species/vox/gloves_ch.dmi'
SPECIES_VOX = 'icons/mob/species/vox/gloves_ch.dmi'
)
sprite_sheets_obj = list(
SPECIES_HUMAN = 'icons/obj/clothing/gloves_ch.dmi',
SPECIES_TAJ = 'icons/obj/clothing/gloves_ch.dmi',
@@ -168,14 +173,14 @@
SPECIES_SERGAL = 'icons/obj/clothing/gloves_ch.dmi',
SPECIES_NEVREAN = 'icons/obj/clothing/gloves_ch.dmi',
SPECIES_VULPKANIN = 'icons/obj/clothing/gloves_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/obj/clothing/gloves_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/obj/clothing/gloves_ch.dmi',
SPECIES_FENNEC = 'icons/obj/clothing/gloves_ch.dmi',
SPECIES_PROMETHEAN = 'icons/obj/clothing/gloves_ch.dmi',
SPECIES_TESHARI = 'icons/obj/clothing/gloves_ch.dmi',
SPECIES_VASILISSAN = 'icons/obj/clothing/gloves_ch.dmi',
SPECIES_VOX = 'icons/obj/clothing/gloves_ch.dmi'
SPECIES_VOX = 'icons/obj/clothing/gloves_ch.dmi'
)
/obj/item/clothing/shoes/magboots/rig/protean
sprite_sheets = list(
SPECIES_HUMAN = 'icons/mob/feet_ch.dmi',
@@ -187,14 +192,14 @@
SPECIES_SERGAL = 'icons/mob/feet_ch.dmi',
SPECIES_NEVREAN = 'icons/mob/feet_ch.dmi',
SPECIES_VULPKANIN = 'icons/mob/feet_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/mob/feet_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/mob/feet_ch.dmi',
SPECIES_FENNEC = 'icons/mob/feet_ch.dmi',
SPECIES_PROMETHEAN = 'icons/mob/feet_ch.dmi',
SPECIES_TESHARI = 'icons/mob/feet_ch.dmi',
SPECIES_VASILISSAN = 'icons/mob/feet_ch.dmi',
SPECIES_VOX = 'icons/mob/species/vox/shoes_ch.dmi'
SPECIES_VOX = 'icons/mob/species/vox/shoes_ch.dmi'
)
sprite_sheets_obj = list(
SPECIES_HUMAN = 'icons/obj/clothing/shoes_ch.dmi',
SPECIES_TAJ = 'icons/obj/clothing/shoes_ch.dmi',
@@ -205,10 +210,10 @@
SPECIES_SERGAL = 'icons/obj/clothing/shoes_ch.dmi',
SPECIES_NEVREAN = 'icons/obj/clothing/shoes_ch.dmi',
SPECIES_VULPKANIN = 'icons/obj/clothing/shoes_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/obj/clothing/shoes_ch.dmi',
SPECIES_ZORREN_HIGH = 'icons/obj/clothing/shoes_ch.dmi',
SPECIES_FENNEC = 'icons/obj/clothing/shoes_ch.dmi',
SPECIES_PROMETHEAN = 'icons/obj/clothing/shoes_ch.dmi',
SPECIES_TESHARI = 'icons/obj/clothing/shoes_ch.dmi',
SPECIES_VASILISSAN = 'icons/obj/clothing/shoes_ch.dmi',
SPECIES_VOX = 'icons/obj/clothing/shoes_ch.dmi'
SPECIES_VOX = 'icons/obj/clothing/shoes_ch.dmi'
)
@@ -7,7 +7,7 @@
<i>VERY</i> advanced civilizations have the option of 'nanoswarm' bodies. Effectively a single robot body comprised \
of millions of tiny nanites working in concert to maintain cohesion."
show_ssd = "totally quiescent"
death_message = "rapidly loses cohesion, dissolving into a cloud of gray dust..."
death_message = "rapidly loses cohesion, retreating into their hardened control module..."
knockout_message = "collapses inwards, forming a disordered puddle of gray goo."
remains_type = /obj/effect/decal/cleanable/ash
@@ -21,35 +21,29 @@
health_hud_intensity = 2
num_alternate_languages = 3
assisted_langs = list(LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX)
speech_bubble_appearance = "synthetic"
color_mult = TRUE
breath_type = null
poison_type = null
male_scream_sound = null //CHOMPedit
female_scream_sound = null //CHOMPedit
male_scream_sound = null
female_scream_sound = null
virus_immune = 1
blood_volume = 0
min_age = 18
max_age = 200
brute_mod = 0.8
burn_mod = 1.5
brute_mod = 1
burn_mod = 1
oxy_mod = 0
item_slowdown_mod = 1.33
cold_level_1 = 280 //Default 260 - Lower is better
cold_level_2 = 220 //Default 200
cold_level_3 = 130 //Default 120
heat_level_1 = 320 //Default 360
heat_level_2 = 370 //Default 400
heat_level_3 = 600 //Default 1000
radiation_mod = 0 //Can't be assed with fandangling rad protections while blob formed/suited
item_slowdown_mod = 1
hazard_low_pressure = -1 //Space doesn't bother them
hazard_high_pressure = 200 //They can cope with slightly higher pressure
hazard_high_pressure = INFINITY //consistency
//Cold/heat does affect them, but it's done in special ways below
//Cold/heat does affect them, but it's done in special ways below - //No it isn't?
cold_level_1 = -INFINITY
cold_level_2 = -INFINITY
cold_level_3 = -INFINITY
@@ -59,7 +53,7 @@
body_temperature = 290
siemens_coefficient = 1.5 //Very bad zappy times
siemens_coefficient = 1
rarity_value = 5
genders = list(MALE, FEMALE, PLURAL, NEUTER)
@@ -324,7 +318,7 @@ CHOMP Removal end*/
/datum/modifier/protean/steel/tick()
holder.adjustBruteLoss(-1,include_robo = TRUE) //Modified by species resistances
holder.adjustFireLoss(-0.5,include_robo = TRUE) //Modified by species resistances
holder.adjustFireLoss(-1,include_robo = TRUE) //Modified by species resistances
var/mob/living/carbon/human/H = holder
for(var/obj/item/organ/O as anything in H.internal_organs)
// Fix internal damage