mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-07-14 17:53:09 +01:00
10e11ae4c9
Adjusts the fire delays, charge levels and recharge speeds of many energy weapons. Adjusts the damage of several types of energy beams. Renames the "burst laser" to the "burst energy gun". Also updates the cargo ordering console's entry to match. Converts a few weapon-related booleans to use TRUE/FALSE. Fixes formatting of some weapon fire modes.
106 lines
4.1 KiB
Plaintext
106 lines
4.1 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 = "taserblueold"
|
|
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 designed to subdue lesser \
|
|
slime-based xeno lifeforms at a distance. It is ineffective at stunning non-slimy lifeforms such as humanoids."
|
|
|
|
/obj/item/gun/energy/taser/xeno/robot // Borg version
|
|
self_recharge = TRUE
|
|
use_external_power = TRUE
|
|
|
|
/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 = TRUE
|
|
use_external_power = TRUE
|
|
|
|
/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(istype(target, /mob/living))
|
|
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.
|
|
|
|
..()
|