mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 23:27:34 +01:00
[MIRROR] Space Dragon QOL and Additional Features (#1246)
* Space Dragon QOL and Additional Features * fix. Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com>
This commit is contained in:
co-authored by
IndieanaJones
Gandalf
parent
be2294fd47
commit
896b72018c
@@ -3,8 +3,8 @@
|
||||
typepath = /datum/round_event/ghost_role/space_dragon
|
||||
//max_occurrences = 1 //ORIGINAL
|
||||
max_occurrences = 0 //SKYRAT EDIT CHANGE - EVENTS
|
||||
weight = 5
|
||||
earliest_start = 35 MINUTES
|
||||
weight = 10
|
||||
max_occurrences = 1
|
||||
min_players = 20
|
||||
|
||||
/datum/round_event/ghost_role/space_dragon
|
||||
@@ -16,29 +16,30 @@
|
||||
priority_announce("A large organic energy flux has been recorded near [station_name()], please stand by.", "Lifesign Alert")
|
||||
|
||||
/datum/round_event/ghost_role/space_dragon/spawn_role()
|
||||
var/list/spawn_locs = list()
|
||||
for(var/obj/effect/landmark/carpspawn/carp_spawn in GLOB.landmarks_list)
|
||||
if(!isturf(carp_spawn.loc))
|
||||
stack_trace("Carp spawn found not on a turf: [carp_spawn.type] on [isnull(carp_spawn.loc) ? "null" : carp_spawn.loc.type]")
|
||||
continue
|
||||
spawn_locs += carp_spawn.loc
|
||||
if(!spawn_locs.len)
|
||||
message_admins("No valid spawn locations found, aborting...")
|
||||
return MAP_ERROR
|
||||
|
||||
var/list/candidates = get_candidates(ROLE_SPACE_DRAGON, null, ROLE_SPACE_DRAGON)
|
||||
if(!candidates.len)
|
||||
return NOT_ENOUGH_PLAYERS
|
||||
|
||||
var/mob/dead/selected = pick(candidates)
|
||||
var/key = selected.key
|
||||
|
||||
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/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, TRUE, -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
|
||||
var/mob/living/simple_animal/hostile/space_dragon/dragon = new (pick(spawn_locs))
|
||||
dragon.key = key
|
||||
dragon.mind.assigned_role = "Space Dragon"
|
||||
dragon.mind.special_role = "Space Dragon"
|
||||
dragon.mind.add_antag_datum(/datum/antagonist/space_dragon)
|
||||
playsound(dragon, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1)
|
||||
message_admins("[ADMIN_LOOKUPFLW(dragon)] has been made into a Space Dragon by an event.")
|
||||
log_game("[key_name(dragon)] was spawned as a Space Dragon by an event.")
|
||||
spawned_mobs += dragon
|
||||
return SUCCESSFUL_SPAWN
|
||||
|
||||
Reference in New Issue
Block a user