Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4,246 changes: 4,246 additions & 0 deletions _maps/RandomRuins/SpaceRuins/BlueMoon/ninja_zen.dmm

Large diffs are not rendered by default.

41 changes: 41 additions & 0 deletions _maps/RandomRuins/SpaceRuins/ninja_zen.dmm
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
// Minimal Ninja Dojo - only types that exist in BlueMoon. Like Wizard's Den (space ruin, always placed).

"a" = (
/turf/open/space,
/area/space)

"b" = (
/turf/closed/indestructible/rock,
/area/ruin/space/ninja_zen)

"c" = (
/turf/open/floor/plasteel,
/area/ruin/space/ninja_zen)

"d" = (
/obj/effect/landmark/ninja_spawn,
/turf/open/floor/plasteel,
/area/ruin/space/ninja_zen)

"e" = (
/obj/effect/landmark/ninja_spawn,
/turf/open/floor/plasteel,
/area/ruin/space/ninja_zen)

"f" = (
/obj/machinery/cryopod/ninja,
/turf/open/floor/plasteel,
/area/ruin/space/ninja_zen)

(1,1,1) = {"aaaaaaaaaaa",
"abbbbbbbbba",
"abcccccccba",
"abcccccccba",
"abcdcecccba",
"abcccccccba",
"abcccccccba",
"abccccfccba",
"abcccccccba",
"abbbbbbbbba",
"aaaaaaaaaaa"}
168 changes: 168 additions & 0 deletions _maps/map_files/generic/CentCom.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,31 @@
"aad" = (
/turf/open/space,
/area/space)
"nJA" = (
/turf/open/space,
/area/space)
"nJB" = (
/turf/closed/indestructible/rock,
/area/ninja/outpost)
"nJC" = (
/turf/open/floor/plasteel,
/area/ninja/outpost)
"nJD" = (
/obj/effect/landmark/ninja_spawn,
/turf/open/floor/plasteel,
/area/ninja/outpost)
"nJE" = (
/obj/effect/landmark/ninja_spawn,
/turf/open/floor/plasteel,
/area/ninja/outpost)
"nJF" = (
/obj/machinery/cryopod/ninja,
/turf/open/floor/plasteel,
/area/ninja/outpost)
"nJG" = (
/obj/structure/ninjatele,
/turf/open/floor/plasteel,
/area/ninja/outpost)
"aae" = (
/obj/structure/window/reinforced{
dir = 4
Expand Down Expand Up @@ -41072,6 +41097,149 @@ aaa
aaa
aaa
"}
(45,195,1) = {"
nJB
nJB
nJB
nJB
nJB
nJB
nJB
nJB
nJB
nJB
nJB
"}
(46,195,1) = {"
nJB
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJB
"}
(47,195,1) = {"
nJB
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJB
"}
(48,195,1) = {"
nJB
nJC
nJD
nJG
nJC
nJC
nJC
nJE
nJC
nJC
nJB
"}
(49,195,1) = {"
nJB
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJB
"}
(50,195,1) = {"
nJB
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJB
"}
(51,195,1) = {"
nJB
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJB
"}
(52,195,1) = {"
nJB
nJC
nJC
nJC
nJC
nJC
nJC
nJF
nJC
nJC
nJB
"}
(53,195,1) = {"
nJB
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJB
"}
(54,195,1) = {"
nJB
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJC
nJB
"}
(55,195,1) = {"
nJB
nJB
nJB
nJB
nJB
nJB
nJB
nJB
nJB
nJB
nJB
"}
(36,1,1) = {"
aaa
aaa
Expand Down
3 changes: 3 additions & 0 deletions code/__BLUEMOONCODE/_DEFINES/gamemode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@
#define ROUNDTYPE_EXTENDED "Extended"

#define ROUNDTYPE_MAX_COMBO 2

// Space Ninja (SS220 port)
#define SPECIAL_ROLE_SPACE_NINJA "Space Ninja"
31 changes: 31 additions & 0 deletions code/__DEFINES/ninja_ss220.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
//ninjacost() extraCheckFlag defines
#define N_STEALTH_CANCEL 1
#define N_ADRENALINE 2
#define N_HEAL 3

#define NINJA_INIT_LOCK_PHASE 6
#define NINJA_INIT_ICON_GENERATE_PHASE 8
#define NINJA_INIT_MODULES_PHASE 9
#define NINJA_INIT_COMPLETE_PHASE 14

#define NINJA_DEINIT_LOGOFF_PHASE 1
#define NINJA_DEINIT_MODULES_PHASE 4
#define NINJA_DEINIT_ICON_REGENERATE_PHASE 7
#define NINJA_DEINIT_UNLOCK_PHASE 9
#define NINJA_DEINIT_COMPLETE_PHASE 13

//ninja alpha defines
#define NINJA_ALPHA_NORMAL 255
#define NINJA_ALPHA_SPIRIT_FORM 64
// not actually invisible anymore
#define NINJA_ALPHA_INVISIBILITY 20

//ninja suit tgui related flags
#define NINJA_TGUI_MAIN_SCREEN_STATE 0
#define NINJA_TGUI_LOADING_STATE 1

//ninjaDrainAct() defines for non numerical returns
#define INVALID_DRAIN "INVALID" //This one is if the drain proc needs to cancel, eg missing variables, etc, it's important.
#define DRAIN_RD_HACK_FAILED "RDHACKFAIL"
#define DRAIN_MOB_SHOCK "MOBSHOCK"
#define DRAIN_MOB_SHOCK_FAILED "MOBSHOCKFAIL"
6 changes: 6 additions & 0 deletions code/__DEFINES/space_ninja_ss220.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// Used to determine objectives preset for the ninja
#define NINJA_TYPE_GENERIC "generic"
#define NINJA_TYPE_PROTECTOR "protector"
#define NINJA_TYPE_HACKER "hacker"
#define NINJA_TYPE_KILLER "killer"

1 change: 1 addition & 0 deletions code/_globalvars/lists/mapping.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ GLOBAL_LIST_EMPTY(generic_event_spawns) //list of all spawns for events
GLOBAL_LIST_EMPTY(jobspawn_overrides) //These will take precedence over normal spawnpoints if created.

GLOBAL_LIST_EMPTY(wizardstart)
GLOBAL_LIST_EMPTY(ninjastart)
GLOBAL_LIST_EMPTY(nukeop_start)
GLOBAL_LIST_EMPTY(nukeop_leader_start)
GLOBAL_LIST_EMPTY(syndiop_start)
Expand Down
25 changes: 12 additions & 13 deletions code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1014,24 +1014,23 @@
cost = 10
requirements = list(101,101,101,101,60,50,30,20,10,10) //BLUEMOON CHANGES
repeatable = TRUE
var/list/spawn_locs = list()

/datum/dynamic_ruleset/midround/from_ghosts/space_ninja/execute()
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
/datum/dynamic_ruleset/midround/from_ghosts/space_ninja/ready(forced = FALSE)
if(required_candidates > (dead_players.len + list_observers.len))
return FALSE
if(!length(GLOB.ninjastart))
log_admin("Cannot accept Space Ninja ruleset. No ninja spawn points (Ninja Dojo on CentCom may not have loaded).")
message_admins("Cannot accept Space Ninja ruleset. No ninja spawn points.")
return FALSE
return ..()

/datum/dynamic_ruleset/midround/from_ghosts/space_ninja/finish_setup(mob/new_character, index)
..()
new_character.forceMove(pick(GLOB.ninjastart))

/datum/dynamic_ruleset/midround/from_ghosts/space_ninja/generate_ruleset_body(mob/applicant)
var/mob/living/carbon/human/ninja = create_space_ninja(pick(spawn_locs))
var/mob/living/carbon/human/ninja = create_space_ninja(pick(GLOB.ninjastart))
ninja.key = applicant.key
ninja.mind.add_antag_datum(/datum/antagonist/ninja)

message_admins("[ADMIN_LOOKUPFLW(ninja)] has been made into a Space Ninja by the midround ruleset.")
log_game("DYNAMIC: [key_name(ninja)] was spawned as a Space Ninja by the midround ruleset.")
return ninja
Expand Down
3 changes: 3 additions & 0 deletions code/game/gamemodes/game_mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,9 @@
/// Associative list of current players, in order: living players, living antagonists, dead players and observers.
var/list/list/current_players = list(CURRENT_LIVING_PLAYERS = list(), CURRENT_LIVING_ANTAGS = list(), CURRENT_DEAD_PLAYERS = list(), CURRENT_OBSERVERS = list())

/// Space ninja gamemode: list of ninja minds (SS220 port).
var/list/datum/mind/space_ninjas = list()

/datum/game_mode/proc/announce() //Shows the gamemode's name and a fast description.
to_chat(world, "<b>The gamemode is: <span class='[announce_span]'>[name]</span>!</b>")
to_chat(world, "<b>[announce_text]</b>")
Expand Down
Loading
Loading