mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-07-14 09:12:32 +01:00
Crystal Enemies
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
#define REGENERATION_DELAY 60 // After taking damage, how long it takes for automatic regeneration to begin for megacarps (ty robustin!)
|
||||
|
||||
/mob/living/simple_animal/hostile/crystal
|
||||
name = "Pellucyte"
|
||||
desc = "A floating crystal with orbiting smaller crystals."
|
||||
icon = 'hyperstation/icons/mob/crystal.dmi'
|
||||
icon_state = "crystal"
|
||||
icon_living = "crystal"
|
||||
icon_dead = "crystal"
|
||||
mob_biotypes = MOB_BEAST
|
||||
speak_chance = 0
|
||||
turns_per_move = 10
|
||||
response_help = "touches"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "hits"
|
||||
emote_taunt = list("sings")
|
||||
taunt_chance = 20
|
||||
speed = 0
|
||||
maxHealth = 50
|
||||
health = 50
|
||||
spacewalk = TRUE
|
||||
harm_intent_damage = 8
|
||||
obj_damage = 50
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 15
|
||||
attacktext = "slams"
|
||||
attack_sound = 'sound/creatures/crystal_hit.ogg'
|
||||
speak_emote = list("sings")
|
||||
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
|
||||
minbodytemp = 0
|
||||
maxbodytemp = 3500
|
||||
faction = list("carp")
|
||||
movement_type = FLYING
|
||||
pressure_resistance = 500
|
||||
gold_core_spawnable = HOSTILE_SPAWN
|
||||
var/regen_cooldown = 0 //Used for how long it takes before a healing will take place default in 60 seconds
|
||||
var/regen_amount = 1 //How much is healed pre regen cooldown
|
||||
del_on_death = TRUE
|
||||
pixel_x = -8
|
||||
|
||||
/mob/living/simple_animal/hostile/crystal/Life()
|
||||
. = ..()
|
||||
if(regen_amount && regen_cooldown < world.time)
|
||||
heal_overall_damage(regen_amount)
|
||||
if(stat)
|
||||
return
|
||||
if(prob(15))
|
||||
playsound(src, 'sound/creatures/crystal_idle.ogg', 100)
|
||||
|
||||
/mob/living/simple_animal/hostile/crystal/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
|
||||
. = ..()
|
||||
if(regen_amount)
|
||||
regen_cooldown = world.time + REGENERATION_DELAY
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/crystal/AttackingTarget()
|
||||
. = ..()
|
||||
if(. && ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
H.adjustStaminaLoss(8)
|
||||
@@ -0,0 +1,34 @@
|
||||
/datum/round_event_control/crystalloid_entities
|
||||
name = "Crystal Invasion"
|
||||
typepath = /datum/round_event/crystalloid_entities
|
||||
weight = 10 //decreased weight from 15 to 10
|
||||
min_players = 2 //increased min players from 2 to 5 to reduce chances of half the crew dying in a carp breach
|
||||
earliest_start = 10 MINUTES
|
||||
max_occurrences = 2
|
||||
|
||||
|
||||
/datum/round_event/crystalloid_entities
|
||||
announceWhen = 3
|
||||
startWhen = 50
|
||||
|
||||
/datum/round_event/crystalloid_entities/setup()
|
||||
startWhen = rand(40, 60)
|
||||
|
||||
/datum/round_event/crystalloid_entities/announce(fake)
|
||||
if(prob(70))
|
||||
priority_announce("Unknown inorganic entities have been detected near [station_name()], please stand-by.", "Lifesign Alert", 'sound/ai/crystal.ogg')
|
||||
else
|
||||
priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak
|
||||
for(var/obj/machinery/computer/communications/C in GLOB.machines)
|
||||
if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z))
|
||||
var/obj/item/paper/P = new(C.loc)
|
||||
P.name = "Crystalloid entities"
|
||||
P.info = "Unknown inorganic entities have been detected near [station_name()], you may wish to break out arms."
|
||||
P.update_icon()
|
||||
|
||||
|
||||
/datum/round_event/crystalloid_entities/start()
|
||||
for(var/obj/effect/landmark/carpspawn/C in GLOB.landmarks_list)
|
||||
if(prob(70)) //dont spawn them EVERYWHERE, they are tougher than carps.
|
||||
new /mob/living/simple_animal/hostile/crystal(C.loc)
|
||||
|
||||
Reference in New Issue
Block a user