WIP: Implementing space ninja gamemode

This commit is contained in:
Whitellama
2013-06-15 16:09:23 -07:00
parent 8692d7f697
commit d23b758006
8 changed files with 54 additions and 7 deletions
+1
View File
@@ -252,6 +252,7 @@
#include "code\game\gamemodes\malfunction\malfunction.dm"
#include "code\game\gamemodes\meteor\meteor.dm"
#include "code\game\gamemodes\meteor\meteors.dm"
#include "code\game\gamemodes\ninja\ninja.dm"
#include "code\game\gamemodes\nuclear\nuclear.dm"
#include "code\game\gamemodes\nuclear\nuclearbomb.dm"
#include "code\game\gamemodes\nuclear\pinpointer.dm"
@@ -11,7 +11,7 @@
/datum/game_mode/traitor/autotraitor/announce()
..()
world << "<B>Game mode is AutoTraitor. Traitors will be added to the round automagically as needed.<br>Expect bugs.</B>"
world << "<B>Game mode is AutoTraitor. Traitors will be added to the round automagically as needed.</B>"
/datum/game_mode/traitor/autotraitor/pre_setup()
+3 -3
View File
@@ -211,7 +211,7 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp
ninja_selection_active = 0
//The ninja will be created on the right spawn point or at late join.
var/mob/living/carbon/human/new_ninja = create_space_ninja(pick(spawn_list.len ? spawn_list : latejoin ))
var/mob/living/carbon/human/new_ninja = create_space_ninja(pick(ninjastart))
new_ninja.key = ninja_key
new_ninja.wear_suit:randomize_param()//Give them a random set of suit parameters.
new_ninja.internal = new_ninja.s_store //So the poor ninja has something to breath when they spawn in spess.
@@ -491,8 +491,8 @@ As such, it's hard-coded for now. No reason for it not to be, really.
//=======//NINJA CREATION PROCS//=======//
/proc/create_space_ninja(obj/spawn_point)
var/mob/living/carbon/human/new_ninja = new(spawn_point.loc)
/proc/create_space_ninja(var/loc/spawnpoint)
var/mob/living/carbon/human/new_ninja = new(spawnpoint)
var/ninja_title = pick(ninja_titles)
var/ninja_name = pick(ninja_names)
new_ninja.gender = pick(MALE, FEMALE)
+2 -2
View File
@@ -261,7 +261,7 @@ Implants;
set_security_level(SEC_LEVEL_BLUE)*/
/datum/game_mode/proc/get_players_for_role(var/role, override_jobbans=1)
/datum/game_mode/proc/get_players_for_role(var/role, override_jobbans=0)
var/list/players = list()
var/list/candidates = list()
var/list/drafted = list()
@@ -275,7 +275,7 @@ Implants;
if(BE_WIZARD) roletext="wizard"
if(BE_REV) roletext="revolutionary"
if(BE_CULTIST) roletext="cultist"
if(BE_NINJA) roletext="ninja"
// Ultimate randomizing code right here
for(var/mob/new_player/player in player_list)
+41
View File
@@ -0,0 +1,41 @@
/datum/game_mode
var/list/datum/mind/ninjas = list()
/datum/game_mode/ninja
name = "ninja"
config_tag = "ninja"
required_players = 2
required_players_secret = 10
required_enemies = 1
recommended_enemies = 1
/datum/game_mode/ninja/announce()
world << "<B>The current game mode is Ninja!</B>"
/datum/game_mode/ninja/can_start()
if(!..())
return 0
var/list/datum/mind/possible_ninjas = get_players_for_role(BE_NINJA)
if(possible_ninjas.len==0)
return 0
var/datum/mind/ninja = pick(possible_ninjas)
ninjas += ninja
modePlayer += ninja
ninja.assigned_role = "MODE" //So they aren't chosen for other jobs.
ninja.special_role = "Ninja"
ninja.original = ninja.current
if(ninjastart.len == 0)
ninja.current << "<B>\red A proper starting location for you could not be found, please report this bug!</B>"
ninja.current << "<B>\red Attempting to place at a carpspawn.</B>"
for(var/obj/effect/landmark/L in landmarks_list)
if(L.name == "carpspawn")
ninjastart.Add(L)
if(ninjastart.len == 0)
ninja.current << "<B>\red Still no spawneable locations could be found. Aborting.</B>"
return 0
return 1
/datum/game_mode/ninja/pre_setup()
ninja.current.loc = pick(ninjastart)
ninja.current = create_space_ninja(pick(ninjastart))
return 1
-1
View File
@@ -45,7 +45,6 @@
/datum/game_mode/wizard/pre_setup()
for(var/datum/mind/wizard in wizards)
wizard.current.loc = pick(wizardstart)
return 1
+4
View File
@@ -69,6 +69,10 @@
xeno_spawn += loc
del(src)
if("ninjastart")
ninjastart += loc
del(src)
landmarks_list += src
return 1
+2
View File
@@ -133,6 +133,8 @@ var/list/tdomeadmin = list()
var/list/prisonsecuritywarp = list() //prison security goes to these
var/list/prisonwarped = list() //list of players already warped
var/list/blobstart = list()
var/list/carpspawn = list()
var/list/ninjastart = list()
// list/traitors = list() //traitor list
var/list/cardinal = list( NORTH, SOUTH, EAST, WEST )
var/list/alldirs = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)