diff --git a/code/defines/obj/clothing.dm b/code/defines/obj/clothing.dm index 34791f52af1..07cd4063dc1 100644 --- a/code/defines/obj/clothing.dm +++ b/code/defines/obj/clothing.dm @@ -16,7 +16,7 @@ var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up var/radiation_protection = 0.0 //percentage of radiation it will absorb - + var/canremove = 1 //Mostly for Ninja code at this point but basically will not allow the item to be removed if set to 0. /N diff --git a/code/defines/obj/clothing/gloves.dm b/code/defines/obj/clothing/gloves.dm index efea265f5ee..db00f35bacd 100644 --- a/code/defines/obj/clothing/gloves.dm +++ b/code/defines/obj/clothing/gloves.dm @@ -60,6 +60,7 @@ siemens_coefficient = 0 protective_temperature = 1100 heat_transfer_coefficient = 0.05 + canremove = 0 /obj/item/clothing/gloves/stungloves/ name = "Stungloves" diff --git a/code/defines/obj/clothing/head.dm b/code/defines/obj/clothing/head.dm index 740d635fd53..cc8a2265240 100644 --- a/code/defines/obj/clothing/head.dm +++ b/code/defines/obj/clothing/head.dm @@ -172,6 +172,8 @@ icon_state = "s-ninja" item_state = "s-ninja_mask" radiation_protection = 0.25 + canremove = 0 + see_face = 1 /obj/item/clothing/head/helmet/swat name = "swat helmet" diff --git a/code/defines/obj/clothing/shoes.dm b/code/defines/obj/clothing/shoes.dm index c1acfceb5ea..e41652e9c8a 100644 --- a/code/defines/obj/clothing/shoes.dm +++ b/code/defines/obj/clothing/shoes.dm @@ -15,9 +15,6 @@ name = "Black Shoes" icon_state = "black" - protective_temperature = 1500 - heat_transfer_coefficient = 0.01 - /obj/item/clothing/shoes/brown name = "Brown Shoes" icon_state = "brown" @@ -37,8 +34,10 @@ desc = "A pair of running shoes, excellent for running and even better for smashing skulls." icon_state = "s-ninja" slowdown = -1 - permeability_coefficient = 0.05 + protective_temperature = 700 + permeability_coefficient = 0.01 flags = NOSLIP + canremove = 0 /obj/item/clothing/shoes/white name = "White Shoes" diff --git a/code/defines/obj/clothing/suit.dm b/code/defines/obj/clothing/suit.dm index 76d76c03581..095778580e7 100644 --- a/code/defines/obj/clothing/suit.dm +++ b/code/defines/obj/clothing/suit.dm @@ -195,6 +195,7 @@ var/status = 0 flags = FPRINT | TABLEPASS | CONDUCT | ONESIZEFITSALL body_parts_covered = UPPER_TORSO + canremove = 0 /obj/item/clothing/suit/armor/captain name = "Captain's armor" @@ -347,6 +348,7 @@ allowed = list(/obj/item/weapon/gun,/obj/item/weapon/ammo,/obj/item/weapon/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen) slowdown = 0 radiation_protection = 0.75 + canremove = 0 var/active = 0 var/energy = 100 diff --git a/code/game/machinery/camera.dm b/code/game/machinery/camera.dm index 3d2b2a7256f..1398ee05873 100644 --- a/code/game/machinery/camera.dm +++ b/code/game/machinery/camera.dm @@ -51,7 +51,8 @@ for (var/mob/M in world) if (istype(M, /mob/new_player)) continue //cameras can't follow people who haven't started yet DUH OR DIDN'T YOU KNOW THAT - if (istype(M, /mob/living/carbon/human) && istype(M:wear_id, /obj/item/weapon/card/id/syndicate)) + //Cameras can't track people wearing an agent card or a ninja hood. + if (istype(M, /mob/living/carbon/human) && (istype(M:wear_id, /obj/item/weapon/card/id/syndicate)||istype(M:head, /obj/item/clothing/head/helmet/space/space_ninja))) continue if(!istype(M.loc, /turf)) //in a closet or something, AI can't see him anyways continue diff --git a/code/game/objects/items/item.dm b/code/game/objects/items/item.dm index ec406866627..b8c60f9ba99 100644 --- a/code/game/objects/items/item.dm +++ b/code/game/objects/items/item.dm @@ -102,7 +102,11 @@ M.client.screen -= src src.throwing = 0 if (src.loc == user) - user.u_equip(src) + //canremove==0 means that object may not be removed. You can still wear it. This only applies to clothing. /N + if(istype(src, /obj/item/clothing) && !src:canremove) + return + else + user.u_equip(src) else src.pickup(user) @@ -124,10 +128,6 @@ user << "Your claws aren't capable of such fine manipulation." return -// if(istype(src, /obj/item/weapon/gun)) //Temporary fix until I figure out what's going with monkey/add_blood code./N -// user << "Sorry Mr. Monkey, guns aren't for you." -// return - if (istype(src.loc, /obj/item/weapon/storage)) for(var/mob/M in range(1, src.loc)) if (M.s_active == src.loc) @@ -135,7 +135,11 @@ M.client.screen -= src src.throwing = 0 if (src.loc == user) - user.u_equip(src) + //canremove==0 means that object may not be removed. You can still wear it. This only applies to clothing. /N + if(istype(src, /obj/item/clothing) && !src:canremove) + return + else + user.u_equip(src) if (user.hand) user.l_hand = src else diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index 6f3770952f9..9729f65c90f 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -36,7 +36,6 @@ var/global/sent_strike_team = 0 var/commando_number = 6 //for selecting a leader var/leader_selected = 0 //when the leader is chosen. The last person spawned. var/commando_leader_rank = pick("Lieutenant", "Captain", "Major") - var/list/commando_names = dd_file2list("config/names/last.txt") //Code for spawning a nuke auth code. var/nuke_code = "[rand(10000, 99999.0)]" @@ -47,7 +46,7 @@ var/global/sent_strike_team = 0 if (STARTLOC.name == "Commando") var/mob/living/carbon/human/new_commando = new(STARTLOC.loc) var/commando_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major") - var/commando_name = pick(commando_names) + var/commando_name = pick(last_names) new_commando.gender = pick(MALE, FEMALE) if (commando_number == 1) leader_selected = 1 @@ -180,9 +179,6 @@ Useful for copy pasta since I'm lazy.*/ if(!input) goto TRYAGAIN - var/list/ninja_titles = dd_file2list("config/names/ninjatitle.txt") - var/list/ninja_names = dd_file2list("config/names/ninjaname.txt") - var/list/LOCLIST = list() for(var/obj/landmark/X in world) if (X.name == "carpspawn") @@ -224,6 +220,7 @@ Useful for copy pasta since I'm lazy.*/ new_ninja.equip_if_possible(OXYTANK, new_ninja.slot_s_store) /* You know, I'm not really sure why space ninjas would need an ID card. +Running around as an unknown is badass and makes you manly var/obj/item/weapon/card/id/W = new(new_ninja) W.name = "[new_ninja.real_name]'s ID Card" W.access = access_maint_tunnels @@ -232,7 +229,7 @@ Useful for copy pasta since I'm lazy.*/ new_ninja.equip_if_possible(W, new_ninja.slot_wear_id) */ - var/admin_name = src//In case admins want to spawn themselves as ninjas. + var/admin_name = src//In case admins want to spawn themselves as ninjas. Badmins var/mob/dead/observer/G var/list/candidates = list() @@ -267,8 +264,29 @@ Useful for copy pasta since I'm lazy.*/ message_admins("\blue [admin_name] has spawned [new_ninja.key] as a Space Ninja. Hide yo children!", 1) log_admin("[admin_name] used Spawn Space Ninja.") -//SPACE NINJA ABILITIES + +//SPACE NINJA ABILITIES +/* +// src << "\red Something has gone awry and you are missing one or more pieces of equipment." + +/mob/proc/ninjagear() + if(!istype(src:wear_suit, /obj/item/clothing/suit/space/space_ninja)) return 0 + else if(!istype(src:head, /obj/item/clothing/head/helmet/space/space_ninja)) return 0 + else if(!istype(src:gloves, /obj/item/clothing/gloves/space_ninja)) return 0 + else if(!istype(src:shoes, /obj/item/clothing/shoes/space_ninja)) return 0 + else return 1 + +/mob/proc/ninjacost(var/cost) + if(cost>src.wear_suit:energy) + return 0 + else + src.wear_suit:energy=src.wear_suit:energy-cost + return 1 + +//else if (istype(src.wear_mask, /obj/item/clothing/mask/gas/space_ninja)) + // switch(src.wear_mask:mode) +*/ //Smoke //Summons smoke in radius of user. //Not sure why this would be useful (it's not) but whatever. Ninjas need their smoke bombs. @@ -286,7 +304,7 @@ Useful for copy pasta since I'm lazy.*/ var/datum/effects/system/bad_smoke_spread/smoke = new /datum/effects/system/bad_smoke_spread() smoke.set_up(10, 0, src.loc) smoke.start() - //subtract cost(LOW) + //subtract cost(5) //9-10 Tile Teleport @@ -373,7 +391,7 @@ Useful for copy pasta since I'm lazy.*/ for(var/mob/living/M in picked) if(M==src) continue M.gib() - //subtract cost(MED) + //subtract cost(10) //Right Click Teleport //Right click to teleport somewhere, almost exactly like admin jump to turf. @@ -419,7 +437,7 @@ Useful for copy pasta since I'm lazy.*/ for(var/mob/living/M in T) if(M==src) continue M.gib() - //subtract cost(HIGH) + //subtract cost(20) //EMP Pulse //Disables nearby tech equipment. @@ -434,9 +452,9 @@ Useful for copy pasta since I'm lazy.*/ //add energy cost check //add warning message for low energy - empulse(src, 4, 6) //Procs sure are nice. Slihgtly weaker than wizard's disable tch. + empulse(src, 4, 6) //Procs sure are nice. Slightly weaker than wizard's disable tch. - //subtract cost(HIGH) + //subtract cost(25) /* //Summon Energy Blade @@ -445,8 +463,5 @@ name = "" tab = "ninja" desc = "" cost = 0 - -//Make untrackable by AI. - */ diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index c0184d28319..c700c3d0045 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -10,6 +10,11 @@ if (!gibbed) emote("deathgasp") //let the world KNOW WE ARE DEAD + //For ninjas exploding when they die./N + if (src.mind&&src.mind.special_role == "Space Ninja") + var/location = src.loc + explosion(location, 1, 2, 3, 4) + src.canmove = 0 if(src.client) src.blind.layer = 0 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 06840de055e..5df598d8e80 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -6,18 +6,7 @@ if (!dna) dna = new /datum/dna( null ) -/* - if(istype(src, /mob/living/carbon/human/vampire)) - spawn (1) - src.verbs += /mob/proc/mist - src.verbs += /mob/proc/port - src.verbs += /mob/proc/hellfire - src.verbs += /mob/proc/veil - src.verbs += /mob/proc/charm - src.verbs += /mob/proc/lights - src.verbs += /mob/proc/blood - src.mutantrace = "vampire" -*/ + spawn (1) var/datum/organ/external/chest/chest = new /datum/organ/external/chest( src ) chest.owner = src @@ -1351,6 +1340,11 @@ shielded = 2 break + for (var/obj/item/clothing/suit/space/space_ninja/S in src)//Same as a regular cloaking device but more ninja./N + if (S.active) + shielded = 2 + break + if (shielded == 2) src.invisibility = 2 else @@ -2013,7 +2007,10 @@ var/message = null switch(src.place) if("mask") - message = text("\red [] is trying to take off \a [] from []'s head!", src.source, src.target.wear_mask, src.target) + if(istype(src.target.wear_mask, /obj/item/clothing)&&!src.target.wear_mask:canremove) + message = text("\red [] fails to take off \a [] from []'s body!", src.source, src.target.wear_mask, src.target) + else + message = text("\red [] is trying to take off \a [] from []'s head!", src.source, src.target.wear_mask, src.target) /* if("headset") message = text("\red [] is trying to take off \a [] from []'s face!", src.source, src.target.w_radio, src.target) */ if("l_hand") @@ -2021,25 +2018,48 @@ if("r_hand") message = text("\red [] is trying to take off \a [] from []'s right hand!", src.source, src.target.r_hand, src.target) if("gloves") - message = text("\red [] is trying to take off the [] from []'s hands!", src.source, src.target.gloves, src.target) + if(istype(src.target.gloves, /obj/item/clothing)&&!src.target.gloves:canremove) + message = text("\red [] fails to take off \a [] from []'s body!", src.source, src.target.gloves, src.target) + else + message = text("\red [] is trying to take off the [] from []'s hands!", src.source, src.target.gloves, src.target) if("eyes") - message = text("\red [] is trying to take off the [] from []'s eyes!", src.source, src.target.glasses, src.target) + if(istype(src.target.glasses, /obj/item/clothing)&&!src.target.glasses:canremove) + message = text("\red [] fails to take off \a [] from []'s body!", src.source, src.target.glasses, src.target) + else + message = text("\red [] is trying to take off the [] from []'s eyes!", src.source, src.target.glasses, src.target) if("ears") - message = text("\red [] is trying to take off the [] from []'s ears!", src.source, src.target.ears, src.target) + if(istype(src.target.ears, /obj/item/clothing)&&!src.target.ears:canremove) + message = text("\red [] fails to take off \a [] from []'s body!", src.source, src.target.ears, src.target) + else + message = text("\red [] is trying to take off the [] from []'s ears!", src.source, src.target.ears, src.target) if("head") - message = text("\red [] is trying to take off the [] from []'s head!", src.source, src.target.head, src.target) + if(istype(src.target.head, /obj/item/clothing)&&!src.target.head:canremove) + message = text("\red [] fails to take off \a [] from []'s body!", src.source, src.target.head, src.target) + else + message = text("\red [] is trying to take off the [] from []'s head!", src.source, src.target.head, src.target) if("shoes") - message = text("\red [] is trying to take off the [] from []'s feet!", src.source, src.target.shoes, src.target) + if(istype(src.target.shoes, /obj/item/clothing)&&!src.target.shoes:canremove) + message = text("\red [] fails to take off \a [] from []'s body!", src.source, src.target.shoes, src.target) + else + message = text("\red [] is trying to take off the [] from []'s feet!", src.source, src.target.shoes, src.target) if("belt") message = text("\red [] is trying to take off the [] from []'s belt!", src.source, src.target.belt, src.target) if("suit") - message = text("\red [] is trying to take off \a [] from []'s body!", src.source, src.target.wear_suit, src.target) + if(istype(src.target.wear_suit, /obj/item/clothing/suit/armor/a_i_a_ptank))//Exception for suicide vests. + message = text("\red [] fails to take off \a [] from []'s body!", src.source, src.target.wear_suit, src.target) + else if(istype(src.target.wear_suit, /obj/item/clothing)&&!src.target.wear_suit:canremove) + message = text("\red [] fails to take off \a [] from []'s body!", src.source, src.target.wear_suit, src.target) + else + message = text("\red [] is trying to take off \a [] from []'s body!", src.source, src.target.wear_suit, src.target) if("back") message = text("\red [] is trying to take off \a [] from []'s back!", src.source, src.target.back, src.target) if("handcuff") message = text("\red [] is trying to unhandcuff []!", src.source, src.target) if("uniform") - message = text("\red [] is trying to take off \a [] from []'s body!", src.source, src.target.w_uniform, src.target) + if(istype(src.target.w_uniform, /obj/item/clothing)&&!src.target.w_uniform:canremove) + message = text("\red [] fails to take off \a [] from []'s body!", src.source, src.target.w_uniform, src.target) + else + message = text("\red [] is trying to take off \a [] from []'s body!", src.source, src.target.w_uniform, src.target) if("s_store") message = text("\red [] is trying to take off \a [] from []'s suit!", src.source, src.target.s_store, src.target) if("h_store") @@ -2081,6 +2101,15 @@ return return +/* +This proc equips stuff (or does something else) when removing stuff manually from the character window when you click and drag. +It works in conjuction with the process() above. +This proc works for humans only. Aliens stripping humans and the like will all use this proc. Stripping monkeys or somesuch will use their version of this proc. +The first if statement for "mask" and such refers to items that are already equipped and un-equipping them. +The else statement is for equipping stuff to empty slots. +!canremove refers to variable of /obj/item/clothing which either allows or disallows that item to be removed. +It can still be worn/put on as normal. +*/ /obj/equip_e/human/done() if(!src.source || !src.target) return if(src.source.loc != src.s_loc) return @@ -2091,7 +2120,9 @@ switch(src.place) if("mask") if (src.target.wear_mask) - var/obj/item/W = src.target.wear_mask + if(istype(src.target.wear_mask, /obj/item/clothing)&& !src.target.wear_mask:canremove) + return + var/obj/item/clothing/W = src.target.wear_mask src.target.u_equip(W) if (src.target.client) src.target.client.screen -= W @@ -2126,7 +2157,9 @@ src.item.loc = src.target*/ if("gloves") if (src.target.gloves) - var/obj/item/W = src.target.gloves + if(istype(src.target.gloves, /obj/item/clothing)&& !src.target.gloves:canremove) + return + var/obj/item/clothing/W = src.target.gloves src.target.u_equip(W) if (src.target.client) src.target.client.screen -= W @@ -2144,6 +2177,8 @@ src.item.loc = src.target if("eyes") if (src.target.glasses) + if(istype(src.target.glasses, /obj/item/clothing)&& !src.target.glasses:canremove) + return var/obj/item/W = src.target.glasses src.target.u_equip(W) if (src.target.client) @@ -2206,6 +2241,8 @@ src.item.loc = src.target if("head") if (src.target.head) + if(istype(src.target.head, /obj/item/clothing)&& !src.target.head:canremove) + return var/obj/item/W = src.target.head src.target.u_equip(W) if (src.target.client) @@ -2224,6 +2261,8 @@ src.item.loc = src.target if("ears") if (src.target.ears) + if(istype(src.target.ears, /obj/item/clothing)&& !src.target.ears:canremove) + return var/obj/item/W = src.target.ears src.target.u_equip(W) if (src.target.client) @@ -2248,6 +2287,8 @@ src.item.loc = src.target if("shoes") if (src.target.shoes) + if(istype(src.target.shoes, /obj/item/clothing)&& !src.target.shoes:canremove) + return var/obj/item/W = src.target.shoes src.target.u_equip(W) if (src.target.client) @@ -2313,6 +2354,8 @@ src.item.add_fingerprint(src.target) if("uniform") if (src.target.w_uniform) + if(istype(src.target.w_uniform, /obj/item/clothing)&& !src.target.w_uniform:canremove) + return var/obj/item/W = src.target.w_uniform src.target.u_equip(W) if (src.target.client) @@ -2358,6 +2401,14 @@ src.item.loc = src.target if("suit") if (src.target.wear_suit) + if(istype(src.target.wear_suit, /obj/item/clothing/suit/armor/a_i_a_ptank))//triggers suicide vest if someone else tries to take it off/N + var/obj/item/clothing/suit/armor/a_i_a_ptank/A = src.target.wear_suit//mostly a copy from death.dm code. + bombers += "[src.target.key] has detonated a suicide bomb. Temp = [A.part4.air_contents.temperature-T0C]." + if(A.status && prob(90)) + A.part4.ignite() + return + if(istype(src.target.wear_suit, /obj/item/clothing)&& !src.target.wear_suit:canremove) + if(!istype(src.target.wear_suit, /obj/item/clothing/suit/armor/a_i_a_ptank)) return//Can remove the suicide vest if it didn't trigger. var/obj/item/W = src.target.wear_suit src.target.u_equip(W) if (src.target.client) diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 3faacd1b5cd..89e735dae60 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -24,6 +24,35 @@ temp_message[H] = "HONK" pick_list -= H message = dd_list2text(temp_message, " ") + //Ninja mask obscures text but not voice. You should still come up as your own name. + if(istype(src.wear_mask, /obj/item/clothing/mask/gas/space_ninja)&&!src.wear_mask:vchange) + if(copytext(message, 1, 2) != "*") + //This text is hilarious. + message = dd_replaceText(message, "l", "r") + message = dd_replaceText(message, "rr", "ru") + message = dd_replaceText(message, "v", "b") + message = dd_replaceText(message, "f", "hu") + message = dd_replaceText(message, "'t", "") + message = dd_replaceText(message, "t ", "to ") + message = dd_replaceText(message, " I ", " ai ") + message = dd_replaceText(message, "th", "z") + message = dd_replaceText(message, "ish", "isu") + message = dd_replaceText(message, "is", "izu") + message = dd_replaceText(message, "ziz", "zis") + message = dd_replaceText(message, "se", "su") + message = dd_replaceText(message, "br", "bur") + message = dd_replaceText(message, "ry", "ri") + message = dd_replaceText(message, "you", "yuu") + message = dd_replaceText(message, "ck", "cku") + message = dd_replaceText(message, "eu", "uu") + message = dd_replaceText(message, "ow", "au") + message = dd_replaceText(message, "are", "aa") + message = dd_replaceText(message, "ay", "ayu") + message = dd_replaceText(message, "ea", "ii") + message = dd_replaceText(message, "ch", "chi") + message = dd_replaceText(message, "than", "sen") + message = dd_replaceText(message, ".", "") + message = lowertext(message) ..(message) /mob/living/carbon/human/say_understands(var/other) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index b9cb15eba13..cf6476f677f 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -559,6 +559,11 @@ else var/message = null switch(src.place) + if("mask") + if(istype(src.target.wear_mask, /obj/item/clothing)&&!src.target.wear_mask:canremove) + message = text("\red [] fails to take off \a [] from []'s body!", src.source, src.target.wear_mask, src.target) + else + message = text("\red [] is trying to take off \a [] from []'s head!", src.source, src.target.wear_mask, src.target) if("l_hand") message = text("\red [] is trying to take off a [] from []'s left hand!", src.source, src.target.l_hand, src.target) if("r_hand") @@ -590,6 +595,8 @@ switch(src.place) if("mask") if (src.target.wear_mask) + if(istype(src.target.wear_mask, /obj/item/clothing)&& !src.target.wear_mask:canremove) + return var/obj/item/W = src.target.wear_mask src.target.u_equip(W) if (src.target.client) diff --git a/code/names.dm b/code/names.dm index ad84da51b2c..e81841a17a6 100644 --- a/code/names.dm +++ b/code/names.dm @@ -1,6 +1,8 @@ var/list/ai_names = dd_file2list("config/names/ai.txt") var/list/wizard_first = dd_file2list("config/names/wizardfirst.txt") var/list/wizard_second = dd_file2list("config/names/wizardsecond.txt") +var/list/ninja_titles = dd_file2list("config/names/ninjatitle.txt") +var/list/ninja_names = dd_file2list("config/names/ninjaname.txt") var/list/commando_names = dd_file2list("config/names/death_commando.txt") var/list/first_names_male = dd_file2list("config/names/first_male.txt") var/list/first_names_female = dd_file2list("config/names/first_female.txt") diff --git a/config/names/ninjaname.txt b/config/names/ninjaname.txt index ef28873b263..5d6d6717961 100644 --- a/config/names/ninjaname.txt +++ b/config/names/ninjaname.txt @@ -36,4 +36,7 @@ McAwesome Throat Death Aria -Bro \ No newline at end of file +Bro +Fox +Null +Raiden \ No newline at end of file diff --git a/config/names/ninjatitle.txt b/config/names/ninjatitle.txt index f6b093eeed4..151f824dafd 100644 --- a/config/names/ninjatitle.txt +++ b/config/names/ninjatitle.txt @@ -34,4 +34,8 @@ Deep Dragon Cruel Nightshade -Black \ No newline at end of file +Black +Gray +Solid +Liquid +Solidus \ No newline at end of file