mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 21:18:37 +01:00
Desouls Hivelord (#78213)
## About The Pull Request  Replaces the sprite of the hivelord with a new one, in my continuing quest to annihilate the old asteroid mob sprites. A (never completed) asteroid mob resprite was actually my first PR, this one is my 200th. I am also planning on fucking with basic mob versions of these mobs some time but the sprites can be atomised out. In addition to replacing the old-ass MSPaint sprites, this PR also adds a short death animation effect to the hivelord brood (from hivelords or legions) which looks nicer than them just vanishing instantly upon death. Look at this video for an example of the animation: https://www.youtube.com/watch?v=cKaskN5-y2A ## Why It's Good For The Game Looks nicer. ## Changelog 🆑 image: Hivelords have a new sprite. image: Hivelord and Legion brood have a death animation. /🆑
This commit is contained in:
@@ -652,3 +652,31 @@
|
||||
/obj/effect/temp_visual/crit/Initialize(mapload)
|
||||
. = ..()
|
||||
animate(src, pixel_y = pixel_y + 16, alpha = 0, time = duration)
|
||||
|
||||
/// Plays a dispersing animation on hivelord and legion minions so they don't just vanish
|
||||
/obj/effect/temp_visual/hive_spawn_wither
|
||||
name = "withering spawn"
|
||||
duration = 1 SECONDS
|
||||
|
||||
/obj/effect/temp_visual/hive_spawn_wither/Initialize(mapload, atom/copy_from)
|
||||
if (isnull(copy_from))
|
||||
. = ..()
|
||||
return INITIALIZE_HINT_QDEL
|
||||
icon = copy_from.icon
|
||||
icon_state = copy_from.icon_state
|
||||
pixel_x = copy_from.pixel_x
|
||||
pixel_y = copy_from.pixel_y
|
||||
duration = rand(0.5 SECONDS, 1 SECONDS)
|
||||
var/matrix/transformation = matrix(transform)
|
||||
transformation.Turn(rand(-70, 70))
|
||||
transformation.Scale(0.7, 0.7)
|
||||
animate(
|
||||
src,
|
||||
pixel_x = rand(-5, 5),
|
||||
pixel_y = -5,
|
||||
transform = transformation,
|
||||
color = "#44444400",
|
||||
time = duration,
|
||||
flags = ANIMATION_RELATIVE,
|
||||
)
|
||||
return ..()
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelord
|
||||
name = "hivelord"
|
||||
desc = "A truly alien creature, it is a mass of unknown organic material, constantly fluctuating. When attacking, pieces of it split off and attack in tandem with the original."
|
||||
desc = "A levitating swarm of tiny creatures which act as a single individual. When threatened or hunting they rapidly replicate additional short-lived bodies."
|
||||
icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi'
|
||||
icon_state = "Hivelord"
|
||||
icon_living = "Hivelord"
|
||||
icon_aggro = "Hivelord_alert"
|
||||
icon_dead = "Hivelord_dead"
|
||||
icon_state = "hivelord"
|
||||
icon_living = "hivelord"
|
||||
icon_aggro = "hivelord_alert"
|
||||
icon_dead = "hivelord_dead"
|
||||
icon_gib = "syndicate_gib"
|
||||
mob_biotypes = MOB_ORGANIC
|
||||
move_to_delay = 14
|
||||
@@ -18,11 +18,11 @@
|
||||
harm_intent_damage = 5
|
||||
melee_damage_lower = 0
|
||||
melee_damage_upper = 0
|
||||
attack_verb_continuous = "lashes out at"
|
||||
attack_verb_simple = "lash out at"
|
||||
attack_verb_continuous = "weakly tackles"
|
||||
attack_verb_simple = "weakly tackles"
|
||||
speak_emote = list("telepathically cries")
|
||||
attack_sound = 'sound/weapons/pierce.ogg'
|
||||
throw_message = "falls right through the strange body of the"
|
||||
throw_message = "passes between the bodies of the"
|
||||
ranged_cooldown = 0
|
||||
ranged_cooldown_time = 20
|
||||
obj_damage = 0
|
||||
@@ -40,14 +40,14 @@
|
||||
AddComponent(/datum/component/clickbox, icon_state = "hivelord", max_scale = INFINITY, dead_state = "hivelord_dead") //they writhe so much.
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelord/OpenFire(the_target)
|
||||
if(world.time >= ranged_cooldown)
|
||||
var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/A = new brood_type(src.loc)
|
||||
|
||||
A.flags_1 |= (flags_1 & ADMIN_SPAWNED_1)
|
||||
A.GiveTarget(target)
|
||||
A.friends = friends
|
||||
A.faction = faction.Copy()
|
||||
ranged_cooldown = world.time + ranged_cooldown_time
|
||||
if(world.time < ranged_cooldown)
|
||||
return
|
||||
var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/brood = new brood_type(src.loc)
|
||||
brood.flags_1 |= (flags_1 & ADMIN_SPAWNED_1)
|
||||
brood.GiveTarget(target)
|
||||
brood.friends = friends
|
||||
brood.faction = faction.Copy()
|
||||
ranged_cooldown = world.time + ranged_cooldown_time
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelord/AttackingTarget()
|
||||
OpenFire()
|
||||
@@ -55,17 +55,17 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelord/death(gibbed)
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
..(gibbed)
|
||||
return ..()
|
||||
|
||||
//A fragile but rapidly produced creature
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelordbrood
|
||||
name = "hivelord brood"
|
||||
desc = "A fragment of the original Hivelord, rallying behind its original. One isn't much of a threat, but..."
|
||||
desc = "Short-lived attack form of the hivelord. One isn't much of a threat, but..."
|
||||
icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi'
|
||||
icon_state = "Hivelordbrood"
|
||||
icon_living = "Hivelordbrood"
|
||||
icon_aggro = "Hivelordbrood"
|
||||
icon_dead = "Hivelordbrood"
|
||||
icon_state = "hivelord_brood"
|
||||
icon_living = "hivelord_brood"
|
||||
icon_aggro = "hivelord_brood"
|
||||
icon_dead = "hivelord_brood"
|
||||
icon_gib = "syndicate_gib"
|
||||
move_to_delay = 1
|
||||
friendly_verb_continuous = "buzzes near"
|
||||
@@ -93,11 +93,16 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/Initialize(mapload)
|
||||
. = ..()
|
||||
addtimer(CALLBACK(src, PROC_REF(death)), 100)
|
||||
addtimer(CALLBACK(src, PROC_REF(death)), 10 SECONDS)
|
||||
AddElement(/datum/element/simple_flying)
|
||||
AddComponent(/datum/component/swarming)
|
||||
AddComponent(/datum/component/clickbox, icon_state = clickbox_state, max_scale = clickbox_max_scale)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/death(gibbed)
|
||||
if (!gibbed)
|
||||
new /obj/effect/temp_visual/hive_spawn_wither(get_turf(src), /* copy_from = */ src)
|
||||
return ..()
|
||||
|
||||
//Legion
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelord/legion
|
||||
name = "legion"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 132 KiB |
Reference in New Issue
Block a user