diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 88fade901ab..56aec67a7a1 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -229,6 +229,39 @@ datum/mind // text += "
All the changelings are dead! Restart in [round((changeling.TIME_TO_GET_REVIVED-(world.time-changeling.changelingdeathtime))/10)] seconds." sections["changeling"] = text + /** NINJA ***/ + text = "ninja" + if (ticker.mode.config_tag=="ninja") + text = uppertext(text) + text = "[text]: " + if (src in ticker.mode.ninjas) + text += "YES|no" + text += "
To outpost, undress, dress up." + //if (objectives.len==0) + //text += "
Objectives are empty! Randomize!" + else + text += "yes|NO" + sections["ninja"] = text + + /** CHANGELING ***/ + text = "changeling" + if (ticker.mode.config_tag=="changeling" || ticker.mode.config_tag=="traitorchan") + text = uppertext(text) + text = "[text]: " + if (src in ticker.mode.changelings) + text += "YES|no" + if (objectives.len==0) + text += "
Objectives are empty! Randomize!" + if( changeling && changeling.absorbed_dna.len && (current.real_name != changeling.absorbed_dna[1]) ) + text += "
Transform to initial appearance." + else + text += "yes|NO" +// var/datum/game_mode/changeling/changeling = ticker.mode +// if (istype(changeling) && changeling.changelingdeath) +// text += "
All the changelings are dead! Restart in [round((changeling.TIME_TO_GET_REVIVED-(world.time-changeling.changelingdeathtime))/10)] seconds." + sections["changeling"] = text + + /** VAMPIRE ***/ text = "vampire" if (ticker.mode.config_tag=="vampire") @@ -751,6 +784,27 @@ datum/mind ticker.mode.forge_wizard_objectives(src) usr << "\blue The objectives for wizard [key] have been generated. You can edit them and anounce manually." + else if (href_list["ninja"]) + current.hud_updateflag |= (1 << SPECIALROLE_HUD) + + switch(href_list["ninja"]) + if("clear") + if(src in ticker.mode.ninjas) + ticker.mode.ninjas -= src + special_role = null + current << "\red You have been brainwashed! You are no longer a Ninja!" + log_admin("[key_name_admin(usr)] has de-ninja'ed [current].") + if("ninja") + if(!(src in ticker.mode.ninjas)) + ticker.mode.ninjas += src + special_role = "Ninja" + current << "\blue Your mind awakens, your true potential is realized! You are a Space Ninja!" + log_admin("[key_name_admin(usr)] has ninja'ed [current].") + if("outpost") + current.loc = pick(ninjastart) + if("dressup") + current:equip_space_ninja() + else if (href_list["changeling"]) current.hud_updateflag |= (1 << SPECIALROLE_HUD) switch(href_list["changeling"]) diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm index 0d94cab437a..9a07e32335c 100644 --- a/code/game/gamemodes/events/ninja_equipment.dm +++ b/code/game/gamemodes/events/ninja_equipment.dm @@ -38,7 +38,19 @@ ________________________________________________________________________________ for(var/reagent_id in reagent_list) reagent_id == "uranium" ? reagents.add_reagent(reagent_id, r_maxamount+(a_boost*a_transfer)) : reagents.add_reagent(reagent_id, r_maxamount)//It will take into account uranium used for adrenaline boosting. cell = new/obj/item/weapon/cell/high//The suit should *always* have a battery because so many things rely on it. - cell.charge = 9000//Starting charge should not be higher than maximum charge. It leads to problems with recharging. + cell.charge = 9990//Starting charge should not be higher than maximum charge. It leads to problems with recharging. + cell.maxcharge = 10000 // Due to Ponies' overhaul Ninjas began starting with a 15000 energy cell. This should fix that issue. + + /*switch(s_rank) In preparation for Ninja overhaul, differeing starting charge levels for each rank of Ninja. + if("Initiate") + cell.charge = 7490 + cell.maxcharge = 7500 + if("Assassin") + cell.charge = 9990 + cell.maxcharge = 10000 + if("Master") + cell.maxcharge = 15000 + cell.charge = 14990*/ /obj/item/clothing/suit/space/space_ninja/Destroy() if(affecting)//To make sure the window is closed. diff --git a/code/game/gamemodes/events/space_ninja.dm b/code/game/gamemodes/events/space_ninja.dm index 33a7be0484d..6f24bf194ac 100644 --- a/code/game/gamemodes/events/space_ninja.dm +++ b/code/game/gamemodes/events/space_ninja.dm @@ -452,7 +452,8 @@ As such, it's hard-coded for now. No reason for it not to be, really. if(ishuman(M)) log_admin("[key_name(src)] turned [M.key] into a Space Ninja.") spawn(10) - M:create_mind_space_ninja() + M.mind.assigned_role = "MODE" + M.mind.special_role = "Ninja" M:equip_space_ninja(1) if(istype(M:wear_suit, /obj/item/clothing/suit/space/space_ninja)) M:wear_suit:randomize_param() @@ -521,7 +522,8 @@ As such, it's hard-coded for now. No reason for it not to be, really. mind.assigned_role = "MODE" mind.special_role = "Ninja" - //ticker.mode.ninjas |= mind + ticker.mode.ninjas += mind + return 1 /mob/living/carbon/human/proc/equip_space_ninja(safety=0)//Safety in case you need to unequip stuff for existing characters. diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm index 3c281767fd7..bdf85cdd5e4 100644 --- a/code/modules/clothing/spacesuits/ninja.dm +++ b/code/modules/clothing/spacesuits/ninja.dm @@ -43,6 +43,7 @@ var/s_delay = 40.0//How fast the suit does certain things, lower is faster. Can be overridden in specific procs. Also determines adverse probability. var/a_transfer = 20.0//How much reagent is transferred when injecting. var/r_maxamount = 80.0//How much reagent in total there is. + //var/s_rank = "Master" The three ranks are "Initiate", "Assassin", and "Master". Master is the base case. //Support function variables. var/spideros = 0//Mode of SpiderOS. This can change so I won't bother listing the modes here (0 is hub). Check ninja_equipment.dm for how it all works. diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index abe214a411b..4b57b96768b 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ