here we go again (#2456)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/dash
|
||||
/obj/item/dash
|
||||
name = "abstract dash weapon"
|
||||
var/max_charges = 3
|
||||
var/current_charges = 3
|
||||
@@ -12,21 +12,21 @@
|
||||
var/beam_icon_state = "blur"
|
||||
var/dash_beam_type = /obj/effect/ebeam
|
||||
|
||||
/obj/item/weapon/dash/proc/charge()
|
||||
/obj/item/dash/proc/charge()
|
||||
current_charges = Clamp(current_charges + 1, 0, max_charges)
|
||||
if(istype(loc, /mob/living))
|
||||
to_chat(loc, "<span class='notice'>[src] now has [current_charges]/[max_charges] charges.</span>")
|
||||
|
||||
/obj/item/weapon/dash/attack_self(mob/user)
|
||||
/obj/item/dash/attack_self(mob/user)
|
||||
dash_toggled = !dash_toggled
|
||||
to_chat(user, "<span class='notice'>You [dash_toggled ? "enable" : "disable"] the dash function on [src].</span>")
|
||||
|
||||
/obj/item/weapon/dash/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
/obj/item/dash/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
if(dash_toggled)
|
||||
dash(user, target)
|
||||
return
|
||||
|
||||
/obj/item/weapon/dash/proc/dash(mob/user, atom/target)
|
||||
/obj/item/dash/proc/dash(mob/user, atom/target)
|
||||
if(!current_charges)
|
||||
return
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
current_charges--
|
||||
addtimer(CALLBACK(src, .proc/charge), charge_rate)
|
||||
|
||||
/obj/item/weapon/dash/energy_katana
|
||||
/obj/item/dash/energy_katana
|
||||
name = "energy katana"
|
||||
desc = "A katana infused with strong energy."
|
||||
icon_state = "energy_katana"
|
||||
@@ -76,7 +76,7 @@
|
||||
bypass_density = TRUE
|
||||
var/datum/effect_system/spark_spread/spark_system
|
||||
|
||||
/obj/item/weapon/dash/energy_katana/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
/obj/item/dash/energy_katana/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
if(dash_toggled)
|
||||
return ..()
|
||||
if(proximity_flag && (isobj(target) || issilicon(target)))
|
||||
@@ -89,7 +89,7 @@
|
||||
//If we hit the Ninja who owns this Katana, they catch it.
|
||||
//Works for if the Ninja throws it or it throws itself or someone tries
|
||||
//To throw it at the ninja
|
||||
/obj/item/weapon/dash/energy_katana/throw_impact(atom/hit_atom)
|
||||
/obj/item/dash/energy_katana/throw_impact(atom/hit_atom)
|
||||
if(ishuman(hit_atom))
|
||||
var/mob/living/carbon/human/H = hit_atom
|
||||
if(istype(H.wear_suit, /obj/item/clothing/suit/space/space_ninja))
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dash/energy_katana/proc/returnToOwner(mob/living/carbon/human/user, doSpark = 1, caught = 0)
|
||||
/obj/item/dash/energy_katana/proc/returnToOwner(mob/living/carbon/human/user, doSpark = 1, caught = 0)
|
||||
if(!istype(user))
|
||||
return
|
||||
forceMove(get_turf(user))
|
||||
@@ -127,12 +127,12 @@
|
||||
if(msg)
|
||||
to_chat(user, "<span class='notice'>[msg]</span>")
|
||||
|
||||
/obj/item/weapon/dash/energy_katana/Initialize()
|
||||
/obj/item/dash/energy_katana/Initialize()
|
||||
. = ..()
|
||||
spark_system = new /datum/effect_system/spark_spread()
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
|
||||
/obj/item/weapon/dash/energy_katana/Destroy()
|
||||
/obj/item/dash/energy_katana/Destroy()
|
||||
QDEL_NULL(spark_system)
|
||||
return ..()
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninjastar()
|
||||
if(!ninjacost(10))
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
var/obj/item/weapon/throwing_star/ninja/N = new(H)
|
||||
var/obj/item/throwing_star/ninja/N = new(H)
|
||||
if(H.put_in_hands(N))
|
||||
to_chat(H, "<span class='notice'>A throwing star has been created in your hand!</span>")
|
||||
else
|
||||
@@ -12,7 +12,7 @@
|
||||
H.throw_mode_on() //So they can quickly throw it.
|
||||
|
||||
|
||||
/obj/item/weapon/throwing_star/ninja
|
||||
/obj/item/throwing_star/ninja
|
||||
name = "ninja throwing star"
|
||||
throwforce = 30
|
||||
embedded_pain_multiplier = 6
|
||||
|
||||
@@ -97,7 +97,7 @@ They *could* go in their appropriate files, but this is supposed to be modular
|
||||
|
||||
|
||||
//CELL//
|
||||
/obj/item/weapon/stock_parts/cell/ninjadrain_act(obj/item/clothing/suit/space/space_ninja/S, mob/living/carbon/human/H, obj/item/clothing/gloves/space_ninja/G)
|
||||
/obj/item/stock_parts/cell/ninjadrain_act(obj/item/clothing/suit/space/space_ninja/S, mob/living/carbon/human/H, obj/item/clothing/gloves/space_ninja/G)
|
||||
if(!S || !H || !G)
|
||||
return INVALID_DRAIN
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Contents:
|
||||
desc = "A unique, vaccum-proof suit of nano-enhanced armor designed specifically for Spider Clan assassins."
|
||||
icon_state = "s-ninja"
|
||||
item_state = "s-ninja_suit"
|
||||
allowed = list(/obj/item/weapon/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton, /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/tank/internals, /obj/item/weapon/stock_parts/cell)
|
||||
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/stock_parts/cell)
|
||||
slowdown = 0
|
||||
resistance_flags = LAVA_PROOF | ACID_PROOF
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 100, acid = 100)
|
||||
@@ -26,12 +26,12 @@ Contents:
|
||||
|
||||
//Important parts of the suit.
|
||||
var/mob/living/carbon/human/affecting = null
|
||||
var/obj/item/weapon/stock_parts/cell/cell
|
||||
var/obj/item/stock_parts/cell/cell
|
||||
var/datum/effect_system/spark_spread/spark_system
|
||||
var/list/reagent_list = list("omnizine","salbutamol","spaceacillin","charcoal","nutriment","radium","potass_iodide")//The reagents ids which are added to the suit at New().
|
||||
var/list/stored_research = list()//For stealing station research.
|
||||
var/obj/item/weapon/disk/tech_disk/t_disk//To copy design onto disk.
|
||||
var/obj/item/weapon/dash/energy_katana/energyKatana //For teleporting the katana back to the ninja (It's an ability)
|
||||
var/obj/item/disk/tech_disk/t_disk//To copy design onto disk.
|
||||
var/obj/item/dash/energy_katana/energyKatana //For teleporting the katana back to the ninja (It's an ability)
|
||||
|
||||
//Other articles of ninja gear worn together, used to easily reference them after initializing.
|
||||
var/obj/item/clothing/head/helmet/space/space_ninja/n_hood
|
||||
@@ -83,7 +83,7 @@ Contents:
|
||||
reagent_id == "radium" ? reagents.add_reagent(reagent_id, r_maxamount+(a_boost*a_transfer)) : reagents.add_reagent(reagent_id, r_maxamount)//It will take into account radium used for adrenaline boosting.
|
||||
|
||||
//Cell Init
|
||||
cell = new/obj/item/weapon/stock_parts/cell/high
|
||||
cell = new/obj/item/stock_parts/cell/high
|
||||
cell.charge = 9000
|
||||
cell.name = "black power cell"
|
||||
cell.icon_state = "bscell"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/obj/item/clothing/suit/space/space_ninja/attackby(obj/item/I, mob/U, params)
|
||||
if(U==affecting)//Safety, in case you try doing this without wearing the suit/being the person with the suit.
|
||||
|
||||
if(istype(I, /obj/item/weapon/reagent_containers/glass))//If it's a glass beaker.
|
||||
if(istype(I, /obj/item/reagent_containers/glass))//If it's a glass beaker.
|
||||
var/total_reagent_transfer//Keep track of this stuff.
|
||||
for(var/reagent_id in reagent_list)
|
||||
var/datum/reagent/R = I.reagents.has_reagent(reagent_id)//Mostly to pull up the name of the reagent after calculating. Also easier to use than writing long proc paths.
|
||||
@@ -19,15 +19,15 @@
|
||||
to_chat(U, "Replenished a total of [total_reagent_transfer ? total_reagent_transfer : "zero"] chemical units.")
|
||||
return
|
||||
|
||||
else if(istype(I, /obj/item/weapon/stock_parts/cell))
|
||||
var/obj/item/weapon/stock_parts/cell/CELL = I
|
||||
else if(istype(I, /obj/item/stock_parts/cell))
|
||||
var/obj/item/stock_parts/cell/CELL = I
|
||||
if(CELL.maxcharge > cell.maxcharge && n_gloves && n_gloves.candrain)
|
||||
to_chat(U, "<span class='notice'>Higher maximum capacity detected.\nUpgrading...</span>")
|
||||
if (n_gloves && n_gloves.candrain && do_after(U,s_delay, target = src))
|
||||
U.drop_item()
|
||||
CELL.loc = src
|
||||
CELL.charge = min(CELL.charge+cell.charge, CELL.maxcharge)
|
||||
var/obj/item/weapon/stock_parts/cell/old_cell = cell
|
||||
var/obj/item/stock_parts/cell/old_cell = cell
|
||||
old_cell.charge = 0
|
||||
U.put_in_hands(old_cell)
|
||||
old_cell.add_fingerprint(U)
|
||||
@@ -39,8 +39,8 @@
|
||||
to_chat(U, "<span class='danger'>Procedure interrupted. Protocol terminated.</span>")
|
||||
return
|
||||
|
||||
else if(istype(I, /obj/item/weapon/disk/tech_disk))//If it's a data disk, we want to copy the research on to the suit.
|
||||
var/obj/item/weapon/disk/tech_disk/TD = I
|
||||
else if(istype(I, /obj/item/disk/tech_disk))//If it's a data disk, we want to copy the research on to the suit.
|
||||
var/obj/item/disk/tech_disk/TD = I
|
||||
var/has_research = 0
|
||||
for(var/V in TD.tech_stored)
|
||||
if(V)
|
||||
|
||||
Reference in New Issue
Block a user