mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 04:22:39 +01:00
The XenoMechMed PR (#21318)
This PR is something me and NobleRow have been cooking behind the scenes with the goal of adding new Xenoarch content that fits two objectives. 1. Providing cross-department cooperation opportunities (Machinists and Medical) 2. Making use of content entirely unique to Aurora, such as our recently refactored organs. So I've added several new and exciting xenoarch "finds" that relate to Medical and Machinists, as well as several new parts for Machinists to work with. On the xenoarch side of things, we have the new "anomalous" heart and lung items, which you can study by calling over a surgeon to implant into your free choice of a monkey, or a particularly enthusiastic human volunteer. There are also two new "anomalous" mech components, one of them an anomalous drone bay, and the other an anomalous power core. To study them, call a machinist over and have them make a mech for you to experiment with. The new xenoarch "finds" each feature heavily rng stat modifiers that are unique to the objects in question, and make use of a very large number of variables that I had previously worked to unhardcode. I had a batch of sprites done by NobleRow, and I was adding new mech equipment in this PR, so while we were at it, I've added a new LTL variant of the mech submachine gun, as well as a new light variant of the mech-mounted KA, which was highly requested by both miners and xenoarch players on account of the 9 tile blast radius KA being "Not always good to have". All of the sprites in this PR were made by @NobleRow
This commit is contained in:
@@ -92,6 +92,14 @@
|
||||
|
||||
installed_cell = /obj/item/custom_ka_upgrade/cells/exosuit
|
||||
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel04
|
||||
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/focusing
|
||||
|
||||
/obj/item/gun/custom_ka/exosuit/heavy
|
||||
name = "exosuit heavy kinetic accelerator"
|
||||
build_name = "exosuit compatible"
|
||||
icon_state = "frame_cyborg"
|
||||
desc = "A heavy kinetic accelerator frame meant for exosuits. Uses an exosuit's internal charge as power."
|
||||
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel04
|
||||
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/explosive/exosuit
|
||||
|
||||
/obj/item/gun/custom_ka/frameA
|
||||
|
||||
@@ -45,6 +45,12 @@
|
||||
icon_state = "mecha_ballistic"
|
||||
holding_type = /obj/item/gun/energy/mountedsmg/mech
|
||||
|
||||
/obj/item/mecha_equipment/mounted_system/combat/smg_ltl
|
||||
name = "mounted riot submachinegun"
|
||||
desc = "An exosuit-mounted automatic weapon that has been modified to fire rubber ammunition for riot control. Handle with care."
|
||||
icon_state = "mecha_ballistic_ltl"
|
||||
holding_type = /obj/item/gun/energy/mountedsmg/mech
|
||||
|
||||
/obj/item/mecha_equipment/mounted_system/combat/smg/attack_self(mob/user)
|
||||
if(owner && istype(holding, /obj/item/gun/energy/mountedsmg/mech))
|
||||
var/obj/item/gun/energy/mountedsmg/mech/R = holding
|
||||
|
||||
@@ -145,6 +145,34 @@
|
||||
"It <b>cannot</b> heal the dead. It also <b>cannot</b> mend broken bones.",
|
||||
)
|
||||
|
||||
/obj/item/mecha_equipment/crisis_drone/alien
|
||||
name = "anomalous dronebay"
|
||||
desc = "A small shoulder-mounted dronebay containing a drone made seemingly from mercury."
|
||||
icon_state = "alien_drone"
|
||||
origin_tech = list(TECH_PHORON = 9, TECH_MAGNET = 9, TECH_BIO = 9, TECH_DATA = 9)
|
||||
restricted_hardpoints = list(HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER)
|
||||
|
||||
/obj/item/mecha_equipment/crisis_drone/alien/Initialize()
|
||||
. = ..()
|
||||
max_distance = rand(1, 5)
|
||||
passive_power_use *= rand(0.8, 1.2)
|
||||
damcap *= rand(0.8, 1.2)
|
||||
heal_dead = prob(50)
|
||||
|
||||
// 5% chance to be a "Harming drone" instead of a healing drone. All healing is inverted to damage. Have fun with that.
|
||||
var/harming_drone = 1
|
||||
if(prob(5))
|
||||
harming_drone = -1
|
||||
|
||||
brute_heal = rand(1, 5) * harming_drone
|
||||
burn_heal = rand(1, 5) * harming_drone
|
||||
tox_heal = rand(1, 5) * harming_drone
|
||||
oxy_heal = rand(1, 5) * harming_drone
|
||||
rad_heal = rand(1, 5) * harming_drone
|
||||
clone_heal = rand(1, 5) * harming_drone
|
||||
hal_heal = rand(1, 5) * harming_drone
|
||||
bone_heal = rand(0, 499) / 5
|
||||
|
||||
/obj/item/mecha_equipment/crisis_drone/Destroy()
|
||||
Target = null
|
||||
MyBeam = null
|
||||
|
||||
@@ -103,10 +103,22 @@ ABSTRACT_TYPE(/obj/item/mecha_equipment/mounted_system/mining)
|
||||
restricted_software = list(MECH_SOFTWARE_UTILITY)
|
||||
|
||||
/obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator
|
||||
name = "mounted kinetic accelerator"
|
||||
desc = "A kinetic accelerator designed to be mounted on an exosuit."
|
||||
icon_state = "mecha_taser" // would be too difficult to get a proper sprite for this, would rather just get it in
|
||||
holding_type = /obj/item/gun/custom_ka/exosuit
|
||||
module_hints = list(
|
||||
"<b>Left Click:</b> Fire a kinetic blast in the target direction.",
|
||||
"<b>WARNING: This weapon produces a mining blast one tile in radius.</b>",
|
||||
"A mech can only fire within a 90 degree arc in the direction it is currently facing.",
|
||||
"This weapon passively regenerates its ammunition using the mech's power supply.",
|
||||
)
|
||||
|
||||
/obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator/heavy
|
||||
name = "mounted heavy kinetic accelerator"
|
||||
desc = "A heavy-duty kinetic accelerator designed to be mounted on an exosuit."
|
||||
icon_state = "mecha_taser" // would be too difficult to get a proper sprite for this, would rather just get it in
|
||||
holding_type = /obj/item/gun/custom_ka/exosuit
|
||||
holding_type = /obj/item/gun/custom_ka/exosuit/heavy
|
||||
module_hints = list(
|
||||
"<b>Left Click:</b> Fire a kinetic blast in the target direction.",
|
||||
"<b>WARNING: This weapon produces a mining blast eight tiles in radius.</b>",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
h_l_hand = /obj/item/mecha_equipment/drill
|
||||
h_r_hand = /obj/item/mecha_equipment/clamp
|
||||
h_l_shoulder = /obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator
|
||||
h_l_shoulder = /obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator/heavy
|
||||
h_back = /obj/item/mecha_equipment/ore_summoner
|
||||
|
||||
/mob/living/heavy_vehicle/premade/miner/remote
|
||||
|
||||
@@ -383,3 +383,47 @@
|
||||
thready_pump_modifier = 1.5
|
||||
damage_from_chemicals = 0.7
|
||||
blood_spray_distance = 1
|
||||
|
||||
/obj/item/organ/internal/heart/alien_heart
|
||||
name = "anomalous mercurial flesh"
|
||||
desc = "A slab of flesh made seemingly from mercury, yet with a recognizably organic shape. It is soft to the touch, pliable like skin, yet is as tough as steel."
|
||||
icon = 'icons/obj/organs/bioaugs.dmi'
|
||||
icon_state = "alien_heart"
|
||||
max_damage = 200
|
||||
min_bruised_damage = 150
|
||||
min_broken_damage = 175
|
||||
|
||||
/obj/item/organ/internal/heart/alien_heart/Initialize()
|
||||
. = ..()
|
||||
// RANDOMIZE EVERYTHING.
|
||||
// DEAR READER, I HOPE YOU HAVE FUN IF YOU MAKE THE MISTAKE OF PUTTING THIS IN A HUMAN.
|
||||
// BECAUSE YOU ARE NOT GUARANTEED IT CAN SUSTAIN LIFE.
|
||||
heart_fibrillation_damage *= rand(0.5, 2)
|
||||
heart_tachycardia_damage *= rand(0.5, 2)
|
||||
fibrillation_stop_risk = rand(1, 99)
|
||||
shock_stage_for_fibrillation *= rand(0.5, 2)
|
||||
shock_risk_from_pain = rand(1, 99)
|
||||
first_shock_stage *= rand(0.75, 1.33)
|
||||
second_shock_stage *= rand(0.75, 1.33)
|
||||
blood_regen_modifier *= rand(0.5, 2)
|
||||
base_arterial_bloodloss_modifier *= rand(0.5, 2)
|
||||
base_cut_bloodloss_modifier *= rand(0.5, 2)
|
||||
nutrition_cost_per_blood_regen *= rand(0.5, 2)
|
||||
hydration_cost_per_blood_regen *= rand(0.5, 2)
|
||||
minimum_temperature_to_pump_blood *= rand(0.75, 1.33)
|
||||
time_between_arterial_sprays *= rand(0.5, 2)
|
||||
bleed_drip_modifier *= rand(0.5, 2)
|
||||
palpitations_threshold *= rand(0.5, 2)
|
||||
slow_bleeding_modifier *= rand(0.75, 1.33)
|
||||
fast_bleeding_modifier *= rand(0.75, 1.33)
|
||||
thready_bleeding_modifier *= rand(0.75, 1.33)
|
||||
base_pump_rate *= rand(0.75, 1.33)
|
||||
none_pump_modifier *= rand(0.75, 1.33)
|
||||
slow_pump_modifier *= rand(0.75, 1.33)
|
||||
fast_pump_modifier *= rand(0.75, 1.33)
|
||||
too_fast_pump_modifier *= rand(0.75, 1.33)
|
||||
thready_pump_modifier *= rand(0.75, 1.33)
|
||||
if(prob(50))
|
||||
fake_pulse = TRUE
|
||||
damage_from_chemicals *= rand(0.75, 1.33)
|
||||
blood_spray_distance = rand(1, 9)
|
||||
|
||||
@@ -170,3 +170,33 @@
|
||||
toxin_critical_mass = 90
|
||||
booze_filtering_modifier = 0.5 // "Impossible to get drunk", this should make it impossible. :)
|
||||
blackout_booze_filtering_modifier = 0.25
|
||||
|
||||
/obj/item/organ/internal/liver/alien_liver
|
||||
name = "anomalous mercurial flesh"
|
||||
desc = "A slab of flesh made seemingly from mercury, yet with a recognizably organic shape. It is soft to the touch, pliable like skin, yet is as tough as steel."
|
||||
icon = 'icons/obj/organs/bioaugs.dmi'
|
||||
icon_state = "alien_liver"
|
||||
max_damage = 200
|
||||
min_bruised_damage = 150
|
||||
min_broken_damage = 175
|
||||
|
||||
/obj/item/organ/internal/liver/alien_liver/Initialize()
|
||||
. = ..()
|
||||
base_filter_strength *= rand(0.5, 2)
|
||||
base_filter_effect *= rand(0.5, 2)
|
||||
// That negative bound is intentional.
|
||||
// A negative filter effect value means dylovene will decrease the liver effectiveness.
|
||||
filter_effect_from_dylovene *= rand(-2, 2)
|
||||
intox_filter_bruised *= rand(0.5, 2)
|
||||
intox_filter_broken *= rand(0.5, 2)
|
||||
base_toxin_healing_rate *= rand(0.5, 2)
|
||||
toxin_critical_mass *= rand(0.5, 2)
|
||||
filter_effect_from_critical_toxin *= rand(0.5, 2)
|
||||
booze_filtering_modifier *= rand(0, 10)
|
||||
filter_effect_from_bruise *= rand(0.5, 2)
|
||||
filter_effect_from_broken *= rand(0.5, 2)
|
||||
blackout_booze_filtering_modifier *= rand(0, 10)
|
||||
infection_level_one_warning = "Uncountable tiny metal scarabs dig into your flesh."
|
||||
liver_regeneration_normal *= rand(0, 2)
|
||||
liver_regeneration_bruised *= rand(0, 2)
|
||||
liver_regeneration_broken = rand(0, 12)
|
||||
|
||||
@@ -21,10 +21,15 @@
|
||||
build_path = /obj/item/mecha_equipment/mounted_system/combat/taser
|
||||
|
||||
/datum/design/item/mechfab/exosuit_equipment/uac
|
||||
name = "Mounted Automatic Weapon"
|
||||
name = "Mounted Submachine Gun"
|
||||
req_tech = list(TECH_COMBAT = 4)
|
||||
build_path = /obj/item/mecha_equipment/mounted_system/combat/smg
|
||||
|
||||
/datum/design/item/mechfab/exosuit_equipment/uac_ltl
|
||||
name = "Mounted Riot Submachine Gun"
|
||||
req_tech = list(TECH_COMBAT = 2)
|
||||
build_path = /obj/item/mecha_equipment/mounted_system/combat/smg_ltl
|
||||
|
||||
/datum/design/item/mechfab/exosuit_equipment/plasma
|
||||
name = "Mounted Plasma Cutter"
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 2000, MATERIAL_GLASS = 1000, MATERIAL_GOLD = 1000, MATERIAL_PHORON = 1000)
|
||||
@@ -162,10 +167,16 @@
|
||||
desc += " It needs an anomaly core to function, however."
|
||||
|
||||
/datum/design/item/mechfab/exosuit_equipment/kinetic_accelerator
|
||||
name = "Mounted Kinetic Accelerator"
|
||||
materials = list(MATERIAL_STEEL = 5000, MATERIAL_ALUMINIUM = 5000, MATERIAL_GLASS = 2500)
|
||||
req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_POWER = 3)
|
||||
build_path = /obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator
|
||||
|
||||
/datum/design/item/mechfab/exosuit_equipment/kinetic_accelerator_heavy
|
||||
name = "Mounted Heavy Kinetic Accelerator"
|
||||
materials = list(MATERIAL_STEEL = 25000, MATERIAL_GLASS = 5000)
|
||||
req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_POWER = 3)
|
||||
build_path = /obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator
|
||||
build_path = /obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator/heavy
|
||||
|
||||
/datum/design/item/mechfab/exosuit_equipment/ore_summoner
|
||||
name = "Mounted Ore Summoner"
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
if(new_item_type)
|
||||
find_type = new_item_type
|
||||
else
|
||||
find_type = rand(1,36) //update this when you add new find types
|
||||
find_type = rand(1,40) //update this when you add new find types
|
||||
|
||||
var/item_type = "object"
|
||||
icon_state = "unknown[rand(1,4)]"
|
||||
@@ -495,6 +495,14 @@
|
||||
new_item = new /obj/item/clothing/mask/gas(src.loc)
|
||||
if(36)
|
||||
new_item = new /obj/item/sarcophagus_key(src.loc)
|
||||
if(37)
|
||||
new_item = new /obj/item/cell/mecha/phoron/alien
|
||||
if(38)
|
||||
new_item = new /obj/item/mecha_equipment/crisis_drone/alien
|
||||
if(39)
|
||||
new_item = new /obj/item/organ/internal/heart/alien_heart
|
||||
if(40)
|
||||
new_item = new /obj/item/organ/internal/liver/alien_liver
|
||||
|
||||
var/decorations = ""
|
||||
if(apply_material_decorations)
|
||||
|
||||
Reference in New Issue
Block a user