mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-24 17:11:22 +00:00
Nerfs blob rollercoaster of death by making it so that blobs cannot interact with the mobs inside of other blobs. Replaces blob's gibbing mobs with husking humans, merely killing borgs, and gibbing everything else. Makes flamethrowers modestly more effective versus blobs - a consistent source of minor AoE damage. Makes blobs more aesthetically pleasing. Distinguishes the main core from the aux cores slightly more. Fixes #1426 Fixes #1427 Fixes #1432 Fixes #1461 Fixes #1464 Fixes #1471 Modifies BFG's to be more like actual BFG's. Fixes Industrial IPCs being able to select Baseline IPC screens. Fixes several baycode company names to fit ours in guns. Changes several of our guns to fit Baycode's naming paradigm.
262 lines
7.6 KiB
Plaintext
262 lines
7.6 KiB
Plaintext
/obj/item/projectile/beam
|
|
name = "laser"
|
|
icon_state = "laser"
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
|
damage = 40
|
|
damage_type = BURN
|
|
check_armour = "laser"
|
|
eyeblur = 4
|
|
var/frequency = 1
|
|
hitscan = 1
|
|
invisibility = 101 //beam projectiles are invisible as they are rendered by the effect engine
|
|
|
|
muzzle_type = /obj/effect/projectile/laser/muzzle
|
|
tracer_type = /obj/effect/projectile/laser/tracer
|
|
impact_type = /obj/effect/projectile/laser/impact
|
|
|
|
/obj/item/projectile/beam/practice
|
|
name = "laser"
|
|
icon_state = "laser"
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
|
damage = 0
|
|
damage_type = BURN
|
|
no_attack_log = 1
|
|
check_armour = "laser"
|
|
eyeblur = 2
|
|
|
|
/obj/item/projectile/beam/midlaser
|
|
damage = 40
|
|
armor_penetration = 10
|
|
|
|
/obj/item/projectile/beam/heavylaser
|
|
name = "heavy laser"
|
|
icon_state = "heavylaser"
|
|
damage = 60
|
|
armor_penetration = 30
|
|
|
|
muzzle_type = /obj/effect/projectile/laser_heavy/muzzle
|
|
tracer_type = /obj/effect/projectile/laser_heavy/tracer
|
|
impact_type = /obj/effect/projectile/laser_heavy/impact
|
|
|
|
/obj/item/projectile/beam/xray
|
|
name = "xray beam"
|
|
icon_state = "xray"
|
|
damage = 25
|
|
armor_penetration = 50
|
|
|
|
muzzle_type = /obj/effect/projectile/xray/muzzle
|
|
tracer_type = /obj/effect/projectile/xray/tracer
|
|
impact_type = /obj/effect/projectile/xray/impact
|
|
|
|
/obj/item/projectile/beam/pulse
|
|
name = "pulse"
|
|
icon_state = "u_laser"
|
|
damage = 50
|
|
armor_penetration = 30
|
|
|
|
muzzle_type = /obj/effect/projectile/laser_pulse/muzzle
|
|
tracer_type = /obj/effect/projectile/laser_pulse/tracer
|
|
impact_type = /obj/effect/projectile/laser_pulse/impact
|
|
|
|
/obj/item/projectile/beam/pulse/on_hit(var/atom/target, var/blocked = 0)
|
|
if(isturf(target))
|
|
target.ex_act(2)
|
|
..()
|
|
|
|
/obj/item/projectile/beam/emitter
|
|
name = "emitter beam"
|
|
icon_state = "emitter"
|
|
damage = 0 // The actual damage is computed in /code/modules/power/singularity/emitter.dm
|
|
|
|
muzzle_type = /obj/effect/projectile/emitter/muzzle
|
|
tracer_type = /obj/effect/projectile/emitter/tracer
|
|
impact_type = /obj/effect/projectile/emitter/impact
|
|
|
|
/obj/item/projectile/beam/lastertag/blue
|
|
name = "lasertag beam"
|
|
icon_state = "bluelaser"
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
|
damage = 0
|
|
no_attack_log = 1
|
|
damage_type = BURN
|
|
check_armour = "laser"
|
|
|
|
muzzle_type = /obj/effect/projectile/laser_blue/muzzle
|
|
tracer_type = /obj/effect/projectile/laser_blue/tracer
|
|
impact_type = /obj/effect/projectile/laser_blue/impact
|
|
|
|
/obj/item/projectile/beam/lastertag/blue/on_hit(var/atom/target, var/blocked = 0)
|
|
if(istype(target, /mob/living/carbon/human))
|
|
var/mob/living/carbon/human/M = target
|
|
if(istype(M.wear_suit, /obj/item/clothing/suit/redtag))
|
|
M.Weaken(5)
|
|
return 1
|
|
|
|
/obj/item/projectile/beam/lastertag/red
|
|
name = "lasertag beam"
|
|
icon_state = "laser"
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
|
damage = 0
|
|
no_attack_log = 1
|
|
damage_type = BURN
|
|
check_armour = "laser"
|
|
|
|
/obj/item/projectile/beam/lastertag/red/on_hit(var/atom/target, var/blocked = 0)
|
|
if(istype(target, /mob/living/carbon/human))
|
|
var/mob/living/carbon/human/M = target
|
|
if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag))
|
|
M.Weaken(5)
|
|
return 1
|
|
|
|
/obj/item/projectile/beam/lastertag/omni//A laser tag bolt that stuns EVERYONE
|
|
name = "lasertag beam"
|
|
icon_state = "omnilaser"
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
|
damage = 0
|
|
damage_type = BURN
|
|
check_armour = "laser"
|
|
|
|
muzzle_type = /obj/effect/projectile/laser_omni/muzzle
|
|
tracer_type = /obj/effect/projectile/laser_omni/tracer
|
|
impact_type = /obj/effect/projectile/laser_omni/impact
|
|
|
|
/obj/item/projectile/beam/lastertag/omni/on_hit(var/atom/target, var/blocked = 0)
|
|
if(istype(target, /mob/living/carbon/human))
|
|
var/mob/living/carbon/human/M = target
|
|
if((istype(M.wear_suit, /obj/item/clothing/suit/bluetag))||(istype(M.wear_suit, /obj/item/clothing/suit/redtag)))
|
|
M.Weaken(5)
|
|
return 1
|
|
|
|
/obj/item/projectile/beam/sniper
|
|
name = "sniper beam"
|
|
icon_state = "xray"
|
|
damage = 50
|
|
armor_penetration = 10
|
|
stun = 3
|
|
weaken = 3
|
|
stutter = 3
|
|
|
|
muzzle_type = /obj/effect/projectile/xray/muzzle
|
|
tracer_type = /obj/effect/projectile/xray/tracer
|
|
impact_type = /obj/effect/projectile/xray/impact
|
|
|
|
/obj/item/projectile/beam/stun
|
|
name = "stun beam"
|
|
icon_state = "stun"
|
|
nodamage = 1
|
|
taser_effect = 1
|
|
agony = 40
|
|
damage_type = HALLOSS
|
|
|
|
muzzle_type = /obj/effect/projectile/stun/muzzle
|
|
tracer_type = /obj/effect/projectile/stun/tracer
|
|
impact_type = /obj/effect/projectile/stun/impact
|
|
|
|
/obj/item/projectile/beam/gatlinglaser
|
|
name = "heavy laser"
|
|
icon_state = "heavylaser"
|
|
damage = 10
|
|
no_attack_log = 1
|
|
|
|
muzzle_type = /obj/effect/projectile/laser_omni/muzzle
|
|
tracer_type = /obj/effect/projectile/laser_omni/tracer
|
|
impact_type = /obj/effect/projectile/laser_omni/impact
|
|
|
|
/obj/item/projectile/beam/mousegun
|
|
name = "diffuse electrical arc"
|
|
icon_state = "stun"
|
|
nodamage = 1
|
|
damage_type = HALLOSS
|
|
|
|
muzzle_type = /obj/effect/projectile/stun/muzzle
|
|
tracer_type = /obj/effect/projectile/stun/tracer
|
|
impact_type = /obj/effect/projectile/stun/impact
|
|
|
|
/obj/item/projectile/beam/mousegun/on_impact(var/atom/A)
|
|
mousepulse(A, 1)
|
|
..()
|
|
|
|
/obj/item/projectile/beam/mousegun/proc/mousepulse(turf/epicenter, range, log=0)
|
|
if (!epicenter)
|
|
return
|
|
|
|
if (!istype(epicenter, /turf))
|
|
epicenter = get_turf(epicenter.loc)
|
|
|
|
for (var/mob/living/M in range(range, epicenter))
|
|
var/distance = get_dist(epicenter, M)
|
|
if (distance < 0)
|
|
distance = 0
|
|
if (distance <= range)
|
|
if (M.mob_size <= 2 && (M.find_type() & TYPE_ORGANIC))
|
|
M.visible_message("<span class='danger'>[M] bursts like a balloon!</span>")
|
|
M.gib()
|
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
|
s.set_up(3, 1, M)
|
|
s.start()
|
|
else if (iscarbon(M) && M.contents.len)
|
|
for (var/obj/item/weapon/holder/H in M.contents)
|
|
if (!H.contained)
|
|
continue
|
|
|
|
var/mob/living/A = H.contained
|
|
if (!istype(A))
|
|
continue
|
|
|
|
if (A.mob_size <= 2 && (A.find_type() & TYPE_ORGANIC))
|
|
H.release_mob()
|
|
A.visible_message("<span class='danger'>[A] bursts like a balloon!</span>")
|
|
A.gib()
|
|
|
|
M << 'sound/effects/basscannon.ogg'
|
|
return 1
|
|
|
|
/obj/item/projectile/beam/shotgun
|
|
name = "diffuse laser"
|
|
icon_state = "laser"
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
|
damage = 15
|
|
eyeblur = 4
|
|
|
|
muzzle_type = /obj/effect/projectile/laser/muzzle
|
|
tracer_type = /obj/effect/projectile/laser/tracer
|
|
impact_type = /obj/effect/projectile/laser/impact
|
|
|
|
/obj/item/projectile/beam/megaglaive
|
|
name = "thermal lance"
|
|
icon_state = "megaglaive"
|
|
damage = 6
|
|
incinerate = 5
|
|
armor_penetration = 10
|
|
no_attack_log = 1
|
|
|
|
muzzle_type = /obj/effect/projectile/solar/muzzle
|
|
tracer_type = /obj/effect/projectile/solar/tracer
|
|
impact_type = /obj/effect/projectile/solar/impact
|
|
|
|
/obj/item/projectile/beam/megaglaive/New()
|
|
effect_transform = new()
|
|
effect_transform.Scale(2)
|
|
src.transform = effect_transform
|
|
..()
|
|
|
|
/obj/item/projectile/beam/thermaldrill
|
|
name = "thermal lance"
|
|
icon_state = "megaglaive"
|
|
damage = 3
|
|
no_attack_log = 1
|
|
|
|
muzzle_type = /obj/effect/projectile/solar/muzzle
|
|
tracer_type = /obj/effect/projectile/solar/tracer
|
|
impact_type = /obj/effect/projectile/solar/impact
|
|
|
|
/obj/item/projectile/beam/thermaldrill/on_impact(var/atom/A)
|
|
if(isturf(A))
|
|
if(istype(A, /turf/simulated/mineral))
|
|
if(prob(75)) //likely because its a mining tool
|
|
var/turf/simulated/mineral/M = A
|
|
M.GetDrilled()
|
|
if(ismob(A))
|
|
var/mob/living/M = A
|
|
M.apply_effect(1, INCINERATE, 0)
|
|
..() |