mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
110 lines
4.3 KiB
Plaintext
110 lines
4.3 KiB
Plaintext
/obj/item/melee/baton/slime
|
|
name = "slimebaton"
|
|
desc = "A modified stun baton designed to stun slimes and other lesser slimy xeno lifeforms for handling."
|
|
icon_state = "slimebaton"
|
|
item_state = "slimebaton"
|
|
slot_flags = SLOT_BELT
|
|
force = 9
|
|
lightcolor = "#33CCFF"
|
|
origin_tech = list(TECH_COMBAT = 2, TECH_BIO = 2)
|
|
agonyforce = 10 //It's not supposed to be great at stunning human beings.
|
|
hitcost = 48 //Less zap for less cost
|
|
description_info = "This baton will stun a slime or other slime-based lifeform for about five seconds, if hit with it while on."
|
|
|
|
/obj/item/melee/baton/slime/attack(mob/living/L, mob/user, hit_zone)
|
|
if(istype(L) && status) // Is it on?
|
|
if(L.mob_class & MOB_CLASS_SLIME) // Are they some kind of slime? (Prommies might pass this check someday).
|
|
if(isslime(L))
|
|
var/mob/living/simple_mob/slime/S = L
|
|
S.slimebatoned(user, 5) // Feral and xenobio slimes will react differently to this.
|
|
else
|
|
L.Weaken(5)
|
|
|
|
// Now for prommies.
|
|
if(ishuman(L))
|
|
var/mob/living/carbon/human/H = L
|
|
if(H.species && H.species.name == SPECIES_PROMETHEAN)
|
|
var/agony_to_apply = 60 - agonyforce
|
|
H.apply_damage(agony_to_apply, HALLOSS)
|
|
|
|
..()
|
|
/obj/item/melee/baton/slime/loaded/Initialize()
|
|
bcell = new/obj/item/cell/device(src)
|
|
update_icon()
|
|
return ..()
|
|
|
|
// Research borg's version
|
|
/obj/item/melee/baton/slime/robot
|
|
hitcost = 200
|
|
use_external_power = TRUE
|
|
|
|
// Xeno stun gun + projectile
|
|
/obj/item/gun/energy/taser/xeno
|
|
name = "xeno taser gun"
|
|
desc = "Straight out of NT's testing laboratories, this small gun is used to subdue non-humanoid xeno life forms. \
|
|
While marketed towards handling slimes, it may be useful for other creatures."
|
|
icon_state = "taserblue"
|
|
fire_sound = 'sound/weapons/taser2.ogg'
|
|
charge_cost = 120 // Twice as many shots.
|
|
projectile_type = /obj/item/projectile/beam/stun/xeno
|
|
accuracy = 30 // Make it a bit easier to hit the slimes.
|
|
description_info = "This gun will stun a slime or other lesser slimy lifeform for about two seconds if hit with the projectile it fires."
|
|
description_fluff = "An easy to use weapon designed by NanoTrasen, for NanoTrasen. This weapon is based on the NT Mk30 NL, \
|
|
it's core components swaped out for a new design made to subdue lesser slime-based xeno lifeforms at a distance. It is \
|
|
ineffective at stunning non-slimy lifeforms such as humanoids."
|
|
recoil_mode = 0 //CHOMP Addition
|
|
|
|
/obj/item/gun/energy/taser/xeno/robot // Borg version
|
|
self_recharge = 1
|
|
use_external_power = 1
|
|
recharge_time = 3
|
|
/*
|
|
VORESTATION REMOVAL
|
|
/obj/item/gun/energy/taser/xeno/sec //NT's corner-cutting option for their on-station security.
|
|
desc = "An NT Mk30 NL retrofitted to fire beams for subduing non-humanoid slimy xeno life forms."
|
|
icon_state = "taserblue"
|
|
item_state = "taser"
|
|
projectile_type = /obj/item/projectile/beam/stun/xeno/weak
|
|
charge_cost = 480
|
|
accuracy = 0 //Same accuracy as a normal Sec taser.
|
|
description_fluff = "An NT Mk30 NL retrofitted after the events that occurred aboard the NRS Prometheus."
|
|
|
|
/obj/item/gun/energy/taser/xeno/sec/robot //Cyborg variant of the security xeno-taser.
|
|
self_recharge = 1
|
|
use_external_power = 1
|
|
recharge_time = 3
|
|
*/
|
|
|
|
/obj/item/projectile/beam/stun/xeno
|
|
icon_state = "omni"
|
|
agony = 4
|
|
nodamage = TRUE
|
|
// For whatever reason the projectile qdels itself early if this is on, meaning on_hit() won't be called on prometheans.
|
|
// Probably for the best so that it doesn't harm the slime.
|
|
taser_effect = FALSE
|
|
|
|
muzzle_type = /obj/effect/projectile/muzzle/laser_omni
|
|
tracer_type = /obj/effect/projectile/tracer/laser_omni
|
|
impact_type = /obj/effect/projectile/impact/laser_omni
|
|
|
|
/obj/item/projectile/beam/stun/xeno/weak //Weaker variant for non-research equipment, turrets, or rapid fire types.
|
|
agony = 3
|
|
|
|
/obj/item/projectile/beam/stun/xeno/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null)
|
|
if(isliving(target))
|
|
var/mob/living/L = target
|
|
if(L.mob_class & MOB_CLASS_SLIME)
|
|
if(isslime(L))
|
|
var/mob/living/simple_mob/slime/S = L
|
|
S.slimebatoned(firer, round(agony/2))
|
|
else
|
|
L.Weaken(round(agony/2))
|
|
|
|
if(ishuman(L))
|
|
var/mob/living/carbon/human/H = L
|
|
if(H.species && H.species.name == SPECIES_PROMETHEAN)
|
|
if(agony == initial(agony)) // ??????
|
|
agony = round((14 * agony) - agony) //60-4 = 56, 56 / 4 = 14. Prior was flat 60 - agony of the beam to equate to 60.
|
|
|
|
..()
|