mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 08:08:49 +01:00
Uranium Golems: Punch to Irradiate, not Exist to Irradiate (#55602)
* Uranium golems no longer irradiate by mere presence. Instead, they irradiate by punching people. Also some statistic changes including durability from brute damage, punch damage, etc. Also uranium golems can wear engineering clothes * Adds radiation emissions from being struck as a uranium golem
This commit is contained in:
@@ -186,6 +186,7 @@
|
||||
equip_delay_other = 40
|
||||
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
|
||||
lace_time = 8 SECONDS
|
||||
species_exception = list(/datum/species/golem/uranium)
|
||||
|
||||
/obj/item/clothing/shoes/workboots/mining
|
||||
name = "mining boots"
|
||||
|
||||
@@ -634,6 +634,7 @@
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 20, FIRE = 30, ACID = 45)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering
|
||||
species_exception = list(/datum/species/golem/uranium)
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/engineering
|
||||
icon_state = "winterhood_engineer"
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
inhand_icon_state = "engi_suit"
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 60, ACID = 20)
|
||||
resistance_flags = NONE
|
||||
species_exception = list(/datum/species/golem/uranium)
|
||||
|
||||
/obj/item/clothing/under/rank/engineering/engineer/hazard
|
||||
name = "engineer's hazard jumpsuit"
|
||||
|
||||
@@ -312,27 +312,56 @@
|
||||
H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
|
||||
return 1
|
||||
|
||||
//Radioactive
|
||||
//Radioactive puncher, hits for burn but only as hard as human, slightly more durable against brute but less against everything else
|
||||
/datum/species/golem/uranium
|
||||
name = "Uranium Golem"
|
||||
id = "uranium golem"
|
||||
fixed_mut_color = "7f0"
|
||||
meat = /obj/item/stack/ore/uranium
|
||||
info_text = "As an <span class='danger'>Uranium Golem</span>, you emit radiation pulses every once in a while. It won't harm fellow golems, but organic lifeforms will be affected."
|
||||
|
||||
info_text = "As an <span class='danger'>Uranium Golem</span>, your very touch burns and irradiates organic lifeforms. You don't hit as hard as most golems, but you are far more durable against blunt force trauma."
|
||||
attack_verb = "burn"
|
||||
attack_sound = 'sound/weapons/sear.ogg'
|
||||
attack_type = BURN
|
||||
var/last_event = 0
|
||||
var/active = null
|
||||
armor = 40
|
||||
brutemod = 0.5
|
||||
punchdamagelow = 1
|
||||
punchdamagehigh = 10
|
||||
punchstunthreshold = 9
|
||||
prefix = "Uranium"
|
||||
special_names = list("Oxide", "Rod", "Meltdown", "235")
|
||||
COOLDOWN_DECLARE(radiation_emission_cooldown)
|
||||
|
||||
/datum/species/golem/uranium/spec_life(mob/living/carbon/human/H)
|
||||
if(!active)
|
||||
if(world.time > last_event+30)
|
||||
active = 1
|
||||
radiation_pulse(H, 50)
|
||||
last_event = world.time
|
||||
active = null
|
||||
/datum/species/golem/uranium/proc/radiation_emission(mob/living/carbon/human/H)
|
||||
if(!COOLDOWN_FINISHED(src, radiation_emission_cooldown))
|
||||
return
|
||||
else
|
||||
radiation_pulse(H, 50)
|
||||
COOLDOWN_START(src, radiation_emission_cooldown, 2 SECONDS)
|
||||
|
||||
/datum/species/golem/uranium/spec_unarmedattacked(mob/living/carbon/human/user, mob/living/carbon/human/target)
|
||||
. = ..()
|
||||
var/obj/item/bodypart/affecting = target.get_bodypart(ran_zone(user.zone_selected))
|
||||
var/radiation_block = target.run_armor_check(affecting, RAD)
|
||||
///standard damage roll for use in determining how much you irradiate per punch
|
||||
var/attacker_irradiate_value = rand(user.dna.species.punchdamagelow, user.dna.species.punchdamagehigh)
|
||||
target.apply_effect(attacker_irradiate_value*5, EFFECT_IRRADIATE, radiation_block)
|
||||
|
||||
/datum/species/golem/uranium/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style)
|
||||
..()
|
||||
if(COOLDOWN_FINISHED(src, radiation_emission_cooldown) && M != H && M.a_intent != INTENT_HELP)
|
||||
radiation_emission(H)
|
||||
|
||||
/datum/species/golem/uranium/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H)
|
||||
..()
|
||||
if(COOLDOWN_FINISHED(src, radiation_emission_cooldown) && user != H)
|
||||
radiation_emission(H)
|
||||
|
||||
/datum/species/golem/uranium/on_hit(obj/projectile/P, mob/living/carbon/human/H)
|
||||
..()
|
||||
if(COOLDOWN_FINISHED(src, radiation_emission_cooldown))
|
||||
radiation_emission(H)
|
||||
|
||||
//Immune to physical bullets and resistant to brute, but very vulnerable to burn damage. Dusts on death.
|
||||
/datum/species/golem/sand
|
||||
|
||||
Reference in New Issue
Block a user