From bff6c9c2937b5df5a68174177576bd41945c7ba2 Mon Sep 17 00:00:00 2001 From: Coxswain Date: Sun, 2 Feb 2025 20:54:06 -0600 Subject: [PATCH] Fire damage improvments some fixes should fix this stuff h first attempt at fixing linters adds some damage coeffs burn ouchey adds fire damage to firebird reworks this whole thing adds some text stuff --- code/datums/status_effects/debuffs.dm | 26 +++------------ code/modules/clothing/clothing.dm | 13 +++++++- code/modules/clothing/suits/ego_gear/aleph.dm | 32 ++++++++++--------- code/modules/clothing/suits/ego_gear/he.dm | 12 ++++--- .../suits/ego_gear/non_abnormality/dawn.dm | 4 +-- .../suits/ego_gear/non_abnormality/liu.dm | 6 ++-- code/modules/clothing/suits/ego_gear/teth.dm | 6 ++-- code/modules/clothing/suits/ego_gear/waw.dm | 6 ++-- code/modules/clothing/suits/ego_gear/zayin.dm | 2 ++ .../_auxiliary_modes/community/ego_armor.dm | 8 ++--- .../_auxiliary_modes/community/ego_weapons.dm | 6 ++-- .../abnormality/he/ardor_blossom_moth.dm | 2 +- .../abnormality/he/basilisoup.dm | 2 +- .../abnormality/he/der_freischutz.dm | 2 +- .../simple_animal/abnormality/he/pinocchio.dm | 3 +- .../simple_animal/abnormality/he/rudolta.dm | 2 +- .../abnormality/he/snow_queen.dm | 2 +- .../abnormality/waw/fire_bird.dm | 5 +-- .../mob/living/simple_animal/simple_animal.dm | 9 ++++++ 19 files changed, 81 insertions(+), 67 deletions(-) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 80147e9cf226..66cff25f3acf 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -1108,7 +1108,6 @@ tick_interval = 5 SECONDS consumed_on_threshold = FALSE var/new_stack = FALSE - var/burn_res = 0 var/safety = TRUE /atom/movable/screen/alert/status_effect/lc_burn @@ -1131,12 +1130,10 @@ qdel(src) to_chat(owner, "The flame consumes you!!") owner.playsound_local(owner, 'sound/effects/burn.ogg', 50, TRUE) - Check_Resist(owner) if(ishuman(owner)) - owner.adjustFireLoss(max(0, stacks - burn_res)) + owner.apply_damage(stacks, BURN, null, owner.run_armor_check(null, BURN)) else - owner.adjustBruteLoss(stacks*4) // x4 on non humans (Average burn stack is 20. 80/5 sec, extra 16 pure dps) - new /obj/effect/temp_visual/damage_effect/burn(get_turf(owner)) + owner.apply_damage(stacks*4, BURN, null, owner.run_armor_check(null, BURN)) // x4 on non humans (Average burn stack is 20. 80/5 sec, extra 16 pure dps) //Deletes itself after 2 tick if no new burn stack was given if(safety) @@ -1147,24 +1144,10 @@ else qdel(src) -//Check armor -/datum/status_effect/stacking/lc_burn/proc/Check_Resist(mob/living/owner) - //I was hesistant to put a new var for this check in suit.dm, so I just check for each armor instead - var/mob/living/carbon/human/H = owner - var/obj/item/clothing/suit/armor/ego_gear/aleph/waxen/C = H.get_item_by_slot(ITEM_SLOT_OCLOTHING) - var/obj/item/clothing/suit/armor/ego_gear/realization/desperation/D = H.get_item_by_slot(ITEM_SLOT_OCLOTHING) - if(istype(C)) - burn_res = 15 - else if(istype(D)) - burn_res = 25 - else - burn_res = 0 - //Update burn appearance /datum/status_effect/stacking/lc_burn/proc/Update_Burn_Overlay(mob/living/owner) - Check_Resist(owner) - if(stacks > burn_res && !(owner.on_fire) && ishuman(owner)) - if(stacks >= 50) + if(stacks && !(owner.on_fire) && ishuman(owner)) + if(stacks >= 15) owner.cut_overlay(mutable_appearance('icons/mob/OnFire.dmi', "Generic_mob_burning", -FIRE_LAYER)) owner.cut_overlay(mutable_appearance('icons/mob/OnFire.dmi', "Standing", -FIRE_LAYER)) owner.add_overlay(mutable_appearance('icons/mob/OnFire.dmi', "Standing", -FIRE_LAYER)) @@ -1195,7 +1178,6 @@ tick_interval = 5 SECONDS consumed_on_threshold = FALSE var/new_stack = FALSE - var/burn_res = 0 var/safety = TRUE var/bleed_cooldown = 20 var/bleed_time diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 159e83c922f1..7a355c005d6e 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -62,6 +62,9 @@ /// A lazily initiated "food" version of the clothing for moths var/obj/item/food/clothing/moth_snack + /// Exclusive to LC13 - Toggles whether or not fire armor shows up in tags. Hides the armor value from the player if automatically generated. + var/fire_display = TRUE + /obj/item/clothing/Initialize() if((clothing_flags & VOICEBOX_TOGGLABLE)) actions_types += /datum/action/item_action/toggle_voice_box @@ -72,6 +75,13 @@ LoadComponent(/datum/component/bloodysoles) if(!icon_state) item_flags |= ABSTRACT + var/burnvalue = armor.getRating(FIRE) + if(!burnvalue) + var/redvalue = armor.getRating(RED_DAMAGE) + if(redvalue > 0) + redvalue = (redvalue * 0.5) + armor = armor.modifyRating(FIRE = redvalue) + fire_display = FALSE /obj/item/clothing/MouseDrop(atom/over_object) . = ..() @@ -327,7 +337,7 @@ if(LAZYLEN(durability_list)) durability_list.Cut() - if(armor.fire) + if(armor.fire && fire_display) durability_list += list("FIRE" = armor.fire) if(armor.acid) durability_list += list("ACID" = armor.acid) @@ -361,6 +371,7 @@ readout += "\nYou can add numbers together by putting the symbols in descending order from left to right. You’d add all of the symbols’ individual values together to get the total value. For example, VI is 5 + 1 or 6." readout += "\nYou can also subtract numbers from each other by placing a symbol with a smaller value to the left of one with a larger value. The value of the smaller symbol is subtracted from that of the larger symbol to get the total value, so IV is 5 - 1, or 4." readout += "\nExamples: \nIX = 10-1 = 9. \nVI = 5+1 = 6. \nVIII = 5+1+1+1 = 8." + readout += "\nAdditionally, all armors that have an armor value for red damage will have half (if positive) of that value in an armor value for fire damage if not explicitly indicated." to_chat(usr, "[readout.Join()]") /** diff --git a/code/modules/clothing/suits/ego_gear/aleph.dm b/code/modules/clothing/suits/ego_gear/aleph.dm index 620788dabc1b..0943872cc8b5 100644 --- a/code/modules/clothing/suits/ego_gear/aleph.dm +++ b/code/modules/clothing/suits/ego_gear/aleph.dm @@ -4,6 +4,8 @@ Think before you code! Any attempt to code risk class armor will result in a 10 day Github ban.*/ +/*Developer's note - All LC13 armor has 50% of its red_damage armor as fire armor by default. */ + /obj/item/clothing/suit/armor/ego_gear/aleph icon = 'icons/obj/clothing/ego_gear/abnormality/aleph.dmi' worn_icon = 'icons/mob/clothing/ego_gear/abnormality/aleph.dmi' @@ -266,7 +268,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ to_chat(user, span_nicegreen("[src] has gained extra resistance to PALE damage!")) if("diamonds") - armor = armor.modifyRating(red = 10, pale = 5) + armor = armor.modifyRating(red = 10, pale = 5, fire = 5) to_chat(user, span_nicegreen("[src] has gained extra resistance to RED damage!")) if("clubs") @@ -277,7 +279,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ name = "Seasons Greetings" desc = "This is a placeholder." icon_state = "spring" - armor = list(RED_DAMAGE = 60, WHITE_DAMAGE = 60, BLACK_DAMAGE = 60, PALE_DAMAGE = 60) // 240 + armor = list(RED_DAMAGE = 60, WHITE_DAMAGE = 60, BLACK_DAMAGE = 60, PALE_DAMAGE = 60, FIRE = 60) // 240 attribute_requirements = list( FORTITUDE_ATTRIBUTE = 80, PRUDENCE_ATTRIBUTE = 100, @@ -332,36 +334,36 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ var/warning_message switch(stored_season) //Hopefully someday someone finds a more efficient way to change armor values if("spring") - src.armor = new(red = 60, white = 80, black = 40, pale = 60) //240 + src.armor = new(red = 60, white = 80, black = 40, pale = 60, fire = 30) //240 if(stored_season != current_season) //Our drip is out of season - src.armor = new(red = 50, white = 80, black = 40, pale = 50) //220 + src.armor = new(red = 50, white = 80, black = 40, pale = 50, fire = 30) //220 weakened = TRUE if(current_season == "fall") - src.armor = new(red = 50, white = 70, black = 30, pale = 50) //200 + src.armor = new(red = 50, white = 70, black = 30, pale = 50, fire = 30) //200 warning_message = "Fall has come, the leaves on your armor wither and die." if("summer") - src.armor = new(red = 80, white = 40, black = 60, pale = 60) + src.armor = new(red = 80, white = 40, black = 60, pale = 60, fire = 70) if(stored_season != current_season) //Our drip is out of season - src.armor = new(red = 80, white = 40, black = 50, pale = 50) + src.armor = new(red = 80, white = 40, black = 50, pale = 50, fire = 70) weakened = TRUE if(current_season == "winter") - src.armor = new(red = 70, white = 30, black = 50, pale = 50) + src.armor = new(red = 70, white = 30, black = 50, pale = 50, fire = 70) warning_message = "Winter is here. Your armor reacts, becoming stiff and brittle." if("fall") - src.armor = new(red = 40, white = 60, black = 80, pale = 60) + src.armor = new(red = 40, white = 60, black = 80, pale = 60, fire = 70) if(stored_season != current_season) //Our drip is out of season - src.armor = new(red = 40, white = 50, black = 80, pale = 50) + src.armor = new(red = 40, white = 50, black = 80, pale = 50, fire = 70) weakened = TRUE if(current_season == "spring") - src.armor = new(red = 30, white = 50, black = 70, pale = 50) + src.armor = new(red = 30, white = 50, black = 70, pale = 50, fire = 70) warning_message = "The arrival of spring weakens your armor further." if("winter") - src.armor = new(red = 40, white = 60, black = 60, pale = 80) + src.armor = new(red = 40, white = 60, black = 60, pale = 80, fire = 10) if(stored_season != current_season) //Our drip is out of season - src.armor = new(red = 40, white = 50, black = 50, pale = 80) + src.armor = new(red = 40, white = 50, black = 50, pale = 80, fire = 10) weakened = TRUE if(current_season == "summer") - src.armor = new(red = 30, white = 50, black = 50, pale = 70) + src.armor = new(red = 30, white = 50, black = 50, pale = 70, fire = 0) warning_message = "The summer heat is melting your armor." if(current_holder && (weakened == TRUE)) @@ -399,7 +401,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ name = "distortion" desc = "To my eyes, I’m the only one who doesn’t appear distorted. In a world full of distorted people, could the one person who remains unchanged be the \"distorted\" one?" icon_state = "distortion" - armor = list(RED_DAMAGE = 80, WHITE_DAMAGE = 70, BLACK_DAMAGE = 80, PALE_DAMAGE = 50) // 280 + armor = list(RED_DAMAGE = 80, WHITE_DAMAGE = 70, BLACK_DAMAGE = 80, PALE_DAMAGE = 50, FIRE = 70) // 280 attribute_requirements = list( FORTITUDE_ATTRIBUTE = 100, PRUDENCE_ATTRIBUTE = 100, diff --git a/code/modules/clothing/suits/ego_gear/he.dm b/code/modules/clothing/suits/ego_gear/he.dm index 0e74facbe7e4..231a11172172 100644 --- a/code/modules/clothing/suits/ego_gear/he.dm +++ b/code/modules/clothing/suits/ego_gear/he.dm @@ -4,6 +4,8 @@ Think before you code! Any attempt to code risk class armor will result in a 10 day Github ban.*/ +/*Developer's note - All LC13 armor has 50% of its red_damage armor as fire armor by default. */ + /obj/item/clothing/suit/armor/ego_gear/he icon = 'icons/obj/clothing/ego_gear/abnormality/he.dmi' worn_icon = 'icons/mob/clothing/ego_gear/abnormality/he.dmi' @@ -91,7 +93,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ name = "christmas" desc = "When the rusty sleigh bells are ajingle, Christmas begins." icon_state = "christmas" - armor = list(RED_DAMAGE = -10, WHITE_DAMAGE = 40, BLACK_DAMAGE = 20, PALE_DAMAGE = 20) // 70 + armor = list(RED_DAMAGE = -10, WHITE_DAMAGE = 40, BLACK_DAMAGE = 20, PALE_DAMAGE = 20, FIRE = -20) // 70 attribute_requirements = list( FORTITUDE_ATTRIBUTE = 40 ) @@ -139,7 +141,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ name = "frost splinter" desc = "Surprisingly cold to the touch." icon_state = "frost_splinter" - armor = list(RED_DAMAGE = -10, WHITE_DAMAGE = 30, BLACK_DAMAGE = 0, PALE_DAMAGE = 50) + armor = list(RED_DAMAGE = -10, WHITE_DAMAGE = 30, BLACK_DAMAGE = 0, PALE_DAMAGE = 50, FIRE = -20) attribute_requirements = list( PRUDENCE_ATTRIBUTE = 40 ) @@ -302,7 +304,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ desc = "Even still, I witnessed man and sky and earth tear into thousands of pieces." icon_state = "impending_day" flags_inv = NONE - armor = list(RED_DAMAGE = 20, WHITE_DAMAGE = -20, BLACK_DAMAGE = 50, PALE_DAMAGE = 20) // 70 + armor = list(RED_DAMAGE = 20, WHITE_DAMAGE = -20, BLACK_DAMAGE = 50, PALE_DAMAGE = 20, FIRE = 40) // 70 attribute_requirements = list( TEMPERANCE_ATTRIBUTE = 40 ) @@ -405,7 +407,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ name = "lifetime stew" desc = "A soup fit for a king - and all from a few stones. It seemed like magic!" icon_state = "lifestew" - armor = list(RED_DAMAGE = 20, WHITE_DAMAGE = -20, BLACK_DAMAGE = 60, PALE_DAMAGE = -20) // 40 + armor = list(RED_DAMAGE = 20, WHITE_DAMAGE = -20, BLACK_DAMAGE = 60, PALE_DAMAGE = -20, FIRE = 40) // 40 attribute_requirements = list( TEMPERANCE_ATTRIBUTE = 40 ) @@ -468,7 +470,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ name = "ardor blossom star" desc = "A dress with a bright orange jacket. Warm to the touch." icon_state = "ardor_blossom" - armor = list(RED_DAMAGE = 50, WHITE_DAMAGE = 0, BLACK_DAMAGE = 10, PALE_DAMAGE = 10) // 70 + armor = list(RED_DAMAGE = 50, WHITE_DAMAGE = 0, BLACK_DAMAGE = 10, PALE_DAMAGE = 10, FIRE = 40) // 70 attribute_requirements = list( PRUDENCE_ATTRIBUTE = 40 ) diff --git a/code/modules/clothing/suits/ego_gear/non_abnormality/dawn.dm b/code/modules/clothing/suits/ego_gear/non_abnormality/dawn.dm index e1c9a260008e..884ca877b160 100644 --- a/code/modules/clothing/suits/ego_gear/non_abnormality/dawn.dm +++ b/code/modules/clothing/suits/ego_gear/non_abnormality/dawn.dm @@ -2,7 +2,7 @@ name = "dawn office leader jacket" desc = "An armored jacket worn by the leader of dawn office." icon_state = "dawnleader" - armor = list(RED_DAMAGE = 20, WHITE_DAMAGE = 50, BLACK_DAMAGE = 20, PALE_DAMAGE = 20) + armor = list(RED_DAMAGE = 20, WHITE_DAMAGE = 50, BLACK_DAMAGE = 20, PALE_DAMAGE = 20, FIRE = 50) attribute_requirements = list( FORTITUDE_ATTRIBUTE = 80, PRUDENCE_ATTRIBUTE = 80, @@ -14,7 +14,7 @@ name = "dawn office jacket" desc = "An armored jacket worn by dawn office fixers. This one is extremely well worn, and has been tailored many times." icon_state = "dawn" - armor = list(RED_DAMAGE = 10, WHITE_DAMAGE = 40, BLACK_DAMAGE = 10, PALE_DAMAGE = 0) + armor = list(RED_DAMAGE = 10, WHITE_DAMAGE = 40, BLACK_DAMAGE = 10, PALE_DAMAGE = 0, FIRE = 40) attribute_requirements = list( FORTITUDE_ATTRIBUTE = 60, PRUDENCE_ATTRIBUTE = 60, diff --git a/code/modules/clothing/suits/ego_gear/non_abnormality/liu.dm b/code/modules/clothing/suits/ego_gear/non_abnormality/liu.dm index 0dbd41959dc3..421b8af4dd9c 100644 --- a/code/modules/clothing/suits/ego_gear/non_abnormality/liu.dm +++ b/code/modules/clothing/suits/ego_gear/non_abnormality/liu.dm @@ -2,7 +2,7 @@ name = "Liu Association combat suit" desc = "Armor worn by liu association section 1 and section 2." icon_state = "liufire" - armor = list(RED_DAMAGE = 20, WHITE_DAMAGE = 40, BLACK_DAMAGE = 20, PALE_DAMAGE = 0) + armor = list(RED_DAMAGE = 20, WHITE_DAMAGE = 40, BLACK_DAMAGE = 20, PALE_DAMAGE = 0, FIRE = 20) attribute_requirements = list( FORTITUDE_ATTRIBUTE = 60, PRUDENCE_ATTRIBUTE = 60, @@ -19,7 +19,7 @@ name = "Liu Association combat coat" desc = "Armor worn by liu association section 1 veterans." icon_state = "liufire_vet" - armor = list(RED_DAMAGE = 30, WHITE_DAMAGE = 50, BLACK_DAMAGE = 30, PALE_DAMAGE = 20) + armor = list(RED_DAMAGE = 30, WHITE_DAMAGE = 50, BLACK_DAMAGE = 30, PALE_DAMAGE = 20, FIRE = 30) attribute_requirements = list( FORTITUDE_ATTRIBUTE = 60, PRUDENCE_ATTRIBUTE = 80, @@ -47,7 +47,7 @@ name = "Liu Association heavy combat coat" desc = "Armor worn by the director of Liu Association Section 1 director." icon_state = "liufire_director" - armor = list(RED_DAMAGE = 40, WHITE_DAMAGE = 70, BLACK_DAMAGE = 40, PALE_DAMAGE = 20) + armor = list(RED_DAMAGE = 40, WHITE_DAMAGE = 70, BLACK_DAMAGE = 40, PALE_DAMAGE = 20, FIRE = 40) attribute_requirements = list( FORTITUDE_ATTRIBUTE = 60, PRUDENCE_ATTRIBUTE = 100, diff --git a/code/modules/clothing/suits/ego_gear/teth.dm b/code/modules/clothing/suits/ego_gear/teth.dm index b643fdeb469c..eae89be15b2c 100644 --- a/code/modules/clothing/suits/ego_gear/teth.dm +++ b/code/modules/clothing/suits/ego_gear/teth.dm @@ -4,6 +4,8 @@ Think before you code! Any attempt to code risk class armor will result in a 10 day Github ban.*/ +/*Developer's note - All LC13 armor has 50% of its red_damage armor as fire armor by default. */ + /obj/item/clothing/suit/armor/ego_gear/teth icon = 'icons/obj/clothing/ego_gear/abnormality/teth.dmi' worn_icon = 'icons/mob/clothing/ego_gear/abnormality/teth.dmi' @@ -25,7 +27,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ desc = "The archetype was already charred from the moment of extraction. \ Although the exterior is scorched, it has no adverse effects on the E.G.O’s performance." icon_state = "match" - armor = list(RED_DAMAGE = 40, WHITE_DAMAGE = -20, BLACK_DAMAGE = -20, PALE_DAMAGE = 0) // 20 + armor = list(RED_DAMAGE = 40, WHITE_DAMAGE = -20, BLACK_DAMAGE = -20, PALE_DAMAGE = 0, FIRE = 30) // 20 /obj/item/clothing/suit/armor/ego_gear/teth/fragment name = "fragments from somewhere" @@ -206,7 +208,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ name = "capote" desc = "It suffered for such a long time... Unable to do anything about the raging thirst, the flesh endlessly burning and searing." icon_state = "capote" - armor = list(RED_DAMAGE = 40, WHITE_DAMAGE = -30, BLACK_DAMAGE = -10, PALE_DAMAGE = 0) // 0 + armor = list(RED_DAMAGE = 40, WHITE_DAMAGE = -30, BLACK_DAMAGE = -10, PALE_DAMAGE = 0, FIRE = 30) // 0 /obj/item/clothing/suit/armor/ego_gear/teth/fourleaf_clover name = "four-leaf clover" diff --git a/code/modules/clothing/suits/ego_gear/waw.dm b/code/modules/clothing/suits/ego_gear/waw.dm index fccfe70ce785..2e29078fc72f 100644 --- a/code/modules/clothing/suits/ego_gear/waw.dm +++ b/code/modules/clothing/suits/ego_gear/waw.dm @@ -4,6 +4,8 @@ Think before you code! Any attempt to code risk class armor will result in a 10 day Github ban.*/ +/*Developer's note - All LC13 armor has 50% of its red_damage armor as fire armor by default. */ + /obj/item/clothing/suit/armor/ego_gear/waw icon = 'icons/obj/clothing/ego_gear/abnormality/waw.dmi' worn_icon = 'icons/mob/clothing/ego_gear/abnormality/waw.dmi' @@ -257,7 +259,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ desc = "Bright as the abnormality it was extracted from, but somehow does not give off any heat. \ Maybe keep it away from the cold..." icon_state = "featherofhonor" - armor = list(RED_DAMAGE = 50, WHITE_DAMAGE = 50, BLACK_DAMAGE = 30, PALE_DAMAGE = 10) //140 + armor = list(RED_DAMAGE = 50, WHITE_DAMAGE = 50, BLACK_DAMAGE = 30, PALE_DAMAGE = 10, FIRE = 60) //140 attribute_requirements = list( FORTITUDE_ATTRIBUTE = 80, ) @@ -394,7 +396,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ name = "rimeshank" desc = "Well, I can't just shiver in the cold forever, can I?" icon_state = "rimeshank" - armor = list(RED_DAMAGE = 70, WHITE_DAMAGE = 40, BLACK_DAMAGE = 0, PALE_DAMAGE = 30) //140 + armor = list(RED_DAMAGE = 70, WHITE_DAMAGE = 40, BLACK_DAMAGE = 0, PALE_DAMAGE = 30, FIRE = 20) //140 attribute_requirements = list( FORTITUDE_ATTRIBUTE = 80 ) diff --git a/code/modules/clothing/suits/ego_gear/zayin.dm b/code/modules/clothing/suits/ego_gear/zayin.dm index 2848f99476e4..e0578ed87ec0 100644 --- a/code/modules/clothing/suits/ego_gear/zayin.dm +++ b/code/modules/clothing/suits/ego_gear/zayin.dm @@ -4,6 +4,8 @@ Think before you code! Any attempt to code risk class armor will result in a 10 day Github ban.*/ +/*Developer's note - All LC13 armor has 50% of its red_damage armor as fire armor by default. */ + /obj/item/clothing/suit/armor/ego_gear/zayin icon = 'icons/obj/clothing/ego_gear/abnormality/zayin.dmi' worn_icon = 'icons/mob/clothing/ego_gear/abnormality/zayin.dmi' diff --git a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_armor.dm b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_armor.dm index b8ad342504f1..5fd0d84ea06f 100644 --- a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_armor.dm +++ b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_armor.dm @@ -16,7 +16,7 @@ icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_armor.dmi' worn_icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_worn.dmi' flags_inv = NONE - armor = list(RED_DAMAGE = -10, WHITE_DAMAGE = 10, BLACK_DAMAGE = -20, PALE_DAMAGE = 0) // -20 + armor = list(RED_DAMAGE = -10, WHITE_DAMAGE = 10, BLACK_DAMAGE = -20, PALE_DAMAGE = 0, FIRE = 10) // -20 slowdown = -0.1 // He @@ -27,7 +27,7 @@ icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_armor.dmi' worn_icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_worn.dmi' flags_inv = NONE - armor = list(RED_DAMAGE = 50, WHITE_DAMAGE = -30, BLACK_DAMAGE = -10, PALE_DAMAGE = 20) // 70 + armor = list(RED_DAMAGE = 50, WHITE_DAMAGE = -30, BLACK_DAMAGE = -10, PALE_DAMAGE = 20, FIRE = 50) // 70 attribute_requirements = list( FORTITUDE_ATTRIBUTE = 40 ) @@ -82,12 +82,12 @@ // Aleph /obj/item/clothing/suit/armor/ego_gear/aleph/waxen name = "Waxen Pinion" - desc = "However, that alone won’t purge all evil from the world." + desc = "However, that alone won't purge all evil from the world." icon_state = "combust" icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_armor.dmi' worn_icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_worn.dmi' flags_inv = null - armor = list(RED_DAMAGE = 80, WHITE_DAMAGE = 40, BLACK_DAMAGE = 60, PALE_DAMAGE = 60) + armor = list(RED_DAMAGE = 80, WHITE_DAMAGE = 40, BLACK_DAMAGE = 60, PALE_DAMAGE = 60, FIRE = 70) attribute_requirements = list( FORTITUDE_ATTRIBUTE = 100, PRUDENCE_ATTRIBUTE = 80, diff --git a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_weapons.dm b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_weapons.dm index 5d2b489e2e2a..807ca2b382f0 100644 --- a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_weapons.dm +++ b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_weapons.dm @@ -193,7 +193,7 @@ /obj/item/ego_weapon/sunspit name = "sunspit" desc = "Goodness gracious, great mauls of fire!" - special = "Use in hand to prepare a powerful area attack. This attack becomes more powerful when charged." + special = "Use in hand to prepare a powerful area attack. This attack requires charge to use, but deals armor-piercing burn damage." icon_state = "sunspit" icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_weapons.dmi' lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' @@ -248,7 +248,7 @@ if(!can_spin) to_chat(user,span_warning("You attacked too recently.")) return - if(do_after(user, 12, src)) + if(do_after(user, 8, src)) charge_amount -= charge_cost addtimer(CALLBACK(src, PROC_REF(spin_reset)), 12) playsound(src, 'sound/abnormalities/seasons/summer_attack.ogg', 75, FALSE, 4) @@ -288,7 +288,7 @@ playsound(T, 'sound/weapons/fixer/generic/fire3.ogg', 30, TRUE, 3) new /obj/effect/temp_visual/smash_effect(T) new /obj/effect/temp_visual/fire/fast(T) - been_hit = user.HurtInTurf(T, been_hit, aoe_damage, RED_DAMAGE, check_faction = TRUE) + been_hit = user.HurtInTurf(T, been_hit, aoe_damage, BURN, check_faction = TRUE) /obj/item/ego_weapon/sunspit/get_clamped_volume() return 40 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/ardor_blossom_moth.dm b/code/modules/mob/living/simple_animal/abnormality/he/ardor_blossom_moth.dm index 39ea7bfee4dd..10a300f4c065 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/ardor_blossom_moth.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/ardor_blossom_moth.dm @@ -17,7 +17,7 @@ stat_attack = HARD_CRIT melee_damage_lower = 11 melee_damage_upper = 12 - damage_coeff = list(BRUTE = 1, RED_DAMAGE = 0.5, WHITE_DAMAGE = 1, BLACK_DAMAGE = 0.7, PALE_DAMAGE = 2) + damage_coeff = list(BRUTE = 1, RED_DAMAGE = 0.5, WHITE_DAMAGE = 1, BLACK_DAMAGE = 0.7, PALE_DAMAGE = 2, FIRE = 0.2) speak_emote = list("flutters") vision_range = 14 aggro_vision_range = 20 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/basilisoup.dm b/code/modules/mob/living/simple_animal/abnormality/he/basilisoup.dm index ddb350595253..eaff50bf0791 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/basilisoup.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/basilisoup.dm @@ -15,7 +15,7 @@ melee_reach = 2 // Long neck = long range ranged = TRUE threat_level = HE_LEVEL - damage_coeff = list(BRUTE = 1, RED_DAMAGE = 0.8, WHITE_DAMAGE = 1.2, BLACK_DAMAGE = 0.8, PALE_DAMAGE = 1.5) + damage_coeff = list(BRUTE = 1, RED_DAMAGE = 0.8, WHITE_DAMAGE = 1.2, BLACK_DAMAGE = 0.8, PALE_DAMAGE = 1.5, FIRE = 0.6) melee_damage_lower = 22 melee_damage_upper = 30 melee_damage_type = BLACK_DAMAGE diff --git a/code/modules/mob/living/simple_animal/abnormality/he/der_freischutz.dm b/code/modules/mob/living/simple_animal/abnormality/he/der_freischutz.dm index 287708da1645..47e2027fd66e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/der_freischutz.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/der_freischutz.dm @@ -12,7 +12,7 @@ minimum_distance = 10 retreat_distance = 2 move_to_delay = 6 - damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 2, BLACK_DAMAGE = 0.7, PALE_DAMAGE = 0.5) + damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 2, BLACK_DAMAGE = 0.7, PALE_DAMAGE = 0.5, FIRE = 0.5) stat_attack = HARD_CRIT vision_range = 28 // Fit for a marksman. aggro_vision_range = 40 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/pinocchio.dm b/code/modules/mob/living/simple_animal/abnormality/he/pinocchio.dm index 7aa6b4458bb8..9ef68a29999a 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/pinocchio.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/pinocchio.dm @@ -20,7 +20,7 @@ "Lying is Bad!" = 0, ) - damage_coeff = list(RED_DAMAGE = 1.2, WHITE_DAMAGE = 0.5, BLACK_DAMAGE = 0.7, PALE_DAMAGE = 0.9) + damage_coeff = list(RED_DAMAGE = 1.2, WHITE_DAMAGE = 0.5, BLACK_DAMAGE = 0.7, PALE_DAMAGE = 0.9, FIRE = 1.5) work_damage_amount = 8 work_damage_type = WHITE_DAMAGE max_boxes = 16 @@ -334,6 +334,7 @@ BODY_ZONE_CHEST = /obj/item/bodypart/chest/puppet) speedmod = 1.3 changesource_flags = MIRROR_BADMIN | WABBAJACK + burnmod = 2 /datum/species/puppet/check_roundstart_eligible() return FALSE //heck no diff --git a/code/modules/mob/living/simple_animal/abnormality/he/rudolta.dm b/code/modules/mob/living/simple_animal/abnormality/he/rudolta.dm index 773508bbe338..0c47d73c7e0e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/rudolta.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/rudolta.dm @@ -12,7 +12,7 @@ health = 1200 pixel_x = -16 base_pixel_x = -16 - damage_coeff = list(RED_DAMAGE = 1.5, WHITE_DAMAGE = 0.5, BLACK_DAMAGE = 1, PALE_DAMAGE = 2) + damage_coeff = list(RED_DAMAGE = 1.5, WHITE_DAMAGE = 0.5, BLACK_DAMAGE = 1, PALE_DAMAGE = 2, FIRE = 1.5) stat_attack = HARD_CRIT can_breach = TRUE threat_level = HE_LEVEL diff --git a/code/modules/mob/living/simple_animal/abnormality/he/snow_queen.dm b/code/modules/mob/living/simple_animal/abnormality/he/snow_queen.dm index 19367c702801..0411a6e28920 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/snow_queen.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/snow_queen.dm @@ -22,7 +22,7 @@ health = 1500 blood_volume = 0 move_to_delay = 5 - damage_coeff = list(BRUTE = 1, RED_DAMAGE = 1.1, WHITE_DAMAGE = 0.8, BLACK_DAMAGE = 0.8, PALE_DAMAGE = 0.8) //ASK SOMEONE GOOD AT BALANCING ABOUT THIS -IP + damage_coeff = list(BRUTE = 1, RED_DAMAGE = 1.1, WHITE_DAMAGE = 0.8, BLACK_DAMAGE = 0.8, PALE_DAMAGE = 0.8, FIRE = 2) //ASK SOMEONE GOOD AT BALANCING ABOUT THIS -IP base_pixel_x = -16 pixel_x = -16 can_breach = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm b/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm index eab18f94e30b..55f12284e54d 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm @@ -28,7 +28,7 @@ faction = list("hostile", "neutral") can_breach = TRUE start_qliphoth = 3 - damage_coeff = list(RED_DAMAGE = 0.8, WHITE_DAMAGE = 0.4, BLACK_DAMAGE = 1.2, PALE_DAMAGE = 2.0) + damage_coeff = list(RED_DAMAGE = 0.8, WHITE_DAMAGE = 0.4, BLACK_DAMAGE = 1.2, PALE_DAMAGE = 2.0, FIRE = 0) light_color = COLOR_LIGHT_ORANGE light_range = 0 light_power = 0 @@ -56,7 +56,7 @@ var/pulse_cooldown var/pulse_cooldown_time = 1 SECONDS - var/pulse_damage = 10 + var/pulse_damage = 4 var/can_act = TRUE var/dash_cooldown var/dash_cooldown_time = 5 SECONDS @@ -149,6 +149,7 @@ pulse_cooldown = world.time + pulse_cooldown_time for(var/mob/living/carbon/human/L in livinginview(48, src)) L.deal_damage(pulse_damage, RED_DAMAGE) + L.deal_damage(pulse_damage, BURN) /mob/living/simple_animal/hostile/abnormality/fire_bird/proc/retaliatedash() if(dash_cooldown > world.time) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 63adfc821ccb..3ed245ab9231 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -255,6 +255,15 @@ projectile_blockers += new /mob/living/simple_animal/projectile_blocker_dummy(locate(i, j, z), src) RegisterSignal(src, COMSIG_ATOM_DIR_CHANGE, PROC_REF(OnDirChange)) + if(damage_coeff.getCoeff(FIRE) == 1) // LC13 burn armor calculator. Looks at red armor, and ignores up to 50% of armor. deals full damage to mobs weak to red + var/red_mod = damage_coeff.getCoeff(RED_DAMAGE) + switch(red_mod) + if(0) + red_mod = 0 + if(0.001 to 1) + red_mod = (((1 - red_mod) / 2) + red_mod) // 50% armor ignore + ChangeResistances(list(FIRE = red_mod)) + /mob/living/simple_animal/proc/SetOccupiedTiles(down = 0, up = 0, left = 0, right = 0) occupied_tiles_down = down occupied_tiles_up = up