mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Ninja Balance (#30409)
This commit is contained in:
@@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
stat_datum_type = /datum/stat/role/ninja
|
stat_datum_type = /datum/stat/role/ninja
|
||||||
|
|
||||||
|
var/last_star_throw = 0
|
||||||
|
|
||||||
/datum/role/ninja/OnPostSetup(var/laterole = FALSE)
|
/datum/role/ninja/OnPostSetup(var/laterole = FALSE)
|
||||||
. =..()
|
. =..()
|
||||||
if(!.)
|
if(!.)
|
||||||
@@ -100,6 +102,7 @@
|
|||||||
**** ****
|
**** ****
|
||||||
**********************************/
|
**********************************/
|
||||||
|
|
||||||
|
var/list/valid_ninja_suits = list(/obj/item/clothing/suit/space/ninja,/obj/item/clothing/suit/kimono/ronin)
|
||||||
|
|
||||||
/obj/item/stack/shuriken
|
/obj/item/stack/shuriken
|
||||||
name = "3D printed shuriken"
|
name = "3D printed shuriken"
|
||||||
@@ -123,17 +126,21 @@
|
|||||||
var/mob/living/carbon/human/H = usr
|
var/mob/living/carbon/human/H = usr
|
||||||
var/datum/role/ninja/N = H.mind.GetRole(NINJA)
|
var/datum/role/ninja/N = H.mind.GetRole(NINJA)
|
||||||
if(N)
|
if(N)
|
||||||
|
var/suited = is_type_in_list(H.wear_suit,valid_ninja_suits) ? TRUE : FALSE
|
||||||
|
if(N.last_star_throw > world.time + (10-8*suited)) //10 deciseconds if unsuited, 2 otherwise
|
||||||
|
to_chat(H, "<span class='danger'>You can't throw \the [src] until you finish throwing the last one.</span>")
|
||||||
|
return
|
||||||
if(amount>1)
|
if(amount>1)
|
||||||
use(1)
|
use(1)
|
||||||
var/obj/item/stack/shuriken/S = new(loc)
|
var/obj/item/stack/shuriken/S = new(loc)
|
||||||
S.throw_at(A,throw_range,throw_speed*2)
|
S.throw_at(A,throw_range,throw_speed*(1+suited)) //double speed if suited
|
||||||
H.put_in_hands(src)
|
H.put_in_hands(src)
|
||||||
//statistics collection: ninja shuriken thrown
|
//statistics collection: ninja shuriken thrown
|
||||||
if(istype(N.stat_datum, /datum/stat/role/ninja))
|
if(istype(N.stat_datum, /datum/stat/role/ninja))
|
||||||
var/datum/stat/role/ninja/ND = N.stat_datum
|
var/datum/stat/role/ninja/ND = N.stat_datum
|
||||||
ND.shuriken_thrown++
|
ND.shuriken_thrown++
|
||||||
else
|
else
|
||||||
..(A,throw_range,throw_speed*2)
|
..(A,throw_range,throw_speed*(1+suited)) //double speed if suited
|
||||||
else
|
else
|
||||||
to_chat(usr,"<span class='warning'>You fumble with \the [src]!</span>")
|
to_chat(usr,"<span class='warning'>You fumble with \the [src]!</span>")
|
||||||
//It drops to the ground in throwcode already
|
//It drops to the ground in throwcode already
|
||||||
@@ -169,7 +176,11 @@
|
|||||||
var/activate_message = "Too slow."
|
var/activate_message = "Too slow."
|
||||||
|
|
||||||
/obj/item/weapon/substitutionhologram/IsShield()
|
/obj/item/weapon/substitutionhologram/IsShield()
|
||||||
return SHIELD_ADVANCED
|
var/mob/living/carbon/human/H = loc
|
||||||
|
if(istype(H))
|
||||||
|
if(is_type_in_list(H.wear_suit, valid_ninja_suits))
|
||||||
|
return SHIELD_ADVANCED
|
||||||
|
return FALSE
|
||||||
|
|
||||||
/obj/item/weapon/substitutionhologram/on_block(damage, atom/blocked)
|
/obj/item/weapon/substitutionhologram/on_block(damage, atom/blocked)
|
||||||
if(ishuman(loc))
|
if(ishuman(loc))
|
||||||
@@ -657,6 +668,12 @@ Suit and assorted
|
|||||||
|
|
||||||
/obj/item/clothing/suit/space/ninja/get_cell()
|
/obj/item/clothing/suit/space/ninja/get_cell()
|
||||||
return cell
|
return cell
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/space/ninja/unequipped(mob/living/carbon/human/H, var/from_slot = null)
|
||||||
|
..()
|
||||||
|
if(isninja(H))
|
||||||
|
to_chat(H,"SpiderOS: <span class='sinister'>[src] reflex booster disengaged. Hologram projectors inactive.</span>")
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/ninja/apprentice
|
/obj/item/clothing/suit/space/ninja/apprentice
|
||||||
name = "ninja suit"
|
name = "ninja suit"
|
||||||
desc = "A rare suit of nano-enhanced armor designed for Spider Clan assassins."
|
desc = "A rare suit of nano-enhanced armor designed for Spider Clan assassins."
|
||||||
@@ -680,15 +697,8 @@ Suit and assorted
|
|||||||
to_chat(H, "<span class='danger'>\The [src] lets out a hiss. It's no longer pressurized!</span>")
|
to_chat(H, "<span class='danger'>\The [src] lets out a hiss. It's no longer pressurized!</span>")
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/ninja/equipped(mob/living/carbon/human/H, equipped_slot)
|
/obj/item/clothing/suit/space/ninja/equipped(mob/living/carbon/human/H, equipped_slot)
|
||||||
/*if(!isninja(H))
|
if(isninja(H))
|
||||||
if(equipped_slot != slot_wear_suit)
|
to_chat(H,"SpiderOS: <span class='sinister'>[src] reflex booster engaged. Hologram projectors active.</span>")
|
||||||
to_chat(H, "<span class='danger'>\The [src] beeps menacingly.</span>")
|
|
||||||
else
|
|
||||||
src.visible_message("<span class='danger'>\The [src] suddenly explodes as [H] tries to put it on!</span>")
|
|
||||||
explosion(H.loc, 0, 0, 1)
|
|
||||||
H.u_equip(src, 1)
|
|
||||||
qdel(src)*/
|
|
||||||
//else //Maybe when there's more functionality to warrant the suit exploding.
|
|
||||||
if(equipped_slot == slot_wear_suit)
|
if(equipped_slot == slot_wear_suit)
|
||||||
icon_state = H.gender==FEMALE ? "s-ninjaf" : "s-ninja"
|
icon_state = H.gender==FEMALE ? "s-ninjaf" : "s-ninja"
|
||||||
H.update_inv_wear_suit()
|
H.update_inv_wear_suit()
|
||||||
|
|||||||
Reference in New Issue
Block a user