From 2eba3ae383a29eff4f599ef2d227f9c478eee576 Mon Sep 17 00:00:00 2001 From: keronshb Date: Fri, 14 May 2021 12:27:03 -0400 Subject: [PATCH] [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. --- code/datums/action.dm | 4 + .../antagonists/space_dragon/space_dragon.dm | 31 ++++++++ code/modules/events/space_dragon.dm | 45 +++++++++++ .../simple_animal/hostile/megafauna/drake.dm | 72 ++++++++++++++++++ icons/mob/spacedragon.dmi | Bin 0 -> 8111 bytes tgstation.dme | 2 + 6 files changed, 154 insertions(+) create mode 100644 code/modules/antagonists/space_dragon/space_dragon.dm create mode 100644 code/modules/events/space_dragon.dm create mode 100644 icons/mob/spacedragon.dmi diff --git a/code/datums/action.dm b/code/datums/action.dm index 9e25d0e3f3..369bad00b2 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -793,6 +793,10 @@ small_icon = 'icons/mob/lavaland/lavaland_monsters.dmi' small_icon_state = "ash_whelp" +/datum/action/small_sprite/spacedragon + small_icon = 'icons/mob/animal.dmi' + small_icon_state = "carp" + /datum/action/small_sprite/Trigger() ..() if(!small) diff --git a/code/modules/antagonists/space_dragon/space_dragon.dm b/code/modules/antagonists/space_dragon/space_dragon.dm new file mode 100644 index 0000000000..97f45bba53 --- /dev/null +++ b/code/modules/antagonists/space_dragon/space_dragon.dm @@ -0,0 +1,31 @@ +/datum/antagonist/space_dragon + name = "Space Dragon" + show_in_antagpanel = FALSE + show_name_in_check_antagonists = TRUE + +/datum/antagonist/space_dragon/greet() + to_chat(owner, "I am Space Dragon, ex-space carp, and defender of the secrets of constellation, Draco.") + to_chat(owner, "Fabulous secret powers were revealed to me the day I held aloft a wizard's staff of change and said 'By the power of Draco, I have the power!'") + to_chat(owner, "The wizard was turned into the short-lived Pastry Cat while I became Space Dragon, the most powerful beast in the universe.") + to_chat(owner, "Clicking a tile will shoot fire onto that tile.") + to_chat(owner, "Alt-clicking will let me do a tail swipe, knocking down entities in a tile radius around me.") + to_chat(owner, "Attacking dead bodies will allow me to gib them to restore health.") + to_chat(owner, "From the wizard's writings, he had been studying this station and its hierarchy. From this, I know who leads the station, and will kill them so the station underlings see me as their new leader.") + owner.announce_objectives() + SEND_SOUND(owner.current, sound('sound/magic/demon_attack1.ogg')) + +/datum/antagonist/space_dragon/proc/forge_objectives() + var/current_heads = SSjob.get_all_heads() + var/datum/objective/assassinate/killchosen = new + killchosen.owner = owner + var/datum/mind/selected = pick(current_heads) + killchosen.target = selected + killchosen.update_explanation_text() + objectives += killchosen + var/datum/objective/survive/survival = new + survival.owner = owner + objectives += survival + +/datum/antagonist/space_dragon/on_gain() + forge_objectives() + . = ..() diff --git a/code/modules/events/space_dragon.dm b/code/modules/events/space_dragon.dm new file mode 100644 index 0000000000..e6e197f5aa --- /dev/null +++ b/code/modules/events/space_dragon.dm @@ -0,0 +1,45 @@ +/datum/round_event_control/space_dragon + name = "Spawn Space Dragon" + typepath = /datum/round_event/ghost_role/space_dragon + max_occurrences = 1 + weight = 8 + earliest_start = 70 MINUTES + min_players = 20 + +/datum/round_event/ghost_role/space_dragon + minimum_required = 1 + role_name = "Space Dragon" + fakeable = FALSE + +/datum/round_event/ghost_role/space_dragon/announce(fake) + priority_announce("It appears a lifeform with magical traces is approaching [station_name()], please stand-by.", "Lifesign Alert") + + +/datum/round_event/ghost_role/space_dragon/spawn_role() + var/list/candidates = get_candidates(ROLE_ALIEN, null, ROLE_ALIEN) + if(!candidates.len) + return NOT_ENOUGH_PLAYERS + + var/mob/dead/selected = pick(candidates) + + var/datum/mind/player_mind = new /datum/mind(selected.key) + player_mind.active = TRUE + + var/list/spawn_locs = list() + for(var/obj/effect/landmark/carpspawn/C in GLOB.landmarks_list) + spawn_locs += (C.loc) + if(!spawn_locs.len) + message_admins("No valid spawn locations found, aborting...") + return MAP_ERROR + + var/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/S = new ((pick(spawn_locs))) + player_mind.transfer_to(S) + player_mind.assigned_role = "Space Dragon" + player_mind.special_role = "Space Dragon" + player_mind.add_antag_datum(/datum/antagonist/space_dragon) + playsound(S, 'sound/magic/ethereal_exit.ogg', 50, 1, -1) + message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Space Dragon by an event.") + log_game("[key_name(S)] was spawned as a Space Dragon by an event.") + spawned_mobs += S + return SUCCESSFUL_SPAWN + diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 6c1e9eef6e..fb1b5d2ef1 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -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) diff --git a/icons/mob/spacedragon.dmi b/icons/mob/spacedragon.dmi new file mode 100644 index 0000000000000000000000000000000000000000..98f20ea8851d5c7c1cf3c03cb93aa7ec1d294074 GIT binary patch literal 8111 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 2e5bd87e51..9c09703fe8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1733,6 +1733,7 @@ #include "code\modules\antagonists\slaughter\slaughter.dm" #include "code\modules\antagonists\slaughter\slaughter_antag.dm" #include "code\modules\antagonists\slaughter\slaughterevent.dm" +#include "code\modules\antagonists\space_dragon\space_dragon.dm" #include "code\modules\antagonists\survivalist\survivalist.dm" #include "code\modules\antagonists\swarmer\swarmer.dm" #include "code\modules\antagonists\swarmer\swarmer_event.dm" @@ -2097,6 +2098,7 @@ #include "code\modules\events\radiation_storm.dm" #include "code\modules\events\sentience.dm" #include "code\modules\events\shuttle_loan.dm" +#include "code\modules\events\space_dragon.dm" #include "code\modules\events\spacevine.dm" #include "code\modules\events\spider_infestation.dm" #include "code\modules\events\spontaneous_appendicitis.dm"