mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-17 19:07:26 +01:00
Bugs, Bugs Everywhere. (#1351)
Fixes #1333 and Fixes #1331 IPCs, and indeed anyone with robotic organs or plant organs, can be rejuv'd properly. IPCs now have their damage shown on VV, more or less. IPCs have their brutemod set to 0.8, since prosthetic limbs already have brute mods of their own, and so Industrial IPCs could have a brute mod of 0.5 instead of 0.3 Probably some other stuff. It's all in the diff.
This commit is contained in:
@@ -25,6 +25,7 @@ var/list/organ_cache = list()
|
||||
germ_level = 0
|
||||
var/datum/dna/dna
|
||||
var/datum/species/species
|
||||
var/emp_coeff = 1 //coefficient for damages taken by EMP, if the organ is robotic.
|
||||
|
||||
/obj/item/organ/Destroy()
|
||||
if(!owner)
|
||||
@@ -265,13 +266,13 @@ var/list/organ_cache = list()
|
||||
return
|
||||
switch (severity)
|
||||
if (1.0)
|
||||
take_damage(20)
|
||||
take_damage(rand(7,20) * emp_coeff)
|
||||
return
|
||||
if (2.0)
|
||||
take_damage(7)
|
||||
take_damage(rand(3,7) * emp_coeff)
|
||||
return
|
||||
if(3.0)
|
||||
take_damage(3)
|
||||
take_damage(rand(3) * emp_coeff)
|
||||
|
||||
/obj/item/organ/proc/removed(var/mob/living/user)
|
||||
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
var/can_grasp //It would be more appropriate if these two were named "affects_grasp" and "affects_stand" at this point
|
||||
var/can_stand
|
||||
var/body_hair
|
||||
var/painted = 0
|
||||
|
||||
/obj/item/organ/external/Destroy()
|
||||
if(parent && parent.children)
|
||||
@@ -343,10 +344,14 @@ This function completely restores a damaged organ to perfect condition.
|
||||
*/
|
||||
/obj/item/organ/external/rejuvenate()
|
||||
damage_state = "00"
|
||||
if(status & 128) //Robotic organs stay robotic. Fix because right click rejuvinate makes IPC's organs organic.
|
||||
status = 128
|
||||
else
|
||||
status = 0
|
||||
src.status &= ~ORGAN_BROKEN
|
||||
src.status &= ~ORGAN_BLEEDING
|
||||
src.status &= ~ORGAN_SPLINTED
|
||||
src.status &= ~ORGAN_CUT_AWAY
|
||||
src.status &= ~ORGAN_DESTROYED
|
||||
src.status &= ~ORGAN_DEAD
|
||||
src.status &= ~ORGAN_MUTATED
|
||||
src.status &= ~ORGAN_SPLINTED
|
||||
perma_injury = 0
|
||||
brute_dam = 0
|
||||
burn_dam = 0
|
||||
@@ -932,10 +937,14 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
if(company)
|
||||
model = company
|
||||
var/datum/robolimb/R = all_robolimbs[company]
|
||||
if(species && !(species.name in R.species_can_use))
|
||||
R = basic_robolimb
|
||||
if(R)
|
||||
force_icon = R.icon
|
||||
name = "[R.company] [initial(name)]"
|
||||
desc = "[R.desc]"
|
||||
if(R.paintable)
|
||||
painted = 1
|
||||
|
||||
dislocated = -1 //TODO, make robotic limbs a separate type, remove snowflake
|
||||
cannot_break = 1
|
||||
|
||||
@@ -95,6 +95,9 @@ var/global/list/limb_icon_cache = list()
|
||||
|
||||
if(force_icon)
|
||||
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
if(painted)
|
||||
if(s_col && s_col.len >= 3)
|
||||
mob_icon.Blend(rgb(s_col[1], s_col[2], s_col[3]), ICON_ADD)
|
||||
else
|
||||
if(!dna)
|
||||
mob_icon = new /icon('icons/mob/human_races/r_human.dmi', "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
|
||||
@@ -16,6 +16,7 @@ var/global/datum/robolimb/basic_robolimb
|
||||
var/icon = 'icons/mob/human_races/robotic.dmi' // Icon base to draw from.
|
||||
var/unavailable_at_chargen // If set, not available at chargen.
|
||||
var/list/species_can_use = list("Human","Skrell","Tajara","Zhan-Khaza","M'sai","Unathi","Vaurca Worker","Vaurca Warrior","Baseline Frame")
|
||||
var/paintable = 0 //tired of istype exceptions. bullshirt to find, and by god do i know it after this project.
|
||||
|
||||
/datum/robolimb/bishop
|
||||
company = "Bishop Cybernetics"
|
||||
@@ -40,8 +41,9 @@ var/global/datum/robolimb/basic_robolimb
|
||||
/datum/robolimb/ipc
|
||||
company = "Hephaestus Integrated Limb"
|
||||
desc = "This limb is simple and functional; no effort has been made to make it look human."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/ipc.dmi'
|
||||
icon = 'icons/mob/human_races/r_machine.dmi'
|
||||
unavailable_at_chargen = 1
|
||||
paintable = 1
|
||||
|
||||
/datum/robolimb/industrial
|
||||
company = "Hephaestus Industrial Limb"
|
||||
|
||||
@@ -176,6 +176,7 @@
|
||||
organ_tag = "brain"
|
||||
parent_organ = "chest"
|
||||
vital = 1
|
||||
emp_coeff = 0.1
|
||||
|
||||
/obj/item/organ/data
|
||||
name = "data core"
|
||||
@@ -184,6 +185,7 @@
|
||||
icon = 'icons/obj/cloning.dmi'
|
||||
icon_state = "harddisk"
|
||||
vital = 0
|
||||
emp_coeff = 0.1
|
||||
|
||||
/obj/item/organ/data/New()
|
||||
robotize()
|
||||
@@ -197,9 +199,10 @@
|
||||
organ_tag = "shielded cell"
|
||||
parent_organ = "chest"
|
||||
vital = 1
|
||||
emp_coeff = 0.1
|
||||
|
||||
/obj/item/organ/cell/New()
|
||||
mechassist()
|
||||
robotize()
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/head/terminator
|
||||
@@ -209,70 +212,105 @@
|
||||
max_damage = 50 //made same as arm, since it is not vital
|
||||
min_broken_damage = 30
|
||||
encased = null
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/optical_sensorterminator
|
||||
name = "optical sensor"
|
||||
organ_tag = "optics"
|
||||
parent_organ = "head"
|
||||
icon = 'icons/obj/robot_component.dmi'
|
||||
icon_state = "camera"
|
||||
dead_icon = "camera_broken"
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/optical_sensor/terminator/New()
|
||||
robotize()
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/organ/external/head/terminator/New()
|
||||
mechassist("Hephaestus Vulcanite Limb")
|
||||
robotize("Hephaestus Vulcanite Limb")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/chest/terminator
|
||||
dislocated = -1
|
||||
encased = null
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/external/chest/terminator/New()
|
||||
mechassist("Hephaestus Vulcanite Limb")
|
||||
robotize("Hephaestus Vulcanite Limb")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/groin/terminator
|
||||
dislocated = -1
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/external/groin/terminator/New()
|
||||
mechassist("Hephaestus Vulcanite Limb")
|
||||
robotize("Hephaestus Vulcanite Limb")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/arm/terminator
|
||||
dislocated = -1
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/external/arm/terminator/New()
|
||||
mechassist("Hephaestus Vulcanite Limb")
|
||||
robotize("Hephaestus Vulcanite Limb")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/arm/right/terminator
|
||||
dislocated = -1
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/external/arm/right/terminator/New()
|
||||
mechassist("Hephaestus Vulcanite Limb")
|
||||
robotize("Hephaestus Vulcanite Limb")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/leg/terminator
|
||||
dislocated = -1
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/external/leg/terminator/New()
|
||||
mechassist("Hephaestus Vulcanite Limb")
|
||||
robotize("Hephaestus Vulcanite Limb")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/leg/right/terminator
|
||||
dislocated = -1
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/external/leg/right/terminator/New()
|
||||
mechassist("Hephaestus Vulcanite Limb")
|
||||
robotize("Hephaestus Vulcanite Limb")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/foot/terminator
|
||||
dislocated = -1
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/external/foot/terminator/New()
|
||||
mechassist("Hephaestus Vulcanite Limb")
|
||||
robotize("Hephaestus Vulcanite Limb")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/foot/right/terminator
|
||||
dislocated = -1
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/external/foot/right/terminator/New()
|
||||
mechassist("Hephaestus Vulcanite Limb")
|
||||
robotize("Hephaestus Vulcanite Limb")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/hand/terminator
|
||||
dislocated = -1
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/external/hand/terminator/New()
|
||||
mechassist("Hephaestus Vulcanite Limb")
|
||||
robotize("Hephaestus Vulcanite Limb")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/hand/right/terminator
|
||||
dislocated = -1
|
||||
emp_coeff = 0.5
|
||||
|
||||
/obj/item/organ/external/hand/right/terminator/New()
|
||||
mechassist("Hephaestus Vulcanite Limb")
|
||||
robotize("Hephaestus Vulcanite Limb")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/head/industrial
|
||||
|
||||
Reference in New Issue
Block a user