[READY]New Side Antagonist: Space Dragon (#42551)

* Add files via upload

* Rename space_dragon.dm to code/modules/events/space_dragon.dm

* Adds Space Dragon

* Adds Space Dragon Event

* Remove Copied File

* Put antagonist definition in proper location for space dragon

* Update space_dragon.dm

* Removed passive health regen from space dragon

* Updated Weight and Earliness for Space Dragon

* Added Objective to Space Dragon, Updated Starting Blurb

* Cleaned Up the Objective Determiner

* Actually fix the space dragon objectives

* Fix the objective display for the space dragon's target

* Updated Space Dragon Intro Blurb

* Updated Centcom Message When Space Dragon Spawns

* Updated Space Dragon's description with new lore

* Clean Up Space Dragon's OnFire()

* Add Space Dragon Sprites

* Sprite in wrong location

* Properly adds Space Dragon Sprites

* Adds Space Dragon Tiny Sprite to be Carp

* Space Dragon Uses New Sprites, Tiny Form Updated

* Increased Time Til' Dragon Spawn

* Drake's Tail Sweep Now Uses Prebuilt Spell

Thanks to Cobblestone for the head's up on this.
This commit is contained in:
keronshb
2021-05-14 12:27:03 -04:00
parent f62585fd98
commit 2eba3ae383
6 changed files with 154 additions and 0 deletions
@@ -543,3 +543,75 @@ Difficulty: Medium
hit_list += M
M.take_damage(45, BRUTE, "melee", 1)
sleep(1.5)
/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon
name = "space dragon"
maxHealth = 250
health = 250
faction = list("neutral")
desc = "A space carp turned dragon by vile magic. Has the same ferocity of a space carp, but also a much more enabling body."
icon = 'icons/mob/spacedragon.dmi'
icon_state = "spacedragon"
icon_living = "spacedragon"
icon_dead = "spacedragon_dead"
obj_damage = 80
melee_damage_upper = 35
melee_damage_lower = 35
speed = 0
mouse_opacity = MOUSE_OPACITY_ICON
loot = list()
crusher_loot = list()
butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30)
move_force = MOVE_FORCE_NORMAL
move_resist = MOVE_FORCE_NORMAL
pull_force = MOVE_FORCE_NORMAL
deathmessage = "screeches as its wings turn to dust and it collapses on the floor, life estinguished."
var/datum/action/small_sprite/carpsprite = new/datum/action/small_sprite/spacedragon()
/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/grant_achievement(medaltype,scoretype)
return
/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/Initialize()
carpsprite.Grant(src)
mob_spell_list += new /obj/effect/proc_holder/spell/aoe_turf/repulse/spacedragon(src)
. = ..()
smallsprite.Remove(src)
/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/proc/fire_stream(var/atom/at = target)
playsound(get_turf(src),'sound/magic/fireball.ogg', 200, 1)
if(QDELETED(src) || stat == DEAD) // we dead no fire
return
var/range = 20
var/list/turfs = list()
turfs = line_target(0, range, at)
INVOKE_ASYNC(src, .proc/fire_line, turfs)
/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/OpenFire()
if(swooping)
return
ranged_cooldown = world.time + ranged_cooldown_time
fire_stream()
/obj/effect/proc_holder/spell/aoe_turf/repulse/spacedragon
name = "Tail Sweep"
desc = "Throw back attackers with a sweep of your tail."
sound = 'sound/magic/tail_swing.ogg'
charge_max = 150
clothes_req = FALSE
antimagic_allowed = TRUE
range = 1
cooldown_min = 150
invocation_type = "none"
sparkle_path = /obj/effect/temp_visual/dir_setting/tailsweep
action_icon = 'icons/mob/actions/actions_xeno.dmi'
action_icon_state = "tailsweep"
action_background_icon_state = "bg_alien"
anti_magic_check = FALSE
/obj/effect/proc_holder/spell/aoe_turf/repulse/spacedragon/cast(list/targets,mob/user = usr)
if(iscarbon(user))
var/mob/living/carbon/C = user
playsound(C.loc,'sound/effects/hit_punch.ogg', 80, 1, 1)
C.spin(6,1)
..(targets, user, 60)