mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 06:54:18 +01:00
IPC subspecies adjustments (#7854)
The goal is to make tangible differences between the subspecies with pros and cons that are in line with lore. Effectively, the IPC species felt too similar, many of which using equal stats in certain fields that made no sense to be equal in, this rework as stated previously aims to remedy this.
These changes were requested by Kyres, NiennaB and Tailson of the lore team.
changes:
tweak: "Adjusted heat tolerances of all IPC species to differentiate between types, letting it be more forgiving."
tweak: "Brute, resist and grab modifier changes to species dependant on type."
tweak: "Moves IPC abilities to their own tab for visibility and ease of use."
rscadd: "Adds a crush verb that is usable by G2."
rscadd: "Implements a variety new attack options to IPC species."
tweak: "Makes heat discomfort levels universally to be 100 units under the first heat level for all IPC species."
bugfix: "Sorts out issues with voidsuit/hardsuit for Bishops and Zeng-Hu."
tweak: "Adjusts Zeng-Hu Frame speed to be more inline with their lore."
tweak: "Adjusts Xion Frame speed to be slightly faster than the G1 and G2 to emphasize it being lighter."
tweak: "Xions can now go EVA indefinitely."
tweak: "Adjustments to fluff blurbs of IPC subspecies to account for mechanical changes."
This commit is contained in:
@@ -29,7 +29,7 @@
|
||||
mob/living/carbon/human/proc/change_monitor()
|
||||
set name = "Change IPC Screen"
|
||||
set desc = "Change the display on your screen."
|
||||
set category = "IC"
|
||||
set category = "Abilities"
|
||||
|
||||
if(f_style)
|
||||
var/datum/sprite_accessory/facial_hair/screen_style = facial_hair_styles_list[f_style]
|
||||
@@ -1015,7 +1015,7 @@ mob/living/carbon/human/proc/change_monitor()
|
||||
/mob/living/carbon/human/proc/self_diagnostics()
|
||||
set name = "Self-Diagnostics"
|
||||
set desc = "Run an internal self-diagnostic to check for damage."
|
||||
set category = "IC"
|
||||
set category = "Abilities"
|
||||
|
||||
if(stat == DEAD) return
|
||||
|
||||
@@ -1153,3 +1153,46 @@ mob/living/carbon/human/proc/change_monitor()
|
||||
for(var/line in airInfo)
|
||||
to_chat(src, span("notice", "[line]"))
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/crush()
|
||||
set category = "Abilities"
|
||||
set name = "Crush"
|
||||
set desc = "While grabbing someone in a neck grab, crush them with your arms."
|
||||
|
||||
if(last_special > world.time)
|
||||
to_chat(src, "<span class='warning'>Your arms are still recovering!</span>")
|
||||
return
|
||||
|
||||
if(use_check_and_message(usr))
|
||||
return
|
||||
|
||||
var/obj/item/grab/G = src.get_active_hand()
|
||||
if(!istype(G))
|
||||
to_chat(src, "<span class='warning'>You are not grabbing anyone.</span>")
|
||||
return
|
||||
|
||||
if(G.state < GRAB_NECK)
|
||||
to_chat(src, "<span class='warning'>You must have a stronger grab to crush your prey!</span>")
|
||||
return
|
||||
|
||||
if(ishuman(G.affecting))
|
||||
var/mob/living/carbon/human/H = G.affecting
|
||||
var/hit_zone = zone_sel.selecting
|
||||
var/obj/item/organ/external/affected = H.get_organ(hit_zone)
|
||||
|
||||
if(!affected || affected.is_stump())
|
||||
to_chat(H, "<span class='danger'>They are missing that limb!</span>")
|
||||
return
|
||||
|
||||
H.apply_damage(40, BRUTE, hit_zone)
|
||||
visible_message("<span class='warning'><b>\The [src]</b> viciously crushes [affected] of [G.affecting] with its metallic arms!</span>")
|
||||
msg_admin_attack("[key_name_admin(src)] crushed [key_name_admin(H)] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)",ckey=key_name(src),ckey_target=key_name(H))
|
||||
else
|
||||
var/mob/living/M = G.affecting
|
||||
if(!istype(M))
|
||||
return
|
||||
M.apply_damage(40,BRUTE)
|
||||
visible_message("<span class='warning'><b>\The [src]</b> viciously crushes [G.affecting]'s flesh with its metallic arms!</span>")
|
||||
msg_admin_attack("[key_name_admin(src)] crushed [key_name_admin(M)] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)",ckey=key_name(src),ckey_target=key_name(M))
|
||||
playsound(src.loc, 'sound/weapons/heavysmash.ogg', 50, 1)
|
||||
last_special = world.time + 100
|
||||
|
||||
@@ -91,6 +91,30 @@
|
||||
user.visible_message("<span class='warning'>[user] jumped up and down on \the [target]'s [affecting.name]!</span>")
|
||||
playsound(user.loc, attack_sound, 25, 1, -1)
|
||||
|
||||
/datum/unarmed_attack/punch/ipc
|
||||
damage = 3
|
||||
|
||||
/datum/unarmed_attack/kick/ipc
|
||||
damage = 3
|
||||
|
||||
/datum/unarmed_attack/stomp/ipc
|
||||
damage = 3
|
||||
|
||||
/datum/unarmed_attack/industrial
|
||||
attack_verb = list("pulverized", "crushed", "pounded")
|
||||
attack_noun = list("heavy fist")
|
||||
damage = 7
|
||||
attack_sound = 'sound/weapons/smash.ogg'
|
||||
attack_name = "heavy fist"
|
||||
shredding = 1
|
||||
|
||||
/datum/unarmed_attack/industrial/heavy
|
||||
damage = 9
|
||||
|
||||
/datum/unarmed_attack/industrial/xion
|
||||
damage = 5
|
||||
shredding = 0
|
||||
|
||||
/datum/unarmed_attack/terminator
|
||||
attack_verb = list("pulverized", "crushed", "pounded")
|
||||
attack_noun = list("power fist")
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
light_power = 0.5
|
||||
meat_type = /obj/item/stack/material/steel
|
||||
unarmed_types = list(
|
||||
/datum/unarmed_attack/punch,
|
||||
/datum/unarmed_attack/stomp,
|
||||
/datum/unarmed_attack/kick)
|
||||
/datum/unarmed_attack/punch/ipc,
|
||||
/datum/unarmed_attack/stomp/ipc,
|
||||
/datum/unarmed_attack/kick/ipc)
|
||||
rarity_value = 2
|
||||
|
||||
inherent_eye_protection = FLASH_PROTECTION_MAJOR
|
||||
@@ -57,9 +57,9 @@
|
||||
cold_level_2 = -1
|
||||
cold_level_3 = -1
|
||||
|
||||
heat_level_1 = 500 // Gives them about 25 seconds in space before taking damage
|
||||
heat_level_2 = 1000
|
||||
heat_level_3 = 2000
|
||||
heat_level_1 = 600
|
||||
heat_level_2 = 1200
|
||||
heat_level_3 = 2400
|
||||
|
||||
body_temperature = null
|
||||
passive_temp_gain = 10 // This should cause IPCs to stabilize at ~80 C in a 20 C environment.
|
||||
@@ -102,7 +102,7 @@
|
||||
)
|
||||
|
||||
|
||||
heat_discomfort_level = 373.15
|
||||
heat_discomfort_level = 500 //This will be 100 below the first heat level
|
||||
heat_discomfort_strings = list(
|
||||
"Your CPU temperature probes warn you that you are approaching critical heat levels!"
|
||||
)
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
light_range = 0
|
||||
light_power = 0
|
||||
unarmed_types = list(
|
||||
/datum/unarmed_attack/stomp,
|
||||
/datum/unarmed_attack/kick,
|
||||
/datum/unarmed_attack/punch,
|
||||
/datum/unarmed_attack/punch/ipc,
|
||||
/datum/unarmed_attack/stomp/ipc,
|
||||
/datum/unarmed_attack/kick/ipc,
|
||||
/datum/unarmed_attack/bite
|
||||
)
|
||||
|
||||
@@ -34,9 +34,9 @@
|
||||
|
||||
max_nutrition_factor = 0.8
|
||||
|
||||
heat_level_1 = 400
|
||||
heat_level_2 = 800
|
||||
heat_level_3 = 1600
|
||||
heat_level_1 = 500
|
||||
heat_level_2 = 1000
|
||||
heat_level_3 = 2000
|
||||
|
||||
heat_discomfort_level = 400
|
||||
heat_discomfort_strings = list(
|
||||
@@ -93,7 +93,11 @@
|
||||
"surge" = /obj/item/organ/internal/surge/advanced
|
||||
)
|
||||
|
||||
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/terminator, /datum/unarmed_attack/bite/strong)
|
||||
unarmed_types = list(
|
||||
/datum/unarmed_attack/stomp/ipc,
|
||||
/datum/unarmed_attack/kick/ipc,
|
||||
/datum/unarmed_attack/terminator,
|
||||
/datum/unarmed_attack/bite/strong)
|
||||
|
||||
inherent_verbs = list(
|
||||
/mob/living/carbon/human/proc/leap,
|
||||
@@ -110,6 +114,8 @@
|
||||
bald = 1
|
||||
bodytype = "Heavy Machine"
|
||||
|
||||
unarmed_types = list(/datum/unarmed_attack/industrial)
|
||||
|
||||
brute_mod = 0.8
|
||||
burn_mod = 1.1
|
||||
|
||||
@@ -144,11 +150,11 @@
|
||||
flags = IS_IPC | ACCEPTS_COOLER
|
||||
appearance_flags = HAS_EYE_COLOR
|
||||
|
||||
heat_level_1 = 600
|
||||
heat_level_2 = 1200
|
||||
heat_level_3 = 2400
|
||||
heat_level_1 = 800
|
||||
heat_level_2 = 1600
|
||||
heat_level_3 = 3200
|
||||
|
||||
heat_discomfort_level = 800
|
||||
heat_discomfort_level = 700
|
||||
|
||||
max_nutrition_factor = 1.25
|
||||
nutrition_loss_factor = 2
|
||||
@@ -288,8 +294,24 @@
|
||||
preview_icon = 'icons/mob/human_races/ipc/ind_hephaestus_preview.dmi'
|
||||
|
||||
eyes = "heph_eyes"
|
||||
|
||||
unarmed_types = list(/datum/unarmed_attack/industrial/heavy)
|
||||
|
||||
slowdown = 6
|
||||
brute_mod = 0.7
|
||||
grab_mod = 0.7 // Bulkier and bigger than the G1
|
||||
resist_mod = 12 // Overall stronger than G1
|
||||
|
||||
heat_level_1 = 1000
|
||||
heat_level_2 = 2000
|
||||
heat_level_3 = 4000
|
||||
|
||||
heat_discomfort_level = 900
|
||||
|
||||
inherent_verbs = list(
|
||||
/mob/living/carbon/human/proc/self_diagnostics,
|
||||
/mob/living/carbon/human/proc/crush
|
||||
)
|
||||
|
||||
examine_color = "#688359"
|
||||
|
||||
@@ -322,13 +344,27 @@
|
||||
deform = 'icons/mob/human_races/ipc/r_ind_xion.dmi'
|
||||
preview_icon = 'icons/mob/human_races/ipc/ind_xion_preview.dmi'
|
||||
|
||||
unarmed_types = list(
|
||||
/datum/unarmed_attack/industrial/xion)
|
||||
|
||||
brute_mod = 0.9
|
||||
grab_mod = 0.9
|
||||
resist_mod = 8
|
||||
|
||||
heat_level_1 = 700
|
||||
heat_level_2 = 1400
|
||||
heat_level_3 = 2800
|
||||
|
||||
heat_discomfort_level = 600
|
||||
slowdown = 3
|
||||
|
||||
eyes = "xion_eyes"
|
||||
flags = IS_IPC
|
||||
passive_temp_gain = 5
|
||||
passive_temp_gain = 0
|
||||
|
||||
examine_color = "#bc4b00"
|
||||
|
||||
blurb = "The Xion Manufacturing Group, being a subsidiary of Hephaestus Industries, saw the original Industrial models and wanted to develop their own chassis based off of the original design. The result is the Xion Industrial model. Sturdy and strong, this chassis is quite powerful and equally durable, with an ample power cell and improved actuators for carrying the increased weight of the body. The Xion model also retains sturdiness without covering the chassis in plating, allowing for the cooling systems to vent heat much easier than the Hephaestus-brand model. This unit cannot perform EVA without a suit."
|
||||
blurb = "The Xion Manufacturing Group, being a subsidiary of Hephaestus Industries, saw the original Industrial models and wanted to develop their own chassis based off of the original design. The result is the Xion Industrial model. Sturdy and strong, this chassis is quite powerful and equally durable, with an ample power cell and improved actuators for carrying the increased weight of the body. The Xion model also retains sturdiness without covering the chassis in plating, allowing for the cooling systems to vent heat much easier than the Hephaestus-brand model. This unit can perform EVA without assistance."
|
||||
|
||||
has_limbs = list(
|
||||
BP_CHEST = list("path" = /obj/item/organ/external/chest/industrial/xion),
|
||||
@@ -351,7 +387,6 @@
|
||||
/datum/species/machine/zenghu
|
||||
name = "Zeng-Hu Mobility Frame"
|
||||
short_name = "zhf"
|
||||
bodytype = null
|
||||
|
||||
icobase = 'icons/mob/human_races/ipc/r_ind_zenghu.dmi'
|
||||
deform = 'icons/mob/human_races/ipc/r_ind_zenghu.dmi'
|
||||
@@ -364,6 +399,8 @@
|
||||
grab_mod = 1.1 // Smooth, fast
|
||||
resist_mod = 4 // Not super strong, but still rather strong
|
||||
|
||||
slowdown = -1.2
|
||||
|
||||
appearance_flags = HAS_EYE_COLOR
|
||||
|
||||
examine_color = "#ff00ff"
|
||||
@@ -395,7 +432,7 @@
|
||||
/datum/species/machine/bishop
|
||||
name = "Bishop Accessory Frame"
|
||||
short_name = "bcf"
|
||||
bodytype = null
|
||||
bodytype = "Human"
|
||||
|
||||
icobase = 'icons/mob/human_races/ipc/r_ind_bishop.dmi'
|
||||
deform = 'icons/mob/human_races/ipc/r_ind_bishop.dmi'
|
||||
|
||||
Reference in New Issue
Block a user