Files
Bubberstation/code/modules/events/space_ninja.dm
nevimer 0a4d223870 Preference Based Ninjas + Fixes Ninja Jumpsuit (needs digi version still) (#14319)
* fix ninja jumpsuit + allow ninja to be prefs based

* no switch

* modular overrides file

* lets fix closing behavior

* updates clothing dmi files and removes the overrides
2022-06-20 02:53:22 +01:00

69 lines
2.7 KiB
Plaintext

/datum/round_event_control/space_ninja
name = "Spawn Space Ninja"
typepath = /datum/round_event/ghost_role/space_ninja
max_occurrences = 1
weight = 10
earliest_start = 20 MINUTES
min_players = 20
dynamic_should_hijack = TRUE
/datum/round_event/ghost_role/space_ninja
minimum_required = 1
role_name = "Space Ninja"
/datum/round_event/ghost_role/space_ninja/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
//selecting a candidate player
var/list/candidates = get_candidates(ROLE_NINJA, ROLE_NINJA)
if(!candidates.len)
return NOT_ENOUGH_PLAYERS
var/mob/dead/selected_candidate = pick(candidates)
var/key = selected_candidate.key
//spawn the ninja and assign the candidate
var/mob/living/carbon/human/ninja = create_space_ninja(pick(spawn_locs))
ninja.key = key
ninja.mind.add_antag_datum(/datum/antagonist/ninja)
spawned_mobs += ninja
// SKYRAT EDIT ADDITION BEGIN: Preference Ninjas
var/loadme = tgui_input_list(ninja, "Do you wish to load your character slot?", "Load Character?", list("Yes!", "No, I want to be random!"), default = "No, I want to be random!", timeout = 60 SECONDS)
var/codename
if(loadme == "Yes!")
ninja.client?.prefs?.safe_transfer_prefs_to(ninja)
codename = tgui_input_text(ninja.client, "What should your codename be?", "Agent Name", "[pick("Master", "Legendary", "Agent", "Shinobi", "Ninja")] [ninja.dna.species.name]", 42, FALSE, TRUE, 300 SECONDS)
codename ? codename : (codename = "[pick("Master", "Legendary", "Agent", "Shinobi", "Ninja")] [ninja.dna.species.name]")
ninja.name = codename
ninja.real_name = codename
ninja.dna.update_dna_identity()
else
ninja.randomize_human_appearance(~(RANDOMIZE_NAME|RANDOMIZE_SPECIES))
ninja.dna.update_dna_identity()
// SKYRAT EDIT ADDITION END: Preference Ninjas
message_admins("[ADMIN_LOOKUPFLW(ninja)] has been made into a space ninja by an event.")
log_game("[key_name(ninja)] was spawned as a ninja by an event.")
return SUCCESSFUL_SPAWN
//=======//NINJA CREATION PROCS//=======//
/proc/create_space_ninja(spawn_loc)
var/mob/living/carbon/human/new_ninja = new(spawn_loc)
// new_ninja.randomize_human_appearance(~(RANDOMIZE_NAME|RANDOMIZE_SPECIES)) //SKYRAT EDIT: Player Prefs Ninjas
var/new_name = "[pick(GLOB.ninja_titles)] [pick(GLOB.ninja_names)]"
new_ninja.name = new_name
new_ninja.real_name = new_name
// new_ninja.dna.update_dna_identity() //SKYRAT EDIT: Player Prefs Ninjas
return new_ninja