mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-20 12:29:23 +01:00
fa7214de3c
Revives https://github.com/Aurorastation/Aurora.3/pull/17215 with the needed species changes. As I said last time this was tried, the key issue is that our walkspeed is a lot lower than any other server's. Even if we add atom gliding as is, it would just look like gliding through molasses and would give you motion sickness, because it takes a half-second to finish a glide to another tile. Meaning that to compensate the movement speed has now been significantly buffed for everyone. Yes, even dionae, G2, simple mobs, everyone. As compensation, m'sai/bishop/unathi sprint were especially nerfed because otherwise they'd go lightspeed. https://github.com/user-attachments/assets/7ba07389-b874-4a7d-8dd5-b5d3bfe611e4 --------- Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it> Co-authored-by: Matt Atlas <liermattia@gmail.com> Co-authored-by: VMSolidus <evilexecutive@gmail.com> Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
223 lines
5.3 KiB
Plaintext
223 lines
5.3 KiB
Plaintext
/obj/projectile/energy
|
|
name = "energy"
|
|
icon_state = "spark"
|
|
damage = 0
|
|
damage_type = DAMAGE_BURN
|
|
check_armor = ENERGY
|
|
|
|
/// Releases a burst of light on impact or after travelling a distance.
|
|
/obj/projectile/energy/flash
|
|
name = "chemical shell"
|
|
icon_state = "bullet"
|
|
damage = 5
|
|
agony = 10
|
|
range = 15 //if the shell hasn't hit anything after travelling this far it just explodes.
|
|
var/flash_range = 0
|
|
var/brightness = 7
|
|
var/light_duration = 5
|
|
|
|
/obj/projectile/energy/flash/on_hit(atom/target, blocked, def_zone)
|
|
. = ..()
|
|
|
|
var/turf/T = flash_range ? src.loc : get_turf(target)
|
|
if(!istype(T))
|
|
return
|
|
|
|
//blind adjacent people
|
|
for(var/mob/living/M in viewers(T, flash_range))
|
|
if(M.flash_act(ignore_inherent = TRUE))
|
|
M.confused = rand(5, 15)
|
|
|
|
//snap pop
|
|
playsound(src, 'sound/effects/snap.ogg', 50, 1)
|
|
src.visible_message(SPAN_WARNING("\The [src] explodes in a bright flash!"))
|
|
|
|
new /obj/effect/decal/cleanable/ash(src.loc) //always use src.loc so that ash doesn't end up inside windows
|
|
single_spark(T)
|
|
new /obj/effect/smoke/illumination(T, brightness=max(flash_range*2, brightness), lifetime=light_duration)
|
|
|
|
/// blinds people like the flash round, but can also be used for temporary illumination
|
|
/obj/projectile/energy/flash/flare
|
|
damage = 10
|
|
flash_range = 1
|
|
brightness = 9 //similar to a flare
|
|
light_duration = 200
|
|
|
|
/obj/projectile/energy/electrode
|
|
name = "electrode"
|
|
icon_state = "spark"
|
|
damage = 2 //Flavor.
|
|
damage_type = DAMAGE_BURN
|
|
agony = 40
|
|
eyeblur = 1
|
|
//Damage will be handled on the MOB side, to prevent window shattering.
|
|
|
|
/obj/projectile/energy/electrode/stunshot
|
|
name = "stunshot"
|
|
damage = 5
|
|
agony = 80
|
|
|
|
/obj/projectile/energy/declone
|
|
name = "decloner beam"
|
|
icon_state = "declone"
|
|
damage = 20
|
|
damage_type = DAMAGE_CLONE
|
|
irradiate = 40
|
|
|
|
/obj/projectile/energy/dart
|
|
name = "dart"
|
|
icon_state = "toxin"
|
|
damage = 5
|
|
damage_type = DAMAGE_TOXIN
|
|
weaken = 5
|
|
|
|
/obj/projectile/energy/bolt
|
|
name = "bolt"
|
|
icon_state = "cbbolt"
|
|
damage = 1
|
|
damage_type = DAMAGE_BURN
|
|
agony = 45
|
|
stutter = 10
|
|
|
|
/obj/projectile/energy/bolt/large
|
|
name = "largebolt"
|
|
damage = 2
|
|
damage_type = DAMAGE_BURN
|
|
agony = 60
|
|
|
|
/obj/projectile/energy/neurotoxin
|
|
name = "neuro"
|
|
icon_state = "neurotoxin"
|
|
damage = 5
|
|
damage_type = DAMAGE_TOXIN
|
|
weaken = 5
|
|
|
|
/obj/projectile/energy/phoron
|
|
name = "phoron bolt"
|
|
icon_state = "energy"
|
|
irradiate = 20
|
|
|
|
/obj/projectile/energy/bfg
|
|
name = "distortion"
|
|
icon = 'icons/obj/projectiles.dmi'
|
|
icon_state = "bfg"
|
|
check_armor = BOMB
|
|
damage = 60
|
|
damage_type = DAMAGE_BRUTE
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSRAILING
|
|
range = 100
|
|
embed = 0
|
|
speed = 8
|
|
light_range = 4
|
|
light_color = "#b5ff5b"
|
|
|
|
/obj/projectile/energy/bfg/on_hit(atom/target, blocked, def_zone)
|
|
if(ismob(target))
|
|
var/mob/M = target
|
|
M.gib()
|
|
explosion(target, -1, 0, 5)
|
|
. = ..()
|
|
|
|
/obj/projectile/energy/bfg/New()
|
|
var/matrix/M = matrix()
|
|
M.Scale(2)
|
|
src.transform = M
|
|
..()
|
|
|
|
// /obj/projectile/energy/bfg/after_move()
|
|
// for(var/a in range(1, src))
|
|
// if(isliving(a) && a != firer)
|
|
// var/mob/living/M = a
|
|
// if(M.stat == DEAD)
|
|
// M.gib()
|
|
// else
|
|
// M.apply_damage(60, DAMAGE_BRUTE, BP_HEAD)
|
|
// playsound(src, 'sound/magic/LightningShock.ogg', 75, 1)
|
|
// else if(isturf(a) || isobj(a))
|
|
// var/atom/A = a
|
|
// if(!A.density)
|
|
// continue
|
|
// A.ex_act(2)
|
|
// playsound(src, 'sound/magic/LightningShock.ogg', 75, 1)
|
|
|
|
/obj/projectile/energy/gravitydisabler
|
|
name = "gravity disabler"
|
|
icon = 'icons/obj/projectiles.dmi'
|
|
icon_state = "bluespace"
|
|
damage = 0
|
|
damage_type = DAMAGE_BRUTE
|
|
pass_flags = PASSTABLE | PASSGRILLE | PASSRAILING
|
|
range = 10
|
|
embed = 0
|
|
speed = 1
|
|
light_range = 4
|
|
light_color = "#b5ff5b"
|
|
|
|
/obj/projectile/energy/gravitydisabler/on_hit(atom/target, blocked, def_zone)
|
|
. = ..()
|
|
var/area/A = get_area(target)
|
|
if(A && A.has_gravity())
|
|
A.gravitychange(FALSE)
|
|
addtimer(CALLBACK(src, PROC_REF(turnongravity)), 150)
|
|
|
|
if(istype(target, /obj/machinery/gravity_generator/main))
|
|
var/obj/machinery/gravity_generator/main/T = target
|
|
T.eshutoff()
|
|
|
|
/obj/projectile/energy/gravitydisabler/proc/turnongravity(var/area/A)
|
|
A.gravitychange(TRUE)
|
|
|
|
/obj/projectile/energy/blaster
|
|
name = "blaster bolt"
|
|
icon_state = "laser"
|
|
damage = 30
|
|
check_armor = LASER
|
|
damage_type = DAMAGE_BURN
|
|
damage_flags = DAMAGE_FLAG_LASER
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSRAILING
|
|
muzzle_type = /obj/effect/projectile/muzzle/bolt
|
|
impact_effect_type = /obj/effect/temp_visual/blaster_effect
|
|
|
|
/obj/projectile/energy/blaster/disruptor
|
|
damage = 20
|
|
pass_flags = PASSTABLE | PASSRAILING
|
|
|
|
/obj/projectile/energy/blaster/disruptor/practice
|
|
damage = 5
|
|
damage_type = DAMAGE_PAIN
|
|
eyeblur = 0
|
|
|
|
/obj/projectile/energy/blaster/skrell // for nralakk fed consular pistol
|
|
damage = 30
|
|
armor_penetration = 5
|
|
pass_flags = PASSTABLE | PASSRAILING
|
|
|
|
/obj/projectile/energy/disruptorstun
|
|
name = "disruptor bolt"
|
|
icon_state = "bluelaser"
|
|
damage = 1
|
|
agony = 40
|
|
speed = 0.4
|
|
damage_type = DAMAGE_BURN
|
|
eyeblur = 1
|
|
pass_flags = PASSTABLE | PASSRAILING
|
|
muzzle_type = /obj/effect/projectile/muzzle/bolt
|
|
|
|
/obj/projectile/energy/disruptorstun/practice
|
|
damage = 5
|
|
damage_type = DAMAGE_PAIN
|
|
eyeblur = 0
|
|
|
|
/obj/projectile/energy/blaster/heavy
|
|
damage = 35
|
|
armor_penetration = 10
|
|
|
|
/obj/projectile/energy/blaster/incendiary
|
|
icon_state = "laser"
|
|
damage = 35
|
|
armor_penetration = 60
|
|
incinerate = 15
|
|
|
|
/obj/projectile/energy/disruptorstun/skrell // for nralakk fed consular pistol
|
|
agony = 45
|