Repathed /obj/item/projectile to /obj/projectile (#19693)

Repathed /obj/item/projectile to /obj/projectile, same as TG and Bay,
that's pretty much it.
This commit is contained in:
Fluffy
2024-07-27 10:09:46 +00:00
committed by GitHub
parent 2a8d6acd86
commit 3e1b9d4170
214 changed files with 1014 additions and 971 deletions
+1 -1
View File
@@ -190,7 +190,7 @@
attack_living(victim)
attack_time = world.time
/obj/effect/blob/bullet_act(var/obj/item/projectile/Proj)
/obj/effect/blob/bullet_act(var/obj/projectile/Proj)
if(!Proj)
return
+3 -3
View File
@@ -393,12 +393,12 @@
matter = list()
fire_sound = 'sound/weapons/gunshot/gunshot1.ogg'
projectile_type = /obj/item/projectile/chameleon
projectile_type = /obj/projectile/chameleon
charge_meter = 0
charge_cost = 20 //uses next to no power, since it's just holograms
max_shots = 50
var/obj/item/projectile/copy_projectile
var/obj/projectile/copy_projectile
var/global/list/gun_choices
/obj/item/gun/energy/chameleon/Initialize()
@@ -411,7 +411,7 @@
src.gun_choices[initial(G.name)] = gun_type
/obj/item/gun/energy/chameleon/consume_next_projectile()
var/obj/item/projectile/P = ..()
var/obj/projectile/P = ..()
if(P && ispath(copy_projectile))
P.name = initial(copy_projectile.name)
P.icon = initial(copy_projectile.icon)
+4 -4
View File
@@ -286,8 +286,8 @@
if(!material || unbreakable)
return
if(istype(source, /obj/item/projectile))
var/obj/item/projectile/P = source
if(istype(source, /obj/projectile))
var/obj/projectile/P = source
if(P.pass_flags & PASSGLASS)
if(material.opacity - 0.3 <= 0)
return // Lasers ignore 'fully' transparent material.
@@ -319,8 +319,8 @@
return ..()
if(material.reflectivity)
if(istype(damage_source, /obj/item/projectile/energy) || istype(damage_source, /obj/item/projectile/beam))
var/obj/item/projectile/P = damage_source
if(istype(damage_source, /obj/projectile/energy) || istype(damage_source, /obj/projectile/beam))
var/obj/projectile/P = damage_source
var/reflectchance = 40 - round(damage/3)
if(!(def_zone in list(BP_CHEST, BP_GROIN)))
@@ -404,7 +404,7 @@
else
var/turf/T = get_turf(user)
user.visible_message(SPAN_DANGER("\The [user] crackles with energy!"))
var/obj/item/projectile/beam/tesla/LE = new (T)
var/obj/projectile/beam/tesla/LE = new (T)
LE.launch_projectile(A, user.zone_sel? user.zone_sel.selecting : null, user)
spark(src, 3, GLOB.alldirs)
playsound(user.loc, 'sound/magic/LightningShock.ogg', 75, 1)
+1 -1
View File
@@ -70,7 +70,7 @@
/obj/item/tray/proc/attempt_load_item(var/obj/item/I, var/mob/user, var/messages = TRUE, var/click_params)
if(!I || (I in contents))
return
if(I == src || I.anchored || istype(I, /obj/item/projectile))
if(I == src || I.anchored || istype(I, /obj/projectile))
return
if(istype(I, /obj/item/tray))
var/obj/item/tray/T = I
+9 -9
View File
@@ -11,7 +11,7 @@
cell_increase = 0
capacity_increase = -1
fire_sound = 'sound/weapons/kinetic_accel.ogg'
projectile_type = /obj/item/projectile/kinetic
projectile_type = /obj/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 1, TECH_PHORON = 2)
/obj/item/custom_ka_upgrade/barrels/barrel02
@@ -27,7 +27,7 @@
cell_increase = 0
capacity_increase = -2
fire_sound = 'sound/weapons/kinetic_accel.ogg'
projectile_type = /obj/item/projectile/kinetic
projectile_type = /obj/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 3, TECH_PHORON = 2)
/obj/item/custom_ka_upgrade/barrels/barrel03
@@ -43,7 +43,7 @@
cell_increase = 0
capacity_increase = -3
fire_sound = 'sound/weapons/resonator_fire.ogg'
projectile_type = /obj/item/projectile/kinetic
projectile_type = /obj/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 3,TECH_MAGNET = 3, TECH_PHORON = 3)
@@ -60,7 +60,7 @@
cell_increase = 0
capacity_increase = -4
fire_sound = 'sound/weapons/pulse.ogg'
projectile_type = /obj/item/projectile/kinetic
projectile_type = /obj/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 3,TECH_MAGNET = 5, TECH_PHORON = 4)
/obj/item/custom_ka_upgrade/barrels/barrel05
@@ -76,7 +76,7 @@
cell_increase = 0
capacity_increase = -5
fire_sound = 'sound/weapons/resonator_blast.ogg'
projectile_type = /obj/item/projectile/kinetic
projectile_type = /obj/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 5,TECH_MAGNET = 6, TECH_PHORON = 5)
/obj/item/custom_ka_upgrade/barrels/illegal
@@ -92,7 +92,7 @@
cell_increase = 0
capacity_increase = 0
fire_sound = 'sound/weapons/lasercannonfire.ogg'
projectile_type = /obj/item/projectile/beam/midlaser
projectile_type = /obj/projectile/beam/midlaser
origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 4,TECH_MAGNET = 4,TECH_COMBAT = 5,TECH_ILLEGAL = 5)
/obj/item/custom_ka_upgrade/barrels/barrel02_alt
@@ -109,7 +109,7 @@
capacity_increase = -2
aoe_increase = -100
fire_sound = 'sound/weapons/kinetic_accel.ogg'
projectile_type = /obj/item/projectile/kinetic
projectile_type = /obj/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 3, TECH_PHORON = 2)
/obj/item/custom_ka_upgrade/barrels/phoron
@@ -125,7 +125,7 @@
cell_increase = 0
capacity_increase = -5
fire_sound = 'sound/weapons/marauder.ogg'
projectile_type = /obj/item/projectile/kinetic
projectile_type = /obj/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 5,TECH_MAGNET = 6, TECH_PHORON = 6)
disallow_chip = TRUE
@@ -142,6 +142,6 @@
cell_increase = 0
capacity_increase = -5
fire_sound = 'sound/weapons/pulse2.ogg'
projectile_type = /obj/item/projectile/kinetic
projectile_type = /obj/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 8,TECH_ENGINEERING = 8,TECH_MAGNET = 8, TECH_ILLEGAL = 8)
disallow_chip = TRUE
+6 -6
View File
@@ -28,7 +28,7 @@
dispersion = list(0)
reliability = 100
var/obj/item/projectile/projectile_type = /obj/item/projectile/kinetic
var/obj/projectile/projectile_type = /obj/projectile/kinetic
needspin = FALSE
@@ -242,8 +242,8 @@
if(T)
var/datum/gas_mixture/environment = T.return_air()
var/pressure = (environment)? environment.return_pressure() : 0
if(ispath(installed_barrel.projectile_type, /obj/item/projectile/kinetic))
var/obj/item/projectile/kinetic/shot_projectile = new installed_barrel.projectile_type(get_turf(src))
if(ispath(installed_barrel.projectile_type, /obj/projectile/kinetic))
var/obj/projectile/kinetic/shot_projectile = new installed_barrel.projectile_type(get_turf(src))
shot_projectile.damage = damage_increase
shot_projectile.range = range_increase
shot_projectile.aoe = max(1, aoe_increase)
@@ -255,8 +255,8 @@
shot_projectile.base_damage = damage_increase
return shot_projectile
if(ispath(installed_barrel.projectile_type, /obj/item/projectile/beam))
var/obj/item/projectile/beam/shot_projectile = new installed_barrel.projectile_type(get_turf(src))
if(ispath(installed_barrel.projectile_type, /obj/projectile/beam))
var/obj/projectile/beam/shot_projectile = new installed_barrel.projectile_type(get_turf(src))
shot_projectile.damage = damage_increase
shot_projectile.range = range_increase
return shot_projectile
@@ -549,7 +549,7 @@
capacity_increase = 0
mod_limit_increase = 0
var/fire_sound = 'sound/weapons/kinetic_accel.ogg'
var/projectile_type = /obj/item/projectile/kinetic
var/projectile_type = /obj/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 2,TECH_ENGINEERING = 2,TECH_MAGNET = 2)
/obj/item/custom_ka_upgrade/upgrade_chips
+6 -6
View File
@@ -1,5 +1,5 @@
//Projectiles
/obj/item/projectile/kinetic
/obj/projectile/kinetic
name = "kinetic force"
icon_state = null
damage = 0 //Base damage handled elsewhere.
@@ -11,21 +11,21 @@
var/aoe_shot = FALSE
ignore_source_check = TRUE
/obj/item/projectile/kinetic/mech
/obj/projectile/kinetic/mech
damage = 40
aoe = 5
/obj/item/projectile/kinetic/mech/burst
/obj/projectile/kinetic/mech/burst
damage = 25
/obj/item/projectile/kinetic/on_impact(var/atom/A)
/obj/projectile/kinetic/on_impact(var/atom/A)
var/turf/target_turf = get_turf(A)
if(!target_turf)
target_turf = get_turf(src)
if(istype(target_turf))
strike_thing(target_turf)
/obj/item/projectile/kinetic/proc/do_damage(var/turf/T, var/living_damage = 1, var/mineral_damage = 1)
/obj/projectile/kinetic/proc/do_damage(var/turf/T, var/living_damage = 1, var/mineral_damage = 1)
if(!istype(T)) return
var/datum/gas_mixture/environment = T.return_air()
living_damage *= max(1 - (environment.return_pressure() / 100) * 0.75, 0)
@@ -37,7 +37,7 @@
var/turf/simulated/mineral/M = T
M.kinetic_hit(mineral_damage)
/obj/item/projectile/kinetic/proc/strike_thing(var/turf/target_turf)
/obj/projectile/kinetic/proc/strike_thing(var/turf/target_turf)
for(var/new_target in RANGE_TURFS(aoe, target_turf))
var/turf/aoe_turf = new_target
do_damage(aoe_turf, max(base_damage - base_damage * get_dist(aoe_turf, target_turf) * 0.25, 0), damage)
@@ -96,19 +96,19 @@
use_external_power = TRUE
self_recharge = TRUE
has_safety = FALSE
projectile_type = /obj/item/projectile/beam/heavylaser/mech
projectile_type = /obj/projectile/beam/heavylaser/mech
/obj/item/gun/energy/pulse/mounted/mech
use_external_power = TRUE
self_recharge = TRUE
has_safety = FALSE
projectile_type = /obj/item/projectile/beam/pulse/mech
projectile_type = /obj/projectile/beam/pulse/mech
/obj/item/gun/energy/xray/mounted/mech
use_external_power = TRUE
self_recharge = TRUE
has_safety = FALSE
projectile_type = /obj/item/projectile/beam/xray/mech
projectile_type = /obj/projectile/beam/xray/mech
/*Launchers*/
@@ -409,7 +409,7 @@
else
icon_state = "shield_null"
/obj/aura/mechshield/bullet_act(obj/item/projectile/P, var/def_zone)
/obj/aura/mechshield/bullet_act(obj/projectile/P, var/def_zone)
if(!active)
return
if(shields?.charge)
+1 -1
View File
@@ -354,7 +354,7 @@
/obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if (istype(mover,/obj/item) && mover.throwing)
var/obj/item/I = mover
if(istype(I, /obj/item/projectile))
if(istype(I, /obj/projectile))
return
if(prob(50))
I.forceMove(src.loc)
+5 -5
View File
@@ -208,22 +208,22 @@
connect()
update_icon()
/obj/machinery/portable_atmospherics/hydroponics/bullet_act(var/obj/item/projectile/Proj)
/obj/machinery/portable_atmospherics/hydroponics/bullet_act(var/obj/projectile/Proj)
//Don't act on seeds like dionaea that shouldn't change.
if(seed && seed.get_trait(TRAIT_IMMUTABLE) > 0)
return
//Override for somatoray projectiles.
if(istype(Proj ,/obj/item/projectile/energy/floramut)&& prob(20))
if(istype(Proj, /obj/item/projectile/energy/floramut/gene))
var/obj/item/projectile/energy/floramut/gene/G = Proj
if(istype(Proj ,/obj/projectile/energy/floramut)&& prob(20))
if(istype(Proj, /obj/projectile/energy/floramut/gene))
var/obj/projectile/energy/floramut/gene/G = Proj
if(seed)
seed = seed.diverge_mutate_gene(G.gene, get_turf(loc)) //get_turf just in case it's not in a turf.
else
mutate(1)
return
else if(istype(Proj ,/obj/item/projectile/energy/florayield) && prob(20))
else if(istype(Proj ,/obj/projectile/energy/florayield) && prob(20))
yield_mod = min(10,yield_mod+rand(1,2))
return
+4 -4
View File
@@ -129,16 +129,16 @@ var/list/mineral_can_smooth_with = list(
GetDrilled()
SSicon_smooth.add_to_queue_neighbors(src)
/turf/simulated/mineral/bullet_act(var/obj/item/projectile/Proj)
if(istype(Proj, /obj/item/projectile/beam/plasmacutter))
var/obj/item/projectile/beam/plasmacutter/PC_beam = Proj
/turf/simulated/mineral/bullet_act(var/obj/projectile/Proj)
if(istype(Proj, /obj/projectile/beam/plasmacutter))
var/obj/projectile/beam/plasmacutter/PC_beam = Proj
var/list/cutter_results = PC_beam.pass_check(src)
. = cutter_results[1]
if(cutter_results[2]) // the cutter mined the turf, just pass on
return
// Emitter blasts
if(istype(Proj, /obj/item/projectile/beam/emitter))
if(istype(Proj, /obj/projectile/beam/emitter))
emitter_blasts_taken++
if(emitter_blasts_taken >= 3)
@@ -28,7 +28,7 @@
sleeping = 0
willfully_sleeping = FALSE
/mob/living/carbon/bullet_act(var/obj/item/projectile/P, var/def_zone)
/mob/living/carbon/bullet_act(var/obj/projectile/P, var/def_zone)
..(P, def_zone)
var/show_ssd
var/mob/living/carbon/human/H
@@ -2104,7 +2104,7 @@
return BULLET_IMPACT_METAL
return BULLET_IMPACT_MEAT
/mob/living/carbon/human/bullet_impact_visuals(var/obj/item/projectile/P, var/def_zone, var/damage, var/blocked_ratio)
/mob/living/carbon/human/bullet_impact_visuals(var/obj/projectile/P, var/def_zone, var/damage, var/blocked_ratio)
..()
if(blocked_ratio > 0.7)
return
@@ -8,7 +8,7 @@ emp_act
*/
/mob/living/carbon/human/bullet_act(var/obj/item/projectile/P, var/def_zone)
/mob/living/carbon/human/bullet_act(var/obj/projectile/P, var/def_zone)
var/species_check = src.species.bullet_act(P, def_zone, src)
if(species_check)
@@ -770,7 +770,7 @@
if(!.)
return move_trail
/datum/species/proc/bullet_act(var/obj/item/projectile/P, var/def_zone, var/mob/living/carbon/human/H)
/datum/species/proc/bullet_act(var/obj/projectile/P, var/def_zone, var/mob/living/carbon/human/H)
return 0
/datum/species/proc/handle_speech_problems(mob/living/carbon/human/H, message, say_verb, message_mode, message_range)
@@ -392,8 +392,8 @@ var/global/list/golem_types = list(
golem_designation = "Glass"
/datum/species/golem/glass/bullet_act(var/obj/item/projectile/P, var/def_zone, var/mob/living/carbon/human/H)
if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam))
/datum/species/golem/glass/bullet_act(var/obj/projectile/P, var/def_zone, var/mob/living/carbon/human/H)
if(istype(P, /obj/projectile/energy) || istype(P, /obj/projectile/beam))
var/reflectchance = 50 - round(P.damage/3)
if(prob(reflectchance))
H.visible_message(SPAN_DANGER("The [P.name] gets reflected by [H]!"), \
@@ -598,8 +598,8 @@ var/global/list/golem_types = list(
H.update_dna()
..()
/datum/species/golem/diamond/bullet_act(var/obj/item/projectile/P, var/def_zone, var/mob/living/carbon/human/H)
if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam))
/datum/species/golem/diamond/bullet_act(var/obj/projectile/P, var/def_zone, var/mob/living/carbon/human/H)
if(istype(P, /obj/projectile/energy) || istype(P, /obj/projectile/beam))
var/reflectchance = 80 - round(P.damage/3)
if(prob(reflectchance))
H.visible_message(SPAN_DANGER("The [P.name] gets reflected by [H]!"), \
@@ -246,7 +246,7 @@
..(-abs(amount)) // Heals them
return
/mob/living/carbon/slime/bullet_act(var/obj/item/projectile/Proj)
/mob/living/carbon/slime/bullet_act(var/obj/projectile/Proj)
attacked += 10
..(Proj)
return FALSE
+2 -2
View File
@@ -23,7 +23,7 @@
if(armor)
. += armor
/mob/living/bullet_act(var/obj/item/projectile/P, var/def_zone, var/used_weapon = null)
/mob/living/bullet_act(var/obj/projectile/P, var/def_zone, var/used_weapon = null)
//Being hit while using a cloaking device
var/obj/item/cloaking_device/C = locate(/obj/item/cloaking_device) in src
@@ -86,7 +86,7 @@
break
//For visuals, blood splatters and so on.
/mob/living/proc/bullet_impact_visuals(var/obj/item/projectile/P, var/def_zone, var/damage, var/blocked_ratio)
/mob/living/proc/bullet_impact_visuals(var/obj/projectile/P, var/def_zone, var/damage, var/blocked_ratio)
var/list/impact_sounds = LAZYACCESS(P.impact_sounds, get_bullet_impact_effect_type(def_zone))
if(length(impact_sounds))
playsound(src, pick(impact_sounds), 75)
@@ -64,7 +64,7 @@
charge_meter = 0
max_shots = 20
charge_cost = 100
projectile_type = /obj/item/projectile/bullet/pistol/medium/ap
projectile_type = /obj/projectile/bullet/pistol/medium/ap
self_recharge = 1
use_external_power = 1
recharge_time = 5
@@ -8,7 +8,7 @@
charge_meter = FALSE
max_shots = 10
charge_cost = 300
projectile_type = /obj/item/projectile/bullet/gyro
projectile_type = /obj/projectile/bullet/gyro
self_recharge = TRUE
use_external_power = TRUE
recharge_time = 5
@@ -567,7 +567,7 @@
/mob/living/silicon/robot/restrained()
return FALSE
/mob/living/silicon/robot/bullet_act(var/obj/item/projectile/Proj)
/mob/living/silicon/robot/bullet_act(var/obj/projectile/Proj)
..(Proj)
if(prob(75) && Proj.damage > 0)
spark_system.queue()
+1 -1
View File
@@ -138,7 +138,7 @@
/mob/living/silicon/IsAdvancedToolUser()
return TRUE
/mob/living/silicon/bullet_act(obj/item/projectile/Proj)
/mob/living/silicon/bullet_act(obj/projectile/Proj)
if(!Proj.nodamage)
switch(Proj.damage_type)
if(DAMAGE_BRUTE)
@@ -22,8 +22,8 @@
resistance = 10
construct_spells = list(/spell/aoe_turf/conjure/forcewall/lesser)
/mob/living/simple_animal/construct/armored/bullet_act(var/obj/item/projectile/P)
if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam))
/mob/living/simple_animal/construct/armored/bullet_act(var/obj/projectile/P)
if(istype(P, /obj/projectile/energy) || istype(P, /obj/projectile/beam))
var/reflectchance = 80 - round(P.damage / 3)
if(prob(reflectchance))
adjustBruteLoss(P.damage * 0.3)
@@ -239,7 +239,7 @@
unburrow()
..()
/mob/living/simple_animal/ice_catcher/bullet_act(obj/item/projectile/P, def_zone)
/mob/living/simple_animal/ice_catcher/bullet_act(obj/projectile/P, def_zone)
if(burrowed && (stat != DEAD))
unburrow()
..()
@@ -185,7 +185,7 @@
. = ..()
set_flee_target(src.loc)
/mob/living/simple_animal/cat/bullet_act(var/obj/item/projectile/proj)
/mob/living/simple_animal/cat/bullet_act(var/obj/projectile/proj)
. = ..()
set_flee_target(proj.firer? proj.firer : src.loc)
@@ -298,7 +298,7 @@
/mob/living/simple_animal/hostile/cybernetic_schlorrgo/Initialize()
. = ..()
if(prob(25))
projectiletype = /obj/item/projectile/beam/pistol
projectiletype = /obj/projectile/beam/pistol
projectilesound = 'sound/weapons/laser1.ogg'
rapid = FALSE
ranged = TRUE
@@ -136,7 +136,7 @@
smart_ranged = TRUE
ranged = TRUE
projectiletype = /obj/item/projectile/beam/tesla/plasmageist
projectiletype = /obj/projectile/beam/tesla/plasmageist
projectilesound = 'sound/magic/LightningShock.ogg'
pass_flags = PASSTABLE|PASSRAILING
@@ -168,7 +168,7 @@
/mob/living/simple_animal/hostile/plasmageist/ex_act(severity)
return
/obj/item/projectile/beam/tesla/plasmageist/on_impact(atom/target)
/obj/projectile/beam/tesla/plasmageist/on_impact(atom/target)
. = ..()
if(isliving(target))
explosion(target, -1, 0, 2)
@@ -274,7 +274,7 @@
instant_aggro(1)
/mob/living/simple_animal/hostile/bear/bullet_act(obj/item/projectile/P, def_zone)//Teleport around when shot, so its harder to burst it down with a carbine
/mob/living/simple_animal/hostile/bear/bullet_act(obj/projectile/P, def_zone)//Teleport around when shot, so its harder to burst it down with a carbine
var/healthbefore = health
..()
spawn(1)
@@ -508,7 +508,7 @@
forceMove(target)
spark_system.queue()
/mob/living/simple_animal/hostile/bear/spatial/bullet_act(obj/item/projectile/P, def_zone)//Teleport around when shot, so its harder to burst it down with a carbine
/mob/living/simple_animal/hostile/bear/spatial/bullet_act(obj/projectile/P, def_zone)//Teleport around when shot, so its harder to burst it down with a carbine
..(P, def_zone)
if (prob(P.damage*1.5))//Bear has a good chance of teleporting when shot, making it harder to burst down
teleport_tactical()
@@ -28,7 +28,7 @@
melee_damage_upper = 45
armor_penetration = 30
ranged = 1
projectiletype = /obj/item/projectile/bonedart/ling
projectiletype = /obj/projectile/bonedart/ling
projectilesound = 'sound/weapons/bloodyslice.ogg'
resist_mod = 15
mob_size = 25
@@ -310,7 +310,7 @@
change_stance(HOSTILE_STANCE_IDLE)
audible_emote("[pick(sad_emote)].",0)
/mob/living/simple_animal/hostile/commanded/bullet_act(var/obj/item/projectile/P, var/def_zone)
/mob/living/simple_animal/hostile/commanded/bullet_act(var/obj/projectile/P, var/def_zone)
..()
// We forgive our master
@@ -33,7 +33,7 @@
ranged = TRUE
projectilesound = 'sound/weapons/taser2.ogg'
projectiletype = /obj/item/projectile/beam/hivebot/harmless
projectiletype = /obj/projectile/beam/hivebot/harmless
attacktext = "harmlessly clawed"
harm_intent_damage = 5 // the damage we take
@@ -15,7 +15,7 @@
attacktext = "slashed"
attack_sound = /singleton/sound_category/hivebot_melee
projectilesound = 'sound/weapons/gunshot/gunshot_suppressed.ogg'
projectiletype = /obj/item/projectile/bullet/pistol/hivebotspike
projectiletype = /obj/projectile/bullet/pistol/hivebotspike
organ_names = list("head", "core", "side thruster", "bottom thruster")
faction = "hivebot"
min_oxy = 0
@@ -81,9 +81,8 @@
else
return "blood_overlay_armed"
/mob/living/simple_animal/hostile/hivebot/bullet_act(var/obj/item/projectile/Proj)
if(istype(Proj, /obj/item/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/item/projectile/beam/hivebot))
Proj.no_attack_log = 1
/mob/living/simple_animal/hostile/hivebot/bullet_act(var/obj/projectile/Proj)
if(istype(Proj, /obj/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/projectile/beam/hivebot))
return PROJECTILE_CONTINUE
else
return ..(Proj)
@@ -195,9 +194,8 @@
has_exploded = TRUE
addtimer(CALLBACK(src, PROC_REF(burst)), 20)
/mob/living/simple_animal/hostile/hivebot/bomber/bullet_act(var/obj/item/projectile/Proj)
if(istype(Proj, /obj/item/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/item/projectile/beam/hivebot))
Proj.no_attack_log = 1
/mob/living/simple_animal/hostile/hivebot/bomber/bullet_act(var/obj/projectile/Proj)
if(istype(Proj, /obj/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/projectile/beam/hivebot))
return PROJECTILE_CONTINUE
else if(!has_exploded)
has_exploded = TRUE
@@ -217,5 +215,5 @@
ranged = 1
/mob/living/simple_animal/hostile/hivebot/range/rapid
projectiletype = /obj/item/projectile/bullet/pistol/hivebotspike/needle
projectiletype = /obj/projectile/bullet/pistol/hivebotspike/needle
rapid = 1
@@ -15,7 +15,7 @@
maxHealth = 300
blood_type = COLOR_OIL
projectilesound = 'sound/weapons/taser2.ogg'
projectiletype = /obj/item/projectile/beam/hivebot
projectiletype = /obj/projectile/beam/hivebot
wander = 0
stop_automated_movement = 1
status_flags = 0
@@ -208,9 +208,8 @@
/mob/living/simple_animal/hostile/hivebotbeacon/AirflowCanMove(n)
return 0
/mob/living/simple_animal/hostile/hivebotbeacon/bullet_act(var/obj/item/projectile/Proj)
if(istype(Proj, /obj/item/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/item/projectile/beam/hivebot))
Proj.no_attack_log = 1
/mob/living/simple_animal/hostile/hivebotbeacon/bullet_act(var/obj/projectile/Proj)
if(istype(Proj, /obj/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/projectile/beam/hivebot))
return PROJECTILE_CONTINUE
else
..(Proj)
@@ -341,7 +340,7 @@
################*/
/mob/living/simple_animal/hostile/hivebotbeacon/incendiary
projectiletype = /obj/item/projectile/beam/hivebot/incendiary
projectiletype = /obj/projectile/beam/hivebot/incendiary
projectilesound = 'sound/weapons/plasma_cutter.ogg'
rapid = 0
@@ -1,4 +1,4 @@
/obj/item/projectile/beam/hivebot
/obj/projectile/beam/hivebot
name = "electrical discharge"
damage = 20
damage_type = DAMAGE_BURN
@@ -8,13 +8,13 @@
tracer_type = /obj/effect/projectile/tracer/stun
impact_type = /obj/effect/projectile/impact/stun
/obj/item/projectile/beam/hivebot/harmless
/obj/projectile/beam/hivebot/harmless
name = "harmless electrical discharge"
damage = 0
damage_type = DAMAGE_PAIN
agony = 0
/obj/item/projectile/beam/hivebot/incendiary
/obj/projectile/beam/hivebot/incendiary
name = "archaic energy welder"
damage_type = DAMAGE_BURN
damage = 20
@@ -14,7 +14,7 @@
ranged = 1
attacktext = "skewered"
projectilesound = 'sound/weapons/lasercannonfire.ogg'
projectiletype = /obj/item/projectile/beam/hivebot/incendiary/heavy
projectiletype = /obj/projectile/beam/hivebot/incendiary/heavy
organ_names = list("head", "core", "side thruster", "harvesting array")
faction = "hivebot"
min_oxy = 0
@@ -72,9 +72,8 @@
/mob/living/simple_animal/hostile/retaliate/hivebotharvester/AirflowCanMove(n)
return 0
/mob/living/simple_animal/hostile/retaliate/hivebotharvester/bullet_act(var/obj/item/projectile/Proj)
if(istype(Proj, /obj/item/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/item/projectile/beam/hivebot))
Proj.no_attack_log = 1
/mob/living/simple_animal/hostile/retaliate/hivebotharvester/bullet_act(var/obj/projectile/Proj)
if(istype(Proj, /obj/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/projectile/beam/hivebot))
return PROJECTILE_CONTINUE
else
return ..(Proj)
@@ -1,4 +1,4 @@
/obj/item/projectile/beam/hivebot/incendiary/heavy
/obj/projectile/beam/hivebot/incendiary/heavy
name = "archaic mining laser"
damage = 25
incinerate = 10
@@ -1,11 +1,11 @@
/obj/item/projectile/bullet/pistol/hivebotspike
/obj/projectile/bullet/pistol/hivebotspike
name = "spike"
damage = 10
armor_penetration = 40
sharp = 1
embed = 0
/obj/item/projectile/bullet/pistol/hivebotspike/needle
/obj/projectile/bullet/pistol/hivebotspike/needle
name = "needle"
damage = 5
armor_penetration = 60
@@ -120,7 +120,7 @@
change_stance(HOSTILE_STANCE_ATTACKING)
visible_message(SPAN_WARNING("\The [src] gets taunted by \the [H] and begins to retaliate!"))
/mob/living/simple_animal/hostile/bullet_act(var/obj/item/projectile/P, var/def_zone)
/mob/living/simple_animal/hostile/bullet_act(var/obj/projectile/P, var/def_zone)
..()
if (ismob(P.firer) && target_mob != P.firer)
target_mob = P.firer
@@ -353,7 +353,7 @@
return FALSE
var/target_hit = FALSE
var/flags = ispath(projectiletype, /obj/item/projectile/beam) ? PASSTABLE|PASSGLASS|PASSGRILLE : PASSTABLE
var/flags = ispath(projectiletype, /obj/projectile/beam) ? PASSTABLE|PASSGLASS|PASSGRILLE : PASSTABLE
for(var/V in check_trajectory(target_mob, src, pass_flags=flags))
if(V == target_mob)
target_hit = TRUE
@@ -376,7 +376,7 @@
if(target == start)
return
var/obj/item/projectile/A = new projectiletype(user.loc)
var/obj/projectile/A = new projectiletype(user.loc)
playsound(user, projectilesound, 100, 1)
if(!A) return
var/def_zone = get_exposed_defense_zone(target)
@@ -22,7 +22,7 @@
maxHealth = 300
blood_type = COLOR_OIL
speed = 8
projectiletype = /obj/item/projectile/beam/drone
projectiletype = /obj/projectile/beam/drone
projectilesound = 'sound/weapons/laser3.ogg'
destroy_surroundings = 0
var/datum/effect_system/ion_trail/ion_trail
@@ -67,7 +67,7 @@
set_light(1.2, 3, LIGHT_COLOR_BLUE)
if(prob(5))
projectiletype = /obj/item/projectile/beam/pulse/drone
projectiletype = /obj/projectile/beam/pulse/drone
projectilesound = 'sound/weapons/pulse2.ogg'
ion_trail = new(src)
ion_trail.start()
@@ -352,10 +352,10 @@
return ..()
/obj/item/projectile/beam/drone
/obj/projectile/beam/drone
damage = 15
/obj/item/projectile/beam/pulse/drone
/obj/projectile/beam/pulse/drone
damage = 10
/mob/living/simple_animal/hostile/icarus_drone/malf
@@ -120,7 +120,7 @@
// Copy Mimic
//
var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/item/projectile/animate)
var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/projectile/animate)
/mob/living/simple_animal/hostile/mimic/copy
@@ -44,7 +44,7 @@
projectilesound = 'sound/weapons/laser1.ogg'
ranged = 1
rapid = 1
projectiletype = /obj/item/projectile/beam
projectiletype = /obj/projectile/beam
corpse = /obj/effect/landmark/mobcorpse/pirate/ranged
weapon1 = /obj/item/gun/energy/laser
@@ -122,13 +122,13 @@
rapid = TRUE
projectilesound = 'sound/weapons/gunshot/gunshot_saw.ogg'
projectiletype = /obj/item/projectile/bullet/rifle/a762
projectiletype = /obj/projectile/bullet/rifle/a762
casingtype = /obj/item/ammo_casing/a762/spent
/mob/living/simple_animal/hostile/republicon/ranged/Initialize()
. = ..()
if(prob(25))
projectiletype = /obj/item/projectile/bullet/gyro/law
projectiletype = /obj/projectile/bullet/gyro/law
projectilesound = 'sound/effects/Explosion1.ogg'
rapid = FALSE
casingtype = null
@@ -177,7 +177,7 @@
speed = 1
ranged = TRUE
projectiletype = /obj/item/projectile/beam/pistol
projectiletype = /obj/projectile/beam/pistol
projectilesound = 'sound/weapons/laser1.ogg'
emote_see = list("examines","hovers","blinks")
@@ -26,7 +26,7 @@
attacktext = "chomped"
attack_sound = 'sound/weapons/bite.ogg'
speed = 4
projectiletype = /obj/item/projectile/beam/cavern
projectiletype = /obj/projectile/beam/cavern
projectilesound = 'sound/magic/lightningbolt.ogg'
break_stuff_probability = 2
@@ -50,7 +50,7 @@
/mob/living/simple_animal/hostile/retaliate/cavern_dweller/Allow_Spacemove(var/check_drift = 0)
return 1
/obj/item/projectile/beam/cavern
/obj/projectile/beam/cavern
name = "electrical discharge"
icon_state = "stun"
damage_type = DAMAGE_BURN
@@ -67,7 +67,7 @@
else
..()
/obj/item/projectile/beam/cavern/on_hit(var/atom/target, var/blocked = 0)
/obj/projectile/beam/cavern/on_hit(var/atom/target, var/blocked = 0)
if(ishuman(target))
var/mob/living/carbon/human/M = target
var/shock_damage = rand(10,20)
@@ -95,7 +95,7 @@
a_intent = I_HURT
speak_emote = list("chirps","buzzes","whirrs")
emote_hear = list("chirps cheerfully","buzzes","whirrs","hums placidly","chirps","hums")
projectiletype = /obj/item/projectile/beam/plasmacutter
projectiletype = /obj/projectile/beam/plasmacutter
projectilesound = 'sound/weapons/plasma_cutter.ogg'
destroy_surroundings = FALSE
min_oxy = 0
@@ -44,7 +44,7 @@
corpse = /obj/effect/landmark/mobcorpse/russian/ranged
weapon1 = /obj/item/gun/projectile/revolver/mateba
ranged = 1
projectiletype = /obj/item/projectile/bullet
projectiletype = /obj/projectile/bullet
projectilesound = 'sound/weapons/gunshot/gunshot1.ogg'
casingtype = /obj/item/ammo_casing/a357
smart_ranged = TRUE
@@ -340,7 +340,7 @@
minbodytemp = 0
ranged = 1
projectilesound = 'sound/magic/WandODeath.ogg'
projectiletype = /obj/item/projectile/energy/thoughtbubble
projectiletype = /obj/projectile/energy/thoughtbubble
speak_emote = list("gargles")
emote_hear = list("gargles")
emote_see = list("ooozes","pulses","drips","pumps")
@@ -358,7 +358,7 @@
/mob/living/simple_animal/hostile/greatwormking/Move()
return
/obj/item/projectile/energy/thoughtbubble
/obj/projectile/energy/thoughtbubble
name = "psionic blast"
icon_state = "ion"
nodamage = TRUE
@@ -391,7 +391,7 @@
"You've got a bad feeling about this."
)
/obj/item/projectile/energy/thoughtbubble/on_impact(var/atom/A)
/obj/projectile/energy/thoughtbubble/on_impact(var/atom/A)
..()
if(istype(A, /mob/living))
var/mob/living/L = A
@@ -222,7 +222,7 @@
has_exploded = TRUE
addtimer(CALLBACK(src, PROC_REF(explode)), 5)
/mob/living/simple_animal/hostile/carp/bloater/bullet_act(var/obj/item/projectile/Proj)
/mob/living/simple_animal/hostile/carp/bloater/bullet_act(var/obj/projectile/Proj)
if(!has_exploded)
has_exploded = TRUE
explode()
@@ -78,7 +78,7 @@
visible_message(SPAN_WARNING("[user] gently taps [src] with the [attacking_item]."))
/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(var/obj/item/projectile/Proj)
/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(var/obj/projectile/Proj)
if(!Proj) return
if(prob(65))
src.health -= Proj.damage
@@ -114,7 +114,7 @@
icon_living = "syndicateranged"
casingtype = /obj/item/ammo_casing/c10mm
projectilesound = 'sound/weapons/gunshot/gunshot_light.ogg'
projectiletype = /obj/item/projectile/bullet/pistol/medium
projectiletype = /obj/projectile/bullet/pistol/medium
weapon1 = /obj/item/gun/projectile/automatic/c20r
@@ -62,7 +62,7 @@
/mob/living/simple_animal/hostile/vannatusk/proc/fire_spike(var/mob/living/target_mob)
visible_message(SPAN_DANGER("\The [src] fires a spike at [target_mob]!"))
playsound(get_turf(src), 'sound/weapons/bloodyslice.ogg', 50, 1)
var/obj/item/projectile/bonedart/A = new /obj/item/projectile/bonedart(get_turf(src))
var/obj/projectile/bonedart/A = new /obj/projectile/bonedart(get_turf(src))
var/def_zone = get_exposed_defense_zone(target_mob)
A.launch_projectile(target_mob, def_zone)
@@ -38,7 +38,7 @@
else
return list("???")
/mob/living/simple_animal/illusion/bullet_act(obj/item/projectile/P)
/mob/living/simple_animal/illusion/bullet_act(obj/projectile/P)
if(!P)
return
@@ -254,7 +254,7 @@
return
//Bullets
/mob/living/simple_animal/parrot/bullet_act(var/obj/item/projectile/Proj)
/mob/living/simple_animal/parrot/bullet_act(var/obj/projectile/Proj)
..()
if(!stat && !client)
if(parrot_state == PARROT_PERCH)
@@ -651,7 +651,7 @@
if(ismob(AM.throwing?.thrower?.resolve()))
handle_attack_by(AM.throwing?.thrower?.resolve())
/mob/living/simple_animal/bullet_act(obj/item/projectile/P, def_zone)
/mob/living/simple_animal/bullet_act(obj/projectile/P, def_zone)
. = ..()
if(ismob(P.firer))
handle_attack_by(P.firer)
@@ -962,7 +962,7 @@
/mob/living/simple_animal/get_digestion_product()
return /singleton/reagent/nutriment
/mob/living/simple_animal/bullet_impact_visuals(var/obj/item/projectile/P, var/def_zone, var/damage)
/mob/living/simple_animal/bullet_impact_visuals(var/obj/projectile/P, var/def_zone, var/damage)
..()
switch(get_bullet_impact_effect_type(def_zone))
if(BULLET_IMPACT_MEAT)
@@ -52,7 +52,7 @@
// "Stun" weapons can cause minor damage to components (short-circuits?)
// "Burn" damage is equally strong against internal components and exterior casing
// "Brute" damage mostly damages the casing.
/obj/item/modular_computer/bullet_act(var/obj/item/projectile/Proj)
/obj/item/modular_computer/bullet_act(var/obj/projectile/Proj)
switch(Proj.damage_type)
if(DAMAGE_BRUTE)
take_damage(Proj.damage, Proj.damage / 2)
@@ -1,5 +1,5 @@
/obj/item/modular_computer/console/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(istype(mover,/obj/item/projectile))
if(istype(mover,/obj/projectile))
if(prob(80))
//Holoscreens are non solid, and the frames of the computers are thin. So projectiles will usually
//pass through
+2 -2
View File
@@ -347,7 +347,7 @@
density = TRUE
/obj/structure/stairs_railing/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(istype(mover,/obj/item/projectile))
if(istype(mover,/obj/projectile))
return TRUE
if(!istype(mover) || mover.pass_flags & PASSRAILING)
return TRUE
@@ -425,7 +425,7 @@
color = COLOR_DARK_GUNMETAL
/obj/structure/platform/CanPass(atom/movable/mover, turf/target, height, air_group)
if(istype(mover, /obj/item/projectile))
if(istype(mover, /obj/projectile))
return TRUE
if(!istype(mover) || mover.pass_flags & PASSRAILING)
return TRUE
+1 -1
View File
@@ -513,7 +513,7 @@
var/obj/item/W = used_weapon
dam_flags = W.damage_flags()
if(isprojectile(W))
var/obj/item/projectile/P = W
var/obj/projectile/P = W
if(dam_flags & DAMAGE_FLAG_BULLET)
blunt_eligible = TRUE
maim_bonus_to_add += P.maim_rate
@@ -65,7 +65,7 @@
to_chat(user,SPAN_NOTICE("You take \the [stored_item] from [src]."))
stored_item = null
/obj/structure/flora/pottedplant/bullet_act(var/obj/item/projectile/Proj)
/obj/structure/flora/pottedplant/bullet_act(var/obj/projectile/Proj)
if (prob(Proj.damage*2))
death()
return 1
@@ -23,7 +23,7 @@
death()
return ..()
/obj/item/flora/pottedplant_small/bullet_act(var/obj/item/projectile/Proj)
/obj/item/flora/pottedplant_small/bullet_act(var/obj/projectile/Proj)
if (prob(Proj.damage*2))
death()
return 1
@@ -8,7 +8,7 @@
var/static/list/forbidden_types = typecacheof(list(
/obj/singularity,
/obj/structure/lattice,
/obj/item/projectile,
/obj/projectile,
/obj/effect
))
has_resources = FALSE
@@ -22,7 +22,7 @@
var/obj/effect/overmap/origin
var/atom/overmap_target
var/obj/entry_point
var/obj/item/projectile/original_projectile
var/obj/projectile/original_projectile
var/heading = SOUTH
var/range = OVERMAP_PROJECTILE_RANGE_MEDIUM
var/mob_carry_size = 12 //How large a mob has to be to carry the shell
@@ -202,7 +202,7 @@
//SNOWFLAKE CODE: ACTIVATE
//The problem is getting the projectile from the gun to the map edge. We want to do this naturally, but using process() and BYOND's walk procs makes it look very... unnatural. And also slow!
//The solution? Let's co-opt projectile code!
/obj/item/projectile/ship_ammo
/obj/projectile/ship_ammo
name = "ship ammunition"
icon = 'icons/obj/guns/ship/physical_projectiles.dmi'
icon_state = "small"
@@ -214,12 +214,12 @@
var/primed = FALSE
var/hit_target = FALSE //First target we hit. Used to report if a hit was successful.
/obj/item/projectile/ship_ammo/Destroy()
/obj/projectile/ship_ammo/Destroy()
ammo = null
hit_target = null
return ..()
/obj/item/projectile/ship_ammo/touch_map_edge()
/obj/projectile/ship_ammo/touch_map_edge()
if(primed)
for(var/mob/living/carbon/human/H in GLOB.human_mob_list)
if(AreConnectedZLevels(H.z, z))
@@ -231,7 +231,7 @@
ammo.original_projectile = src
forceMove(ammo)
/obj/item/projectile/ship_ammo/on_hit(atom/target, blocked, def_zone, var/is_landmark_hit = FALSE) //is_landmark_hit is TRUE when we hit a landmark on a visitable non-ship overmap object.
/obj/projectile/ship_ammo/on_hit(atom/target, blocked, def_zone, var/is_landmark_hit = FALSE) //is_landmark_hit is TRUE when we hit a landmark on a visitable non-ship overmap object.
if(target && !hit_target)
hit_target = TRUE
var/target_name = target.name
@@ -244,11 +244,11 @@
ammo.origin.signal_hit(hit_data)
return ..()
/obj/item/projectile/ship_ammo/proc/on_translate(var/turf/entry_turf, var/target_turf) //This proc is called when the projectile enters a new ship's overmap zlevel.
/obj/projectile/ship_ammo/proc/on_translate(var/turf/entry_turf, var/target_turf) //This proc is called when the projectile enters a new ship's overmap zlevel.
if(ammo.burst)
for(var/i = 1 to ammo.burst)
var/turf/new_turf = get_random_turf_in_range(entry_turf, ammo.burst + rand(0, ammo.burst), 0, TRUE, FALSE)
var/obj/item/projectile/ship_ammo/pellet = new type
var/obj/projectile/ship_ammo/pellet = new type
pellet.forceMove(new_turf)
pellet.ammo = new ammo.type
pellet.ammo.origin = ammo.origin
@@ -10,7 +10,7 @@
var/max_damage = 1000
var/heavy_firing_sound = 'sound/weapons/gunshot/ship_weapons/120mm_mortar.ogg' //The sound in the immediate firing area. Very loud.
var/light_firing_sound = 'sound/effects/explosionfar.ogg' //The sound played when you're a few walls away. Kind of loud.
var/projectile_type = /obj/item/projectile/ship_ammo
var/projectile_type = /obj/projectile/ship_ammo
var/special_firing_mechanism = FALSE //If set to TRUE, the gun won't show up on normal controls.
var/charging_sound //The sound played when the gun is charging up.
var/caliber = SHIP_CALIBER_NONE
@@ -221,7 +221,7 @@
if(!barrel)
crash_with("No barrel found for [src] at [x] [y] [z]! Cannot fire!")
var/turf/firing_turf = get_step(barrel, barrel.dir)
var/obj/item/projectile/ship_ammo/projectile
var/obj/projectile/ship_ammo/projectile
if(SA.projectile_type_override)
projectile = new SA.projectile_type_override(firing_turf)
else
@@ -300,7 +300,7 @@
M.turf_collision(src, speed)
return
/obj/structure/ship_weapon_dummy/bullet_act(obj/item/projectile/P, def_zone)
/obj/structure/ship_weapon_dummy/bullet_act(obj/projectile/P, def_zone)
connected.bullet_act(P)
/obj/structure/ship_weapon_dummy/ex_act(severity)
@@ -88,7 +88,7 @@
. = TRUE
//Manually stopping because this proc needs to sleep for a bit.
prepare_for_entry()
var/obj/item/projectile/ship_ammo/widowmaker = new ammunition.original_projectile.type
var/obj/projectile/ship_ammo/widowmaker = new ammunition.original_projectile.type
widowmaker.ammo = ammunition
qdel(ammunition.original_projectile) //No longer needed.
var/turf/laze = get_turf(entry_target)
@@ -114,7 +114,7 @@
else //if it's not a ship it doesn't have a fore direction, so we need to autocorrect
ammunition.heading = entry_target.dir
prepare_for_entry()
var/obj/item/projectile/ship_ammo/widowmaker = new ammunition.original_projectile.type
var/obj/projectile/ship_ammo/widowmaker = new ammunition.original_projectile.type
widowmaker.ammo = ammunition
qdel(ammunition.original_projectile) //No longer needed.
ammunition.original_projectile = widowmaker
@@ -4,7 +4,7 @@
desc_extended = "Originally produced during the waning years of Solarian hegemony over much of the Orion Spur, the Model 2396 remains, despite its age, a very common piece of mining equipment in remote or underdeveloped areas of the Spur such as the former Solarian Frontier Sectors where newer equipment is either too rare to use widely. Threats from pirates and privateers have driven miners and independent merchants in these areas to long rely on field-modified M96s as improvised ship-to-ship artillery pieces as their mining charges are perfectly capable of ripping through hulls as effectively as they rip through rock. It is, however, awkward and kludgy to aim due to its nature as an improvised weapon and most discard the M96 when more modern -- or practical -- weaponry is acquired."
icon = 'icons/obj/machinery/ship_guns/blaster.dmi'
icon_state = "weapon_base"
projectile_type = /obj/item/projectile/ship_ammo/blaster
projectile_type = /obj/projectile/ship_ammo/blaster
heavy_firing_sound = 'sound/weapons/railgun.ogg'
firing_effects = FIRING_EFFECT_FLAG_EXTREMELY_LOUD
@@ -21,14 +21,14 @@
overmap_icon_state = "med_laser"
impact_type = SHIP_AMMO_IMPACT_BLASTER
/obj/item/projectile/ship_ammo/blaster
/obj/projectile/ship_ammo/blaster
name = "blaster charge"
icon_state = "blaster"
damage = 10000
armor_penetration = 1000
penetrating = 1
/obj/item/projectile/ship_ammo/blaster/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
/obj/projectile/ship_ammo/blaster/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
. = ..()
if(ismob(target))
var/mob/M = target
@@ -6,7 +6,7 @@
heavy_firing_sound = 'sound/weapons/gunshot/cannon.ogg'
icon_state = "weapon_base"
max_ammo = 1
projectile_type = /obj/item/projectile/ship_ammo/bruiser
projectile_type = /obj/projectile/ship_ammo/bruiser
caliber = SHIP_CALIBER_178MM
screenshake_type = SHIP_GUN_SCREENSHAKE_SCREEN
load_time = 4 SECONDS
@@ -42,7 +42,7 @@
desc = "A rough, handmade shell that should fit in a bruiser cannon. This one is filled with projectiles that easily get through the hull, but do little damage."
icon_state = "shell_flechette"
burst = 9
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/flechette
projectile_type_override = /obj/projectile/ship_ammo/bruiser/flechette
/obj/item/ship_ammunition/bruiser/he
name = "makeshift bruiser explosive shell"
@@ -54,7 +54,7 @@
burst = 0
cookoff_heavy = 1
overmap_icon_state = "cannon_heavy"
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/he
projectile_type_override = /obj/projectile/ship_ammo/bruiser/he
/obj/item/ship_ammunition/bruiser/real/he
name = "bruiser explosive shell"
@@ -66,7 +66,7 @@
burst = 0
cookoff_heavy = 2
overmap_icon_state = "cannon_heavy"
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/he
projectile_type_override = /obj/projectile/ship_ammo/bruiser/real/he
/obj/item/ship_ammunition/bruiser/real/ap
name = "bruiser armor-piercing shell"
@@ -78,7 +78,7 @@
burst = 0
cookoff_heavy = 2
overmap_icon_state = "cannon_heavy"
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/ap
projectile_type_override = /obj/projectile/ship_ammo/bruiser/real/ap
/obj/item/ship_ammunition/bruiser/real/canister
name = "bruiser canister shell"
@@ -86,7 +86,7 @@
desc = "An expensive shell designed for the Hegemony Bruiser cannon by Hephaestus Industries. This one bursts into many small pellets."
icon_state = "shell_canister_real"
burst = 23
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/canister
projectile_type_override = /obj/projectile/ship_ammo/bruiser/real/canister
/obj/item/ship_ammunition/bruiser/real/beehive
name = "bruiser beehive shell"
@@ -94,16 +94,16 @@
desc = "An expensive shell designed for the Hegemony Bruiser cannon by Hephaestus Industries. Very popular among Unathi, this shell bursts into many slugger projectiles that punch through the hull with less mass, but more force."
icon_state = "shell_flechette_real"
burst = 9
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/beehive
projectile_type_override = /obj/projectile/ship_ammo/bruiser/real/beehive
/obj/item/projectile/ship_ammo/bruiser
/obj/projectile/ship_ammo/bruiser
name = "canister shot pellet"
icon_state = "small"
damage = 35
armor_penetration = 35
penetrating = 1
/obj/item/projectile/ship_ammo/bruiser/flechette
/obj/projectile/ship_ammo/bruiser/flechette
name = "beehive flechette"
icon_state = "small_burst"
damage = 20
@@ -113,38 +113,38 @@
embed_chance = 40
shrapnel_type = /obj/item/material/shard/shrapnel/flechette
/obj/item/projectile/ship_ammo/bruiser/he
/obj/projectile/ship_ammo/bruiser/he
name = "178mm shell"
icon_state = "heavy"
damage = 150
armor_penetration = 75
penetrating = 0
/obj/item/projectile/ship_ammo/bruiser/he/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
/obj/projectile/ship_ammo/bruiser/he/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
. = ..()
explosion(target, 1, 3, 6)
/obj/item/projectile/ship_ammo/bruiser/real/he
/obj/projectile/ship_ammo/bruiser/real/he
name = "178mm shell"
icon_state = "heavy"
damage = 350
armor_penetration = 125
penetrating = 0
/obj/item/projectile/ship_ammo/bruiser/real/ap
/obj/projectile/ship_ammo/bruiser/real/ap
name = "178mm shell"
icon_state = "heavy"
damage = 250
armor_penetration = 250
penetrating = 2
/obj/item/projectile/ship_ammo/bruiser/real/canister
/obj/projectile/ship_ammo/bruiser/real/canister
damage = 40
armor_penetration = 40
penetrating = 2
stun = 2
/obj/item/projectile/ship_ammo/bruiser/real/beehive //comparable to slugger projectiles but slightly stronger
/obj/projectile/ship_ammo/bruiser/real/beehive //comparable to slugger projectiles but slightly stronger
name = "massive slug"
icon_state = "heavy"
damage = 65
@@ -157,14 +157,14 @@
maim_type = DROPLIMB_BLUNT
anti_materiel_potential = 2
/obj/item/projectile/ship_ammo/bruiser/real/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
/obj/projectile/ship_ammo/bruiser/real/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
. = ..()
if(ammo.impact_type == SHIP_AMMO_IMPACT_HE)
explosion(target, 3, 6, 8)
if(ammo.impact_type == SHIP_AMMO_IMPACT_AP)
explosion(target, 0, 2, 4)
/obj/item/projectile/ship_ammo/bruiser/real/beehive/on_hit(atom/movable/target, blocked, def_zone, is_landmark_hit)
/obj/projectile/ship_ammo/bruiser/real/beehive/on_hit(atom/movable/target, blocked, def_zone, is_landmark_hit)
if(istype(target))
var/throwdir = dir
target.throw_at(get_edge_target_turf(target, throwdir),9,8)
@@ -4,7 +4,7 @@
desc_extended = "Although originally an expensive blunder made by over-worked Kumar Arms designers, the Nadziak later preformed to an outstanding degree following numerous improvements. Its fame among post-War Admirals was such that its name and purpose has largely remained the same, with a new 'Type' iteration commissioned every decade or so. With the expulsion of Zavodskoi and its subsidiary from Solarian space, this aging giant and symbol of military might is under threat of being consumed by the resulting arms manufacturing vacuum."
icon = 'icons/obj/machinery/ship_guns/sol_coilgun.dmi'
icon_state = "weapon_base"
projectile_type = /obj/item/projectile/ship_ammo/coilgun
projectile_type = /obj/projectile/ship_ammo/coilgun
heavy_firing_sound = 'sound/weapons/railgun.ogg'
firing_effects = FIRING_EFFECT_FLAG_EXTREMELY_LOUD
@@ -21,14 +21,14 @@
overmap_icon_state = "cannon"
impact_type = SHIP_AMMO_IMPACT_HE
/obj/item/projectile/ship_ammo/coilgun
/obj/projectile/ship_ammo/coilgun
name = "high-power tungsten rod"
icon_state = "heavy"
damage = 10000
armor_penetration = 1000
penetrating = 1
/obj/item/projectile/ship_ammo/coilgun/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
/obj/projectile/ship_ammo/coilgun/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
. = ..()
if(ismob(target))
var/mob/M = target
@@ -5,7 +5,7 @@
heavy_firing_sound = 'sound/weapons/gunshot/ship_weapons/rotary_fire.ogg'
icon_state = "weapon_base"
max_ammo = 3
projectile_type = /obj/item/projectile/ship_ammo/francisca
projectile_type = /obj/projectile/ship_ammo/francisca
caliber = SHIP_CALIBER_40MM
screenshake_type = SHIP_GUN_SCREENSHAKE_SCREEN
@@ -35,7 +35,7 @@
desc = "A box of AP shells for use in a Francisca rotary gun."
icon_state = "box_ap"
impact_type = SHIP_AMMO_IMPACT_AP
projectile_type_override = /obj/item/projectile/ship_ammo/francisca/ap
projectile_type_override = /obj/projectile/ship_ammo/francisca/ap
/obj/item/ship_ammunition/francisca/frag
name = "40mm fragmentation ammunition box"
@@ -43,27 +43,27 @@
desc = "A box of fragmentation shells for use in a Francisca rotary gun."
icon_state = "box_inc"
impact_type = SHIP_AMMO_IMPACT_HE
projectile_type_override = /obj/item/projectile/ship_ammo/francisca/frag
projectile_type_override = /obj/projectile/ship_ammo/francisca/frag
/obj/item/projectile/ship_ammo/francisca
/obj/projectile/ship_ammo/francisca
name = "40mm FMJ shell"
icon_state = "small"
damage = 50
armor_penetration = 50
penetrating = 2
/obj/item/projectile/ship_ammo/francisca/ap
/obj/projectile/ship_ammo/francisca/ap
name = "40mm AP shell"
damage = 30
armor_penetration = 100
penetrating = 4
/obj/item/projectile/ship_ammo/francisca/frag
/obj/projectile/ship_ammo/francisca/frag
name = "40mm FRAG shell"
damage = 30
armor_penetration = 50
penetrating = 1
/obj/item/projectile/ship_ammo/francisca/frag/on_impact(var/atom/A)
/obj/projectile/ship_ammo/francisca/frag/on_impact(var/atom/A)
fragem(src, 70, 70, 1, 2, 10, 4, TRUE)
..()
@@ -20,7 +20,7 @@
overmap_icon_state = "flak"
caliber = SHIP_CALIBER_90MM
ammunition_behaviour = SHIP_AMMO_BEHAVIOUR_DUMBFIRE
projectile_type_override = /obj/item/projectile/ship_ammo/grauwolf
projectile_type_override = /obj/projectile/ship_ammo/grauwolf
burst = 4
/obj/item/ship_ammunition/grauwolf_bundle/ap
@@ -28,23 +28,23 @@
desc = "A bundle of armor-piercing flak shells."
icon_state = "bundle_ap"
impact_type = SHIP_AMMO_IMPACT_AP
projectile_type_override = /obj/item/projectile/ship_ammo/grauwolf/ap
projectile_type_override = /obj/projectile/ship_ammo/grauwolf/ap
/obj/item/projectile/ship_ammo/grauwolf
/obj/projectile/ship_ammo/grauwolf
name = "high-explosive flak"
icon_state = "small_burst"
damage = 100
armor_penetration = 50
penetrating = 0
/obj/item/projectile/ship_ammo/grauwolf/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
/obj/projectile/ship_ammo/grauwolf/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
. = ..()
if(ammo && ammo.impact_type == SHIP_AMMO_IMPACT_HE)
explosion(target, 0, 2, 4)
else
explosion(target, 0, 1, 2)
/obj/item/projectile/ship_ammo/grauwolf/ap
/obj/projectile/ship_ammo/grauwolf/ap
name = "armor-piercing flak"
damage = 50
armor_penetration = 50
@@ -8,7 +8,7 @@
ammunition_behaviour = SHIP_AMMO_BEHAVIOUR_DUMBFIRE
impact_type = SHIP_AMMO_IMPACT_PROBE
overmap_behaviour = null // This ammo cannot hit anything
projectile_type_override = /obj/item/projectile/ship_ammo/grauwolf_probe
projectile_type_override = /obj/projectile/ship_ammo/grauwolf_probe
overmap_projectile_type_override = /obj/effect/overmap/projectile/probe
burst = 1
@@ -82,7 +82,7 @@
sensor_console.datalink_remove_contact(contact, ship)
. = ..()
/obj/item/projectile/ship_ammo/grauwolf_probe
/obj/projectile/ship_ammo/grauwolf_probe
name = "sensor probe projectile"
icon_state = "small_burst"
damage = 0
@@ -3,7 +3,7 @@
desc = "One of the most common naval guns produced by the Zhurong Imperial Naval Arsenal, the ZA-98/5 is the fifth revision of a gun which has proudly served the Imperial Fleet since 2398. Produced in cooperation with Zavodskoi Interstellar, the ZA-98/5 features and updates reloading mechanism and further improvements to the ballistic profile of its shots. This naval gun is commonly seen on Imperial Fleet corvettes and frigates as their main armament, and is often seen on larger Fleet vessels as a secondary armament to support larger weaponry. It is easily capable of destroying a smaller vessel if the Goddess ensures its shot flies true."
icon = 'icons/obj/machinery/ship_guns/lammergeier.dmi'
icon_state = "weapon_base"
projectile_type = /obj/item/projectile/ship_ammo/lammergeier
projectile_type = /obj/projectile/ship_ammo/lammergeier
heavy_firing_sound = 'sound/weapons/railgun.ogg'
firing_effects = FIRING_EFFECT_FLAG_EXTREMELY_LOUD
@@ -20,14 +20,14 @@
overmap_icon_state = "cannon"
impact_type = SHIP_AMMO_IMPACT_HE
/obj/item/projectile/ship_ammo/lammergeier
/obj/projectile/ship_ammo/lammergeier
name = "typhoon shell"
icon_state = "heavy"
damage = 10000
armor_penetration = 1000
penetrating = 1
/obj/item/projectile/ship_ammo/lammergeier/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
/obj/projectile/ship_ammo/lammergeier/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
. = ..()
if(ismob(target))
var/mob/M = target
@@ -6,7 +6,7 @@
special_firing_mechanism = TRUE
max_damage = 10000
projectile_type = /obj/item/projectile/ship_ammo/leviathan
projectile_type = /obj/projectile/ship_ammo/leviathan
use_ammunition = FALSE
heavy_firing_sound = 'sound/weapons/gunshot/ship_weapons/leviathan_fire.ogg'
caliber = SHIP_CALIBER_ZAT
@@ -136,7 +136,7 @@
/obj/item/ship_ammunition/leviathan/get_speed()
return 2
/obj/item/projectile/ship_ammo/leviathan
/obj/projectile/ship_ammo/leviathan
name = "zero-point artillery beam"
desc = "A concentrated stream of pure energy."
icon_state = "pulse"
@@ -150,7 +150,7 @@
tracer_type = /obj/effect/projectile/tracer/pulse
impact_type = /obj/effect/projectile/impact/pulse
/obj/item/projectile/ship_ammo/leviathan/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
/obj/projectile/ship_ammo/leviathan/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
if(!is_landmark_hit)
if(ismob(target))
var/mob/M = target
@@ -162,7 +162,7 @@
target.visible_message(SPAN_DANGER("<font size=6>A giant, purple laser descends from the sky!</font>"))
explosion(target, 30, 30, 30)
/obj/item/projectile/ship_ammo/leviathan/check_penetrate(atom/A)
/obj/projectile/ship_ammo/leviathan/check_penetrate(atom/A)
on_hit(A)
return TRUE
@@ -3,7 +3,7 @@
desc = "A Kumar Arms high-velocity cannon and flagship of <i>\"Chivalry\"</i> weapons line, developed in 2461 as an upgrade to its predecessor, the Ballista. Its upgrades include a bigger payload, a more streamlined loading process, and easier maintenance, making this cannon one of the best armaments in the Spur."
icon_state = "weapon_base"
projectile_type = /obj/item/projectile/ship_ammo/longbow
projectile_type = /obj/projectile/ship_ammo/longbow
caliber = SHIP_CALIBER_406MM
firing_effects = FIRING_EFFECT_FLAG_EXTREMELY_LOUD
screenshake_type = SHIP_GUN_SCREENSHAKE_ALL_MOBS
@@ -11,20 +11,20 @@
/obj/machinery/ammunition_loader/longbow
name = "longbow shell loader"
/obj/item/projectile/ship_ammo/longbow
/obj/projectile/ship_ammo/longbow
icon_state = "heavy"
damage = 1000
armor_penetration = 1000
var/penetrated = FALSE
/obj/item/projectile/ship_ammo/longbow/launch_projectile(atom/target, target_zone, mob/user, params, angle_override, forced_spread)
/obj/projectile/ship_ammo/longbow/launch_projectile(atom/target, target_zone, mob/user, params, angle_override, forced_spread)
if(ammo.impact_type == SHIP_AMMO_IMPACT_AP)
penetrating = 1
if(ammo.impact_type == SHIP_AMMO_IMPACT_BUNKERBUSTER)
penetrating = 3
. = ..()
/obj/item/projectile/ship_ammo/longbow/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
/obj/projectile/ship_ammo/longbow/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
. = ..()
if(ismob(target))
var/mob/M = target
@@ -140,7 +140,7 @@
if(prob(10))
cookoff(FALSE)
/obj/item/warhead/longbow/bullet_act(obj/item/projectile/P, def_zone)
/obj/item/warhead/longbow/bullet_act(obj/projectile/P, def_zone)
. = ..()
if(P.damage > 5)
cookoff(TRUE)
@@ -503,7 +503,7 @@
else if(health < max_health * 0.75)
. += "\The [src] shows signs of damage!"
/obj/machinery/shipsensors/bullet_act(var/obj/item/projectile/Proj)
/obj/machinery/shipsensors/bullet_act(var/obj/projectile/Proj)
take_damage(Proj.get_structure_damage())
..()
+1 -1
View File
@@ -55,7 +55,7 @@
owned_field.AddParticles(name, quantity)
. = 1
/obj/machinery/power/fusion_core/bullet_act(obj/item/projectile/Proj)
/obj/machinery/power/fusion_core/bullet_act(obj/projectile/Proj)
if(owned_field)
. = owned_field.bullet_act(Proj)
+2 -2
View File
@@ -26,7 +26,7 @@
var/list/particle_catchers = list()
var/list/ignore_types = list(
/obj/item/projectile,
/obj/projectile,
/obj/effect,
/obj/structure/cable,
/obj/machinery/atmospherics,
@@ -582,7 +582,7 @@
STOP_PROCESSING(SSprocessing, src)
. = ..()
/obj/effect/fusion_em_field/bullet_act(obj/item/projectile/Proj)
/obj/effect/fusion_em_field/bullet_act(obj/projectile/Proj)
AddEnergy(Proj.damage)
update_icon()
return 0
@@ -31,7 +31,7 @@
density = FALSE
name = "collector [mysize] OFF"
/obj/effect/fusion_particle_catcher/bullet_act(obj/item/projectile/Proj)
/obj/effect/fusion_particle_catcher/bullet_act(obj/projectile/Proj)
parent.AddEnergy(Proj.damage)
update_icon()
return FALSE
@@ -29,7 +29,7 @@
return rate * 10
/obj/machinery/power/emitter/gyrotron/get_emitter_beam()
var/obj/item/projectile/beam/emitter/E = ..()
var/obj/projectile/beam/emitter/E = ..()
E.damage = mega_energy * 50
return E
+1 -1
View File
@@ -507,7 +507,7 @@
else
user.visible_message(SPAN_WARNING("\The [user] hits \the [src], but it doesn't break."), SPAN_WARNING("You hit \the [src], but it doesn't break."), SPAN_WARNING("You hear something hitting against glass."))
/obj/machinery/light/bullet_act(obj/item/projectile/P, def_zone)
/obj/machinery/light/bullet_act(obj/projectile/P, def_zone)
bullet_ping(P)
shatter()
+1 -1
View File
@@ -92,7 +92,7 @@
qdel(src)
return 50000
/obj/item/projectile/beam/emitter/singularity_pull()
/obj/projectile/beam/emitter/singularity_pull()
return
/obj/item/storage/backpack/holding/singularity_act(S, current_size)
+2 -2
View File
@@ -156,7 +156,7 @@
if(prob(35))
spark_system.queue()
var/obj/item/projectile/beam/emitter/A = get_emitter_beam()
var/obj/projectile/beam/emitter/A = get_emitter_beam()
A.damage = round(power_per_shot / EMITTER_DAMAGE_POWER_TRANSFER)
A.launch_projectile(get_step(src, dir))
shot_counter++
@@ -270,7 +270,7 @@
return 0.2 SECONDS // This value doesn't really affect normal emitters, but *does* affect subtypes like the gyrotron that can have very long delays
/obj/machinery/power/emitter/proc/get_emitter_beam()
return new /obj/item/projectile/beam/emitter(get_turf(src))
return new /obj/projectile/beam/emitter(get_turf(src))
#undef EMITTER_LOOSE
#undef EMITTER_BOLTED
@@ -160,8 +160,8 @@ field_generator power level display
return 0
/obj/machinery/field_generator/bullet_act(var/obj/item/projectile/Proj)
if(istype(Proj, /obj/item/projectile/beam))
/obj/machinery/field_generator/bullet_act(var/obj/projectile/Proj)
if(istype(Proj, /obj/projectile/beam))
power += Proj.damage * 1.25 * EMITTER_DAMAGE_POWER_TRANSFER
update_icon()
return 0
@@ -71,7 +71,7 @@
energy += round((rand(20,60)/2),1)
return
/obj/singularity/bullet_act(obj/item/projectile/P)
/obj/singularity/bullet_act(obj/projectile/P)
return 0 //Will there be an impact? Who knows. Will we see it? No.
/obj/singularity/Collide(atom/A)
+1 -1
View File
@@ -135,7 +135,7 @@
wires = null
return ..()
/obj/machinery/power/smes/buildable/bullet_act(obj/item/projectile/P, def_zone)
/obj/machinery/power/smes/buildable/bullet_act(obj/projectile/P, def_zone)
. = ..()
visible_message(SPAN_WARNING("\The [src] is hit by \the [P]!"))
health_check(P.damage)
+1 -1
View File
@@ -13,7 +13,7 @@
var/caliber = "" //Which kind of guns it can be loaded into
var/max_stack = 5 // how many of us can fit in a pile
var/projectile_type //The bullet type to create when New() is called
var/obj/item/projectile/BB = null //The loaded bullet - make it so that the projectiles are created only when needed?
var/obj/projectile/BB = null //The loaded bullet - make it so that the projectiles are created only when needed?
var/spent_icon = "s-casing-spent"
drop_sound = /singleton/sound_category/casing_drop_sound
+68 -68
View File
@@ -1,39 +1,39 @@
/obj/item/ammo_casing/a357
desc = "A .357 bullet casing."
caliber = "357"
projectile_type = /obj/item/projectile/bullet/pistol/revolver
projectile_type = /obj/projectile/bullet/pistol/revolver
/obj/item/ammo_casing/a454
desc = "A .454 bullet casing."
caliber = "454"
projectile_type = /obj/item/projectile/bullet/pistol/strong
projectile_type = /obj/projectile/bullet/pistol/strong
/obj/item/ammo_casing/a50
desc = "A .50AE bullet casing."
caliber = ".50"
projectile_type = /obj/item/projectile/bullet/pistol/strong
projectile_type = /obj/projectile/bullet/pistol/strong
/obj/item/ammo_casing/a75
desc = "A 20mm bullet casing."
caliber = "75"
projectile_type = /obj/item/projectile/bullet/gyro
projectile_type = /obj/projectile/bullet/gyro
/obj/item/ammo_casing/c38
desc = "A .38 bullet casing."
caliber = "38"
projectile_type = /obj/item/projectile/bullet/pistol
projectile_type = /obj/projectile/bullet/pistol
max_stack = 6
/obj/item/ammo_casing/c38/rubber
desc = "A .38 rubber bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/rubber
projectile_type = /obj/projectile/bullet/pistol/rubber
icon_state = "r-casing"
spent_icon = "r-casing-spent"
/obj/item/ammo_casing/c38/emp
name = ".38 haywire round"
desc = "A .38 bullet casing fitted with a single-use ion pulse generator."
projectile_type = /obj/item/projectile/ion/small
projectile_type = /obj/projectile/ion/small
icon_state = "empcasing"
matter = list(DEFAULT_WALL_MATERIAL = 130, MATERIAL_URANIUM = 100)
@@ -45,78 +45,78 @@
desc = "hyperdense tungsten rod residue."
icon_state = "trod"
caliber = "trod"
projectile_type = /obj/item/projectile/bullet/trod
projectile_type = /obj/projectile/bullet/trod
/obj/item/ammo_casing/c9mm
desc = "A 9mm bullet casing."
caliber = "9mm"
projectile_type = /obj/item/projectile/bullet/pistol
projectile_type = /obj/projectile/bullet/pistol
max_stack = 15
/obj/item/ammo_casing/c9mm/flash
desc = "A 9mm flash shell casing."
projectile_type = /obj/item/projectile/energy/flash
projectile_type = /obj/projectile/energy/flash
/obj/item/ammo_casing/c45/revolver
desc = "A .45 revolver bullet casing."
max_stack = 6
projectile_type = /obj/item/projectile/bullet/pistol/revolver
projectile_type = /obj/projectile/bullet/pistol/revolver
/obj/item/ammo_casing/c9mm/rubber
desc = "A 9mm rubber bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/rubber
projectile_type = /obj/projectile/bullet/pistol/rubber
icon_state = "r-casing"
spent_icon = "r-casing-spent"
/obj/item/ammo_casing/c9mm/practice
desc = "A 9mm practice bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/practice
projectile_type = /obj/projectile/bullet/pistol/practice
/obj/item/ammo_casing/c10mm
desc = "A 10mm bullet casing."
caliber = "10mm"
projectile_type = /obj/item/projectile/bullet/pistol
projectile_type = /obj/projectile/bullet/pistol
max_stack = 10
/obj/item/ammo_casing/c10mm/rubber
desc = "A 10mm rubber bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/rubber
projectile_type = /obj/projectile/bullet/pistol/rubber
/obj/item/ammo_casing/c45
desc = "A .45 bullet casing."
caliber = ".45"
projectile_type = /obj/item/projectile/bullet/pistol/medium
projectile_type = /obj/projectile/bullet/pistol/medium
max_stack = 10
/obj/item/ammo_casing/c45/practice
desc = "A .45 practice bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/practice
projectile_type = /obj/projectile/bullet/pistol/practice
/obj/item/ammo_casing/c45/rubber
desc = "A .45 rubber bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/rubber
projectile_type = /obj/projectile/bullet/pistol/rubber
icon_state = "r-casing"
spent_icon = "r-casing-spent"
/obj/item/ammo_casing/c45/flash
desc = "A .45 flash shell casing."
projectile_type = /obj/item/projectile/energy/flash
projectile_type = /obj/projectile/energy/flash
/obj/item/ammo_casing/a12mm
desc = "A 12mm bullet casing."
caliber = "12mm"
projectile_type = /obj/item/projectile/bullet/pistol/medium
projectile_type = /obj/projectile/bullet/pistol/medium
max_stack = 7
/obj/item/ammo_casing/smg10mm
desc = "A 10mm bullet casing."
caliber = "10mm"
projectile_type = /obj/item/projectile/bullet/pistol
projectile_type = /obj/projectile/bullet/pistol
/obj/item/ammo_casing/c46mm
desc = "A 4.6mm bullet casing."
caliber = "4.6mm"
projectile_type = /obj/item/projectile/bullet/pistol
projectile_type = /obj/projectile/bullet/pistol
max_stack = 15
/obj/item/ammo_casing/shotgun
@@ -125,7 +125,7 @@
icon_state = "slshell"
spent_icon = "slshell-spent"
caliber = "shotgun"
projectile_type = /obj/item/projectile/bullet/shotgun
projectile_type = /obj/projectile/bullet/shotgun
matter = list(DEFAULT_WALL_MATERIAL = 360)
reload_sound = /singleton/sound_category/shotgun_reload
drop_sound = /singleton/sound_category/casing_drop_sound_shotgun
@@ -142,7 +142,7 @@
desc = "A 12-gauge shell."
icon_state = "gshell"
spent_icon = "gshell-spent"
projectile_type = /obj/item/projectile/bullet/pellet/shotgun
projectile_type = /obj/projectile/bullet/pellet/shotgun
matter = list(DEFAULT_WALL_MATERIAL = 360)
/obj/item/ammo_casing/shotgun/pellet/used/Initialize()
@@ -156,7 +156,7 @@
desc = "A 12-gauge blank shell."
icon_state = "blshell"
spent_icon = "blshell-spent"
projectile_type = /obj/item/projectile/bullet/blank
projectile_type = /obj/projectile/bullet/blank
matter = list(DEFAULT_WALL_MATERIAL = 90)
/obj/item/ammo_casing/shotgun/practice
@@ -164,7 +164,7 @@
desc = "A 12-gauge practice shell."
icon_state = "pshell"
spent_icon = "pshell-spent"
projectile_type = /obj/item/projectile/bullet/shotgun/practice
projectile_type = /obj/projectile/bullet/shotgun/practice
matter = list(MATERIAL_STEEL = 90)
/obj/item/ammo_casing/shotgun/beanbag
@@ -172,7 +172,7 @@
desc = "A 12-gauge beanbag shell."
icon_state = "bshell"
spent_icon = "bshell-spent"
projectile_type = /obj/item/projectile/bullet/shotgun/beanbag
projectile_type = /obj/projectile/bullet/shotgun/beanbag
matter = list(DEFAULT_WALL_MATERIAL = 180)
//Can stun in one hit if aimed at the head, but
@@ -182,7 +182,7 @@
desc = "A 12-gauge taser cartridge."
icon_state = "stunshell"
spent_icon = "stunshell-spent"
projectile_type = /obj/item/projectile/energy/electrode/stunshot
projectile_type = /obj/projectile/energy/electrode/stunshot
matter = list(DEFAULT_WALL_MATERIAL = 360, MATERIAL_GLASS = 720)
reload_sound = 'sound/weapons/reload_shell_emp.ogg'
@@ -200,7 +200,7 @@
desc = "A 12-gauge chemical shell used to signal distress or provide illumination."
icon_state = "fshell"
spent_icon = "fshell-spent"
projectile_type = /obj/item/projectile/energy/flash/flare
projectile_type = /obj/projectile/energy/flash/flare
matter = list(DEFAULT_WALL_MATERIAL = 90, MATERIAL_GLASS = 90)
reload_sound = 'sound/weapons/reload_shell_emp.ogg'
@@ -209,7 +209,7 @@
desc = "A 12-gauge incendiary shell."
icon_state = "ishell"
spent_icon = "ishell-spent"
projectile_type = /obj/item/projectile/bullet/shotgun/incendiary
projectile_type = /obj/projectile/bullet/shotgun/incendiary
matter = list(DEFAULT_WALL_MATERIAL = 450)
/obj/item/ammo_casing/shotgun/emp
@@ -217,7 +217,7 @@
desc = "A 12-gauge shotgun slug fitted with a single-use ion pulse generator."
icon_state = "empshell"
spent_icon = "empshell-spent"
projectile_type = /obj/item/projectile/ion
projectile_type = /obj/projectile/ion
matter = list(DEFAULT_WALL_MATERIAL = 260, MATERIAL_URANIUM = 200)
reload_sound = 'sound/weapons/reload_shell_emp.ogg'
@@ -226,7 +226,7 @@
desc = "A 12-gauge shotgun slug fitted with a tracking implant, set to activate upon embedding flesh."
icon_state = "trackingshell"
spent_icon = "trackingshell-spent"
projectile_type = /obj/item/projectile/bullet/tracking
projectile_type = /obj/projectile/bullet/tracking
/obj/item/ammo_casing/shotgun/moghes
name = "wall shell"
@@ -234,7 +234,7 @@
desc_extended = "This complicated and expensive shotgun shell fires both a solid slug and a hail of shots at the same time, making it a destructive and dangerous ammunition at all ranges, assuming the user can point in the target's general direction. Somehow it seems to somewhat fit in other shotgun type weaponry too."
icon_state = "moghes_shell"
spent_icon = "moghes_shell_spent"
projectile_type = /obj/item/projectile/bullet/shotgun/moghes
projectile_type = /obj/projectile/bullet/shotgun/moghes
/obj/item/ammo_casing/tranq
name = "PPS shell"
@@ -242,13 +242,13 @@
icon_state = "ishell"
spent_icon = "ishell-spent"
caliber = "PPS"
projectile_type = /obj/item/projectile/bullet/rifle/tranq
projectile_type = /obj/projectile/bullet/rifle/tranq
max_stack = 6
/obj/item/ammo_casing/a762
desc = "A 7.62mm bullet casing."
caliber = "a762"
projectile_type = /obj/item/projectile/bullet/rifle/a762
projectile_type = /obj/projectile/bullet/rifle/a762
icon_state = "rifle-casing"
spent_icon = "rifle-casing-spent"
max_stack = 2
@@ -259,13 +259,13 @@
/obj/item/ammo_casing/a762/blank
desc = "A 7.62mm blank casing."
projectile_type = /obj/item/projectile/bullet/blank
projectile_type = /obj/projectile/bullet/blank
/obj/item/ammo_casing/a145
name = "shell casing"
desc = "A 14.5mm shell."
caliber = "14.5mm"
projectile_type = /obj/item/projectile/bullet/rifle/a145
projectile_type = /obj/projectile/bullet/rifle/a145
matter = list(DEFAULT_WALL_MATERIAL = 1250)
icon_state = "lcasing"
spent_icon = "lcasing-spent"
@@ -274,26 +274,26 @@
/obj/item/ammo_casing/a556
desc = "A 5.56mm bullet casing."
caliber = "a556"
projectile_type = /obj/item/projectile/bullet/rifle/a556
projectile_type = /obj/projectile/bullet/rifle/a556
icon_state = "rifle-casing"
spent_icon = "rifle-casing-spent"
max_stack = 7
/obj/item/ammo_casing/a556/ap
desc = "A 5.56mm armor piercing round."
projectile_type = /obj/item/projectile/bullet/rifle/a556/ap
projectile_type = /obj/projectile/bullet/rifle/a556/ap
/obj/item/ammo_casing/a556/practice
desc = "A 5.56mm practice bullet casing."
projectile_type = /obj/item/projectile/bullet/rifle/a556/practice
projectile_type = /obj/projectile/bullet/rifle/a556/practice
/obj/item/ammo_casing/a556/polymer
desc = "A 5.56mm polymer bullet casing."
projectile_type = /obj/item/projectile/bullet/rifle/a556/polymer
projectile_type = /obj/projectile/bullet/rifle/a556/polymer
/obj/item/ammo_casing/a556/blank
desc = "A 5.56mm blank casing."
projectile_type = /obj/item/projectile/bullet/blank
projectile_type = /obj/projectile/bullet/blank
/obj/item/ammo_casing/a556/spent/Initialize()
. = ..()
@@ -303,7 +303,7 @@
desc = "A 6.5mm bullet casing."
desc_extended = "Designed by de Namur not long after the interstellar war, the 6.5mmx40mm cartridge, designed to fit the needs of Xanu's military while going away from the legacy rounds used by the Sol Alliance. This cartridge has been wildly successful, and has been adopted by the majority of the Coalition of Colonies and beyond."
caliber = "a65"
projectile_type = /obj/item/projectile/bullet/rifle/a65
projectile_type = /obj/projectile/bullet/rifle/a65
icon_state = "rifle-casing"
spent_icon = "rifle-casing-spent"
max_stack = 7
@@ -322,7 +322,7 @@
/obj/item/ammo_casing/chameleon
name = "chameleon bullets"
desc = "A set of bullets for the Chameleon Gun."
projectile_type = /obj/item/projectile/bullet/chameleon
projectile_type = /obj/projectile/bullet/chameleon
caliber = ".45"
/obj/item/ammo_casing/cap
@@ -330,7 +330,7 @@
desc = "A cap for children toys."
caliber = "caps"
color = "#FF0000"
projectile_type = /obj/item/projectile/bullet/pistol/cap
projectile_type = /obj/projectile/bullet/pistol/cap
max_stack = 6
/obj/item/ammo_casing/flechette
@@ -338,14 +338,14 @@
icon = 'icons/obj/terminator.dmi'
icon_state = "flechette_casing"
caliber = "flechette"
projectile_type = /obj/item/projectile/bullet/flechette
projectile_type = /obj/projectile/bullet/flechette
max_stack = 4
/obj/item/ammo_casing/flechette/explosive
projectile_type = /obj/item/projectile/bullet/flechette/explosive
projectile_type = /obj/projectile/bullet/flechette/explosive
/obj/item/ammo_casing/vintage
projectile_type = /obj/item/projectile/bullet/rifle/vintage
projectile_type = /obj/projectile/bullet/rifle/vintage
desc = "A .30-06 Government bullet casing. It looks old, and you can barely understand the writing stamped on it."
caliber = "30-06 govt"
icon_state = "lcasing"
@@ -357,7 +357,7 @@
expend()
/obj/item/ammo_casing/govt
projectile_type = /obj/item/projectile/bullet/rifle/govt
projectile_type = /obj/projectile/bullet/rifle/govt
desc = "A .45-70 Government bullet casing."
caliber = "45-70 govt"
icon_state = "gcasing"
@@ -365,7 +365,7 @@
max_stack = 4
/obj/item/ammo_casing/slugger
projectile_type = /obj/item/projectile/bullet/rifle/slugger
projectile_type = /obj/projectile/bullet/rifle/slugger
caliber = "slugger"
icon_state = "slugger-sharp"
spent_icon = "slugger-spent"
@@ -377,19 +377,19 @@
caliber = "gauss"
icon_state = "tungstenslug"
spent_icon = "tungstenslug-spent"
projectile_type = /obj/item/projectile/bullet/gauss
projectile_type = /obj/projectile/bullet/gauss
max_stack = 2
/obj/item/ammo_casing/gauss/carbine
name = "compact tungsten slug"
desc = "A heavy tungsten gauss slug. This one has a casing adapated for carbine models."
projectile_type = /obj/item/projectile/bullet/gauss/carbine
projectile_type = /obj/projectile/bullet/gauss/carbine
/obj/item/ammo_casing/gauss/emp
name = "ion slug"
desc = "A heavy ion gauss slug."
icon_state = "empslug"
projectile_type = /obj/item/projectile/ion/gauss
projectile_type = /obj/projectile/ion/gauss
reload_sound = 'sound/weapons/reload_shell_emp.ogg'
/obj/item/ammo_casing/plasma_slug
@@ -397,7 +397,7 @@
desc = "A plasma slug."
icon_state = "plasmaslug"
caliber = "plasma slug"
projectile_type = /obj/item/projectile/plasma
projectile_type = /obj/projectile/plasma
max_stack = 2
/obj/item/ammo_casing/plasma_bolt
@@ -405,7 +405,7 @@
desc = "A plasma bolt."
icon_state = "plasmabolt"
caliber = "plasma bolt"
projectile_type = /obj/item/projectile/plasma/light
projectile_type = /obj/projectile/plasma/light
max_stack = 4
/obj/item/ammo_casing/cannon
@@ -413,7 +413,7 @@
desc = "A solid metal projectile."
icon_state = "cannonball"
caliber = "cannon"
projectile_type = /obj/item/projectile/bullet/cannonball
projectile_type = /obj/projectile/bullet/cannonball
matter = list(DEFAULT_WALL_MATERIAL = 800)
w_class = ITEMSIZE_NORMAL
slot_flags = null
@@ -425,12 +425,12 @@
name = "explosive cannonball"
desc = "A solid metal projectile loaded with an explosive charge."
icon_state = "cannonball_explosive"
projectile_type = /obj/item/projectile/bullet/cannonball/explosive
projectile_type = /obj/projectile/bullet/cannonball/explosive
/obj/item/ammo_casing/cannon/canister
name = "canister shot"
desc = "A solid projectile filled with deadly shrapnel."
projectile_type = /obj/item/projectile/bullet/pellet/shotgun/canister
projectile_type = /obj/projectile/bullet/pellet/shotgun/canister
/obj/item/ammo_casing/nuke
name = "miniaturized nuclear warhead"
@@ -439,7 +439,7 @@
w_class = ITEMSIZE_NORMAL
slot_flags = null
desc = "A miniaturized version of a nuclear bomb."
projectile_type = /obj/item/projectile/bullet/nuke
projectile_type = /obj/projectile/bullet/nuke
drop_sound = /singleton/sound_category/generic_drop_sound
max_stack = 2
@@ -448,7 +448,7 @@
desc = "A solid ball made of lead."
icon_state = "musketball"
caliber = "musket"
projectile_type = /obj/item/projectile/bullet/pistol/strong
projectile_type = /obj/projectile/bullet/pistol/strong
reload_sound = 'sound/weapons/reloads/shotgun_pump.ogg'
/obj/item/ammo_casing/recoilless_rifle
@@ -457,7 +457,7 @@
caliber = "recoilless_rifle"
w_class = ITEMSIZE_NORMAL
slot_flags = null
projectile_type = /obj/item/projectile/bullet/recoilless_rifle
projectile_type = /obj/projectile/bullet/recoilless_rifle
reload_sound = 'sound/weapons/reloads/shotgun_pump.ogg'
max_stack = 1
@@ -468,7 +468,7 @@
caliber = "peac"
w_class = ITEMSIZE_NORMAL
slot_flags = null
projectile_type = /obj/item/projectile/bullet/peac
projectile_type = /obj/projectile/bullet/peac
drop_sound = 'sound/items/drop/shell_drop.ogg'
pickup_sound = 'sound/items/pickup/weldingtool.ogg'
reload_sound = 'sound/weapons/railgun_insert_emp.ogg'
@@ -476,24 +476,24 @@
/obj/item/ammo_casing/peac/he
name = "anti-materiel HE cannon cartridge"
projectile_type = /obj/item/projectile/bullet/peac/he
projectile_type = /obj/projectile/bullet/peac/he
/obj/item/ammo_casing/peac/shrapnel
name = "anti-materiel FRAG cannon cartridge"
projectile_type = /obj/item/projectile/bullet/peac/shrapnel
projectile_type = /obj/projectile/bullet/peac/shrapnel
/obj/item/ammo_casing/kumar_super
name =".599 kumar super casing"
icon_state = "rifle-casing"
spent_icon = "rifle-casing-spent"
caliber = ".599 Kumar Super"
projectile_type = /obj/item/projectile/bullet
projectile_type = /obj/projectile/bullet
max_stack = 5
/obj/item/ammo_casing/c6mm
desc = "A 6mm bullet casing."
caliber = "6mm"
projectile_type = /obj/item/projectile/bullet/pistol/assassin
projectile_type = /obj/projectile/bullet/pistol/assassin
max_stack = 15
/obj/item/ammo_casing/moghes_pistol
@@ -501,7 +501,7 @@
icon_state = "moghes_casing_p"
spent_icon = "moghes_casing_p_spent"
caliber = "11.6mm"
projectile_type = /obj/item/projectile/bullet/pistol/medium/ap
projectile_type = /obj/projectile/bullet/pistol/medium/ap
max_stack = 15
/obj/item/ammo_casing/moghes_rifle
@@ -509,5 +509,5 @@
icon_state = "moghes_casing"
spent_icon = "moghes_casing_spent"
caliber = "5.8mm"
projectile_type = /obj/item/projectile/bullet/rifle/a556
projectile_type = /obj/projectile/bullet/rifle/a556
max_stack = 7
+5 -5
View File
@@ -422,7 +422,7 @@
break
if(isprojectile(projectile))
var/obj/item/projectile/P = projectile
var/obj/projectile/P = projectile
var/acc = burst_accuracy[min(i, burst_accuracy.len)]
var/disp = dispersion[min(i, dispersion.len)]
@@ -510,7 +510,7 @@
playsound(loc, fire_sound, fire_sound_volume, vary_fire_sound, falloff_distance = 0.5)
/obj/item/gun/proc/process_point_blank(obj/projectile, mob/user, atom/target)
var/obj/item/projectile/P = projectile
var/obj/projectile/P = projectile
if(!istype(P))
return //default behaviour only applies to true projectiles
@@ -533,7 +533,7 @@
P.point_blank = TRUE
/obj/item/gun/proc/process_accuracy(obj/projectile, mob/user, atom/target, acc_mod, dispersion)
var/obj/item/projectile/P = projectile
var/obj/projectile/P = projectile
if(!istype(P))
return //default behaviour only applies to true projectiles
@@ -560,7 +560,7 @@
//does the actual launching of the projectile
/obj/item/gun/proc/process_projectile(obj/projectile, mob/user, atom/target, target_zone, params)
var/obj/item/projectile/P = projectile
var/obj/projectile/P = projectile
if(!istype(P))
return FALSE //default behaviour only applies to true projectiles
@@ -588,7 +588,7 @@
M.visible_message(SPAN_GOOD("\The [user] takes \the [src] out of their mouth."))
mouthshoot = FALSE
return
var/obj/item/projectile/in_chamber = consume_next_projectile()
var/obj/projectile/in_chamber = consume_next_projectile()
if(istype(in_chamber))
user.visible_message(SPAN_DANGER("\The [user] pulls the trigger."))
if (!pin && needspin) // Checks the pin of the gun.
+2 -2
View File
@@ -71,7 +71,7 @@
recoil = 1
force = 15
projectile_type = /obj/item/projectile/energy/sonic
projectile_type = /obj/projectile/energy/sonic
cell_type = /obj/item/cell/super
fire_delay = 40
fire_sound = 'sound/effects/basscannon.ogg'
@@ -93,7 +93,7 @@
return
//Projectile.
/obj/item/projectile/energy/sonic
/obj/projectile/energy/sonic
name = "distortion"
icon = 'icons/obj/machinery/particle_accelerator2.dmi'
icon_state = "particle"
+3 -3
View File
@@ -20,7 +20,7 @@
var/charge_cost = 200 //How much energy is needed to fire.
var/max_shots = 10 //Determines the capacity of the weapon's power cell. Specifying a cell_type overrides this value.
var/cell_type = null
var/projectile_type = /obj/item/projectile/beam/practice //also passed to turrets
var/projectile_type = /obj/projectile/beam/practice //also passed to turrets
var/modifystate
var/charge_meter = 1 //if set, the icon state will be chosen based on the current charge
var/list/required_firemode_auth //This list matches with firemode index, used to determine which firemodes get unlocked with what level of authorization.
@@ -287,12 +287,12 @@
if(initial(self_recharge))
. += "Recharge Time: [initial(recharge_time)]<br>"
. += "<br><b>Primary Projectile</b><br>"
var/obj/item/projectile/P = new projectile_type
var/obj/projectile/P = new projectile_type
. += P.get_print_info()
if(secondary_projectile_type)
. += "<br><b>Secondary Projectile</b><br>"
var/obj/item/projectile/P_second = new secondary_projectile_type
var/obj/projectile/P_second = new secondary_projectile_type
. += P_second.get_print_info()
. += "<br>"
@@ -12,7 +12,7 @@
origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 2)
matter = list(DEFAULT_WALL_MATERIAL = 2000)
offhand_accuracy = 1
projectile_type = /obj/item/projectile/energy/blaster
projectile_type = /obj/projectile/energy/blaster
max_shots = 6
burst_delay = 2
@@ -27,7 +27,7 @@
name = "rapidfire blaster"
desc = "An aged but reliable rapidfire blaster tuned to expel projectiles at high fire rates."
fire_sound = 'sound/weapons/laserstrong.ogg'
projectile_type = /obj/item/projectile/energy/blaster/heavy
projectile_type = /obj/projectile/energy/blaster/heavy
burst = 5
burst_delay = 3
max_shots = 30
@@ -52,7 +52,7 @@
icon_state = "blaster_revolver"
item_state = "blaster_revolver"
fire_sound = 'sound/weapons/laserstrong.ogg'
projectile_type = /obj/item/projectile/energy/blaster
projectile_type = /obj/projectile/energy/blaster
max_shots = 8
w_class = ITEMSIZE_SMALL
@@ -69,7 +69,7 @@
max_shots = 12
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
offhand_accuracy = 0
projectile_type = /obj/item/projectile/energy/blaster
projectile_type = /obj/projectile/energy/blaster
slot_flags = SLOT_BELT
w_class = ITEMSIZE_NORMAL
@@ -82,7 +82,7 @@
max_shots = 20
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3)
offhand_accuracy = 0
projectile_type = /obj/item/projectile/energy/blaster/heavy
projectile_type = /obj/projectile/energy/blaster/heavy
force = 15
slot_flags = SLOT_BACK
@@ -117,7 +117,7 @@
icon_state = "blaster_ar"
item_state = "blaster_ar"
max_shots = 20
projectile_type = /obj/item/projectile/energy/blaster/heavy
projectile_type = /obj/projectile/energy/blaster/heavy
fire_sound = 'sound/weapons/laserstrong.ogg'
slot_flags = SLOT_BACK
w_class = ITEMSIZE_LARGE
@@ -145,7 +145,7 @@
icon = 'icons/obj/guns/himeo_blaster.dmi'
icon_state = "himeoblaster"
item_state = "himeoblaster"
projectile_type = /obj/item/projectile/energy/blaster
projectile_type = /obj/projectile/energy/blaster
usesound = 'sound/weapons/plasma_cutter.ogg'
fire_sound = 'sound/weapons/gunshot/slammer.ogg'
cell_type = /obj/item/cell/hydrogen
@@ -223,7 +223,7 @@
icon = 'icons/obj/guns/himeo_pistol.dmi'
icon_state = "himeopistol"
item_state = "himeopistol"
projectile_type = /obj/item/projectile/energy/blaster/heavy
projectile_type = /obj/projectile/energy/blaster/heavy
usesound = 'sound/weapons/plasma_cutter.ogg'
fire_sound = 'sound/weapons/laserstrong.ogg'
charge_cost = 1250 // leaky but lethal
@@ -12,7 +12,7 @@
fire_delay = 10
fire_delay_wielded = 8
origin_tech = list(TECH_COMBAT = 1, TECH_MAGNET = 1)
projectile_type = /obj/item/projectile/beam/midlaser/ice
projectile_type = /obj/projectile/beam/midlaser/ice
secondary_projectile_type = null
secondary_fire_sound = null
charge_failure_message = "'s charging socket was removed to make room for a crank."
+2 -2
View File
@@ -25,7 +25,7 @@
fire_delay_wielded = 1
accuracy_wielded = 2
projectile_type = /obj/item/projectile/bullet/shard
projectile_type = /obj/projectile/bullet/shard
secondary_projectile_type = null
secondary_fire_sound = null
firemodes = list()
@@ -75,4 +75,4 @@
self_recharge = TRUE
has_safety = FALSE
does_process = FALSE
projectile_type = /obj/item/projectile/bullet/shard/heavy
projectile_type = /obj/projectile/bullet/shard/heavy
@@ -11,8 +11,8 @@
force = 11
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
matter = list(DEFAULT_WALL_MATERIAL = 2000)
projectile_type = /obj/item/projectile/energy/disruptorstun
secondary_projectile_type = /obj/item/projectile/energy/blaster/disruptor
projectile_type = /obj/projectile/energy/disruptorstun
secondary_projectile_type = /obj/projectile/energy/blaster/disruptor
max_shots = 10
charge_cost = 150
accuracy = 1
@@ -20,8 +20,8 @@
modifystate = "disruptorpistolstun"
sel_mode = 1
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/energy/disruptorstun, modifystate="disruptorpistolstun", fire_sound = 'sound/weapons/gunshot/bolter.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/energy/blaster/disruptor, modifystate="disruptorpistolkill", recoil = 1, fire_sound = 'sound/weapons/gunshot/bolter.ogg')
list(mode_name="stun", projectile_type=/obj/projectile/energy/disruptorstun, modifystate="disruptorpistolstun", fire_sound = 'sound/weapons/gunshot/bolter.ogg'),
list(mode_name="lethal", projectile_type=/obj/projectile/energy/blaster/disruptor, modifystate="disruptorpistolkill", recoil = 1, fire_sound = 'sound/weapons/gunshot/bolter.ogg')
)
required_firemode_auth = list(WIRELESS_PIN_STUN, WIRELESS_PIN_LETHAL)
var/selectframecheck = FALSE
@@ -29,11 +29,11 @@
/obj/item/gun/energy/disruptorpistol/practice
name = "practice disruptor pistol"
desc = "A variant of the NT DP-7. It fires less concentrated energy bolts that are visible, but ultimately harmless, designed for target practice."
projectile_type = /obj/item/projectile/energy/disruptorstun/practice
secondary_projectile_type = /obj/item/projectile/energy/blaster/disruptor/practice
projectile_type = /obj/projectile/energy/disruptorstun/practice
secondary_projectile_type = /obj/projectile/energy/blaster/disruptor/practice
firemodes = list(
list(mode_name="stun (practice)", projectile_type=/obj/item/projectile/energy/disruptorstun/practice, modifystate="disruptorpistolstun", fire_sound = 'sound/weapons/gunshot/bolter.ogg'),
list(mode_name="lethal (practice)", projectile_type=/obj/item/projectile/energy/blaster/disruptor/practice, modifystate="disruptorpistolkill", recoil = 1, fire_sound = 'sound/weapons/gunshot/bolter.ogg')
list(mode_name="stun (practice)", projectile_type=/obj/projectile/energy/disruptorstun/practice, modifystate="disruptorpistolstun", fire_sound = 'sound/weapons/gunshot/bolter.ogg'),
list(mode_name="lethal (practice)", projectile_type=/obj/projectile/energy/blaster/disruptor/practice, modifystate="disruptorpistolkill", recoil = 1, fire_sound = 'sound/weapons/gunshot/bolter.ogg')
)
/obj/item/gun/energy/disruptorpistol/security
@@ -12,9 +12,9 @@
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 4, TECH_POWER = 4)
slot_flags = SLOT_BELT
projectile_type = /obj/item/projectile/beam/freezer
projectile_type = /obj/projectile/beam/freezer
firemodes = list(
list(mode_name="freeze", projectile_type= /obj/item/projectile/beam/freezer, fire_sound='sound/weapons/pulse3.ogg'),
list(mode_name="ice bolt", projectile_type= /obj/item/projectile/ice, fire_sound='sound/weapons/crossbow.ogg')
list(mode_name="freeze", projectile_type= /obj/projectile/beam/freezer, fire_sound='sound/weapons/pulse3.ogg'),
list(mode_name="ice bolt", projectile_type= /obj/projectile/ice, fire_sound='sound/weapons/crossbow.ogg')
)
+11 -11
View File
@@ -12,7 +12,7 @@
force = 15
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
matter = list(DEFAULT_WALL_MATERIAL = 2000)
projectile_type = /obj/item/projectile/beam/midlaser
projectile_type = /obj/projectile/beam/midlaser
can_turret = 1
turret_is_lethal = 1
turret_sprite_set = "laser"
@@ -33,7 +33,7 @@
/obj/item/gun/energy/laser/practice
name = "practice laser carbine"
desc = "A modified version of the HI G40E, this one fires less concentrated energy bolts designed for target practice."
projectile_type = /obj/item/projectile/beam/practice
projectile_type = /obj/projectile/beam/practice
/obj/item/gun/energy/retro
name = "retro laser"
@@ -48,7 +48,7 @@
slot_flags = SLOT_BELT
w_class = ITEMSIZE_NORMAL
offhand_accuracy = 1
projectile_type = /obj/item/projectile/beam
projectile_type = /obj/projectile/beam
fire_delay = 5
can_turret = 1
turret_is_lethal = 1
@@ -70,7 +70,7 @@
slot_flags = SLOT_BELT
w_class = ITEMSIZE_NORMAL
offhand_accuracy = 2
projectile_type = /obj/item/projectile/beam
projectile_type = /obj/projectile/beam
origin_tech = null
max_shots = 5 //to compensate a bit for self-recharging
self_recharge = 1
@@ -88,7 +88,7 @@
fire_sound = 'sound/weapons/lasercannonfire.ogg'
origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3)
slot_flags = SLOT_BELT|SLOT_BACK
projectile_type = /obj/item/projectile/beam/heavylaser
projectile_type = /obj/projectile/beam/heavylaser
charge_cost = 400
max_shots = 5
fire_delay = 20
@@ -119,7 +119,7 @@
has_item_ratio = FALSE
fire_sound = 'sound/weapons/laser3.ogg'
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2)
projectile_type = /obj/item/projectile/beam/xray
projectile_type = /obj/projectile/beam/xray
charge_cost = 100
max_shots = 20
fire_delay = 4
@@ -148,7 +148,7 @@
has_item_ratio = FALSE // same as the laserrifle
fire_sound = 'sound/weapons/marauder.ogg'
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 5, TECH_POWER = 4)
projectile_type = /obj/item/projectile/beam/sniper
projectile_type = /obj/projectile/beam/sniper
slot_flags = SLOT_BACK
charge_cost = 400
max_shots = 4
@@ -192,7 +192,7 @@
force = 15
matter = list(DEFAULT_WALL_MATERIAL = 2000)
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2)
projectile_type = /obj/item/projectile/beam/shotgun
projectile_type = /obj/projectile/beam/shotgun
max_shots = 20
sel_mode = 1
is_wieldable = TRUE
@@ -222,7 +222,7 @@
recharge_time = 2
matter = list(DEFAULT_WALL_MATERIAL = 2000)
fire_sound = 'sound/weapons/laser1.ogg'
projectile_type = /obj/item/projectile/beam/laser_tag
projectile_type = /obj/projectile/beam/laser_tag
pin = /obj/item/device/firing_pin/tag/red
can_turret = TRUE
turret_is_lethal = FALSE
@@ -239,7 +239,7 @@
return ..()
/obj/item/gun/energy/lasertag/proc/get_tag_color(var/set_color)
projectile_type = text2path("/obj/item/projectile/beam/laser_tag/[set_color]")
projectile_type = text2path("/obj/projectile/beam/laser_tag/[set_color]")
if(pin)
QDEL_NULL(pin)
var/pin_path = text2path("/obj/item/device/firing_pin/tag/[set_color]")
@@ -258,7 +258,7 @@
icon = 'icons/obj/guns/bluetag.dmi'
icon_state = "bluetag"
item_state = "bluetag"
projectile_type = /obj/item/projectile/beam/laser_tag/blue
projectile_type = /obj/projectile/beam/laser_tag/blue
pin = /obj/item/device/firing_pin/tag/blue
turret_sprite_set = "blue"
@@ -24,7 +24,7 @@
fire_delay = 3,
recoil = 1,
accuracy = 1,
projectile_type = /obj/item/projectile/bullet/pistol,
projectile_type = /obj/projectile/bullet/pistol,
fire_sound = 'sound/weapons/gunshot/gunshot_smg.ogg'
),
list(
@@ -36,7 +36,7 @@
move_delay = 4,
accuracy = list(1, 0, 0,-1,-1),
dispersion = list(0, 10, 10),
projectile_type = /obj/item/projectile/bullet/pistol,
projectile_type = /obj/projectile/bullet/pistol,
fire_sound = 'sound/weapons/gunshot/gunshot_smg.ogg'
),
list(
@@ -45,7 +45,7 @@
fire_delay = 6,
recoil = 3,
accuracy = 0,
projectile_type = /obj/item/projectile/bullet/gyro/law,
projectile_type = /obj/projectile/bullet/gyro/law,
fire_sound = 'sound/effects/Explosion1.ogg'
),
list(
@@ -54,7 +54,7 @@
fire_delay = 4,
recoil = 0,
accuracy = 1,
projectile_type = /obj/item/projectile/energy/electrode,
projectile_type = /obj/projectile/energy/electrode,
fire_sound = 'sound/weapons/Taser.ogg'
),
list(
@@ -63,7 +63,7 @@
fire_delay = 4,
recoil = 3,
accuracy = 1,
projectile_type = /obj/item/projectile/bullet/shotgun/incendiary,
projectile_type = /obj/projectile/bullet/shotgun/incendiary,
fire_sound = 'sound/weapons/gunshot/gunshot1.ogg'
),
list(
@@ -72,7 +72,7 @@
fire_delay = 6,
recoil = 3,
accuracy = 1,
projectile_type = /obj/item/projectile/bullet/rifle/a556,
projectile_type = /obj/projectile/bullet/rifle/a556,
fire_sound = 'sound/weapons/gunshot/gunshot1.ogg'
),
list(
@@ -81,7 +81,7 @@
fire_delay = 6,
recoil = 3,
accuracy = 0,
projectile_type = /obj/item/projectile/bullet/pellet/shotgun,
projectile_type = /obj/projectile/bullet/pellet/shotgun,
fire_sound = 'sound/weapons/gunshot/gunshot1.ogg'
)
)
@@ -13,7 +13,7 @@
w_class = ITEMSIZE_NORMAL
max_shots = 10
charge_cost = 100
projectile_type = /obj/item/projectile/magic
projectile_type = /obj/projectile/magic
origin_tech = list(TECH_COMBAT = 6, TECH_MAGNET = 5, TECH_BLUESPACE = 6)
charge_meter = 0
has_safety = FALSE
@@ -16,7 +16,7 @@
edge = TRUE
origin_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 3, TECH_ENGINEERING = 3)
matter = list(DEFAULT_WALL_MATERIAL = 4000, MATERIAL_GLASS = 2000)
projectile_type = /obj/item/projectile/beam/plasmacutter
projectile_type = /obj/projectile/beam/plasmacutter
cell_type = /obj/item/cell/high
charge_cost = 666.66 // 15 shots on a high cap cell
needspin = FALSE
@@ -66,7 +66,7 @@
cell_type = null
max_shots = 15
/obj/item/projectile/beam/plasmacutter
/obj/projectile/beam/plasmacutter
name = "plasma arc"
icon_state = "omnilaser"
damage = 20
@@ -83,14 +83,14 @@
maiming = TRUE
maim_rate = 1
/obj/item/projectile/beam/plasmacutter/proc/pass_check(var/turf/simulated/mineral/mine_turf)
/obj/projectile/beam/plasmacutter/proc/pass_check(var/turf/simulated/mineral/mine_turf)
if(mineral_passes <= 0)
return list(null, FALSE) // the projectile stops
mineral_passes--
var/mineral_destroyed = on_impact(mine_turf)
return list(PROJECTILE_CONTINUE, mineral_destroyed) // the projectile tunnels deeper
/obj/item/projectile/beam/plasmacutter/on_impact(var/atom/A)
/obj/projectile/beam/plasmacutter/on_impact(var/atom/A)
if(istype(A, /turf/simulated/mineral))
var/turf/simulated/mineral/M = A
if(prob(33))
@@ -171,7 +171,7 @@
return null
if (self_recharge)
addtimer(CALLBACK(src, PROC_REF(try_recharge)), recharge_time * 2 SECONDS, TIMER_UNIQUE)
var/obj/item/projectile/beam/A = new projectile_type(src)
var/obj/projectile/beam/A = new projectile_type(src)
A.damage = capacitor.damage
var/damage_coeff = 1
for(var/obj/item/laser_components/modifier/modifier in gun_mods)
+40 -40
View File
@@ -13,18 +13,18 @@
accuracy = 1
max_shots = 10
can_turret = 1
secondary_projectile_type = /obj/item/projectile/beam
secondary_projectile_type = /obj/projectile/beam
secondary_fire_sound = 'sound/weapons/laser1.ogg'
can_switch_modes = 1
turret_is_lethal = 0
projectile_type = /obj/item/projectile/beam/stun
projectile_type = /obj/projectile/beam/stun
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
modifystate = "energystun"
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="energystun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="energykill", fire_sound='sound/weapons/laser1.ogg')
list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, modifystate="energystun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/projectile/beam, modifystate="energykill", fire_sound='sound/weapons/laser1.ogg')
)
has_item_ratio = FALSE
@@ -56,8 +56,8 @@
charge_failure_message = "'s charging socket was removed to make room for a minaturized reactor."
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/laser1.ogg')
list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/projectile/beam, fire_sound='sound/weapons/laser1.ogg')
)
var/lightfail = 0
@@ -136,19 +136,19 @@
max_shots = 7
fire_delay = 4
can_turret = 1
secondary_projectile_type = /obj/item/projectile/beam/pistol
secondary_projectile_type = /obj/projectile/beam/pistol
secondary_fire_sound = 'sound/weapons/laser1.ogg'
can_switch_modes = 1
turret_sprite_set = "carbine"
turret_is_lethal = 0
projectile_type = /obj/item/projectile/beam/stun
projectile_type = /obj/projectile/beam/stun
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
modifystate = "epistolstun"
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="epistolstun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pistol, modifystate="epistolkill", fire_sound='sound/weapons/laser1.ogg')
list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, modifystate="epistolstun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/projectile/beam/pistol, modifystate="epistolkill", fire_sound='sound/weapons/laser1.ogg')
)
/obj/item/gun/energy/pistol/hegemony
@@ -164,17 +164,17 @@
max_shots = 10
fire_delay = 3
can_turret = FALSE
secondary_projectile_type = /obj/item/projectile/beam/pistol/hegemony
secondary_projectile_type = /obj/projectile/beam/pistol/hegemony
secondary_fire_sound = 'sound/weapons/laser1.ogg'
can_switch_modes = TRUE
projectile_type = /obj/item/projectile/beam/stun
projectile_type = /obj/projectile/beam/stun
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3)
modifystate = "hegemony_pistol"
firemodes = list(
list(mode_name="incapacitate", projectile_type=/obj/item/projectile/beam/stun, modifystate="hegemony_pistol", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="smite", projectile_type=/obj/item/projectile/beam/pistol/hegemony, modifystate="hegemony_pistol", fire_sound='sound/weapons/laser1.ogg')
list(mode_name="incapacitate", projectile_type=/obj/projectile/beam/stun, modifystate="hegemony_pistol", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="smite", projectile_type=/obj/projectile/beam/pistol/hegemony, modifystate="hegemony_pistol", fire_sound='sound/weapons/laser1.ogg')
)
/obj/item/gun/energy/pistol/goldendeep
@@ -190,17 +190,17 @@
max_shots = 10
fire_delay = 3
can_turret = FALSE
secondary_projectile_type = /obj/item/projectile/beam/pistol
secondary_projectile_type = /obj/projectile/beam/pistol
secondary_fire_sound = 'sound/weapons/laser3.ogg'
can_switch_modes = TRUE
projectile_type = /obj/item/projectile/beam/disorient
projectile_type = /obj/projectile/beam/disorient
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3)
modifystate = "ornatepistolstun"
firemodes = list(
list(mode_name="disorient", projectile_type=/obj/item/projectile/beam/disorient, modifystate="ornatepistolstun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pistol, modifystate="ornatepistollethal", fire_sound='sound/weapons/laser1.ogg')
list(mode_name="disorient", projectile_type=/obj/projectile/beam/disorient, modifystate="ornatepistolstun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/projectile/beam/pistol, modifystate="ornatepistollethal", fire_sound='sound/weapons/laser1.ogg')
)
/obj/item/gun/energy/repeater
@@ -219,7 +219,7 @@
offhand_accuracy = 6 // same as firing it in your main hand
projectile_type = /obj/item/projectile/beam/pistol/scc
projectile_type = /obj/projectile/beam/pistol/scc
origin_tech = list(TECH_COMBAT = 5, TECH_MAGNET = 4)
firemodes = list(
@@ -240,17 +240,17 @@
slot_flags = SLOT_BELT|SLOT_HOLSTER
max_shots = 8
fire_delay = 5
secondary_projectile_type = /obj/item/projectile/beam/pistol/scc/weak
secondary_projectile_type = /obj/projectile/beam/pistol/scc/weak
secondary_fire_sound = 'sound/weapons/energy_repeater.ogg'
can_switch_modes = 1
projectile_type = /obj/item/projectile/beam/stun
projectile_type = /obj/projectile/beam/stun
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3)
modifystate = "sccpistolstun"
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="sccpistolstun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pistol/scc/weak, modifystate="sccpistolkill", fire_sound='sound/weapons/energy_repeater.ogg')
list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, modifystate="sccpistolstun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/projectile/beam/pistol/scc/weak, modifystate="sccpistolkill", fire_sound='sound/weapons/energy_repeater.ogg')
)
/obj/item/gun/energy/gun/skrell
@@ -273,12 +273,12 @@
item_state = "particlepistol"
slot_flags = SLOT_BELT|SLOT_HOLSTER
force = 11
projectile_type = /obj/item/projectile/beam/stun/skrell
secondary_projectile_type = /obj/item/projectile/beam/pulse/skrell
projectile_type = /obj/projectile/beam/stun/skrell
secondary_projectile_type = /obj/projectile/beam/pulse/skrell
firemodes = list(
list(mode_name="disable", projectile_type=/obj/item/projectile/beam/stun/skrell, fire_sound='sound/weapons/Laser2.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pulse/skrell, fire_sound='sound/weapons/laser3.ogg')
list(mode_name="disable", projectile_type=/obj/projectile/beam/stun/skrell, fire_sound='sound/weapons/Laser2.ogg'),
list(mode_name="lethal", projectile_type=/obj/projectile/beam/pulse/skrell, fire_sound='sound/weapons/laser3.ogg')
)
/obj/item/gun/energy/gun/skrell/smg
@@ -290,12 +290,12 @@
slot_flags = SLOT_BELT|SLOT_HOLSTER|SLOT_BACK
max_shots = 14
force = 16
projectile_type = /obj/item/projectile/beam/stun/skrell
secondary_projectile_type = /obj/item/projectile/beam/pulse/skrell
projectile_type = /obj/projectile/beam/stun/skrell
secondary_projectile_type = /obj/projectile/beam/pulse/skrell
firemodes = list(
list(mode_name="disable", projectile_type=/obj/item/projectile/beam/stun/skrell, fire_sound='sound/weapons/Laser2.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pulse/skrell, fire_sound='sound/weapons/laser3.ogg', burst = 2, burst_delay = 2)
list(mode_name="disable", projectile_type=/obj/projectile/beam/stun/skrell, fire_sound='sound/weapons/Laser2.ogg'),
list(mode_name="lethal", projectile_type=/obj/projectile/beam/pulse/skrell, fire_sound='sound/weapons/laser3.ogg', burst = 2, burst_delay = 2)
)
/obj/item/gun/energy/gun/qukala
@@ -309,17 +309,17 @@
slot_flags = SLOT_BELT
accuracy = 2
max_shots = 25
secondary_projectile_type = /obj/item/projectile/beam
secondary_projectile_type = /obj/projectile/beam
secondary_fire_sound = 'sound/weapons/laser1.ogg'
can_switch_modes = 1
projectile_type = /obj/item/projectile/beam/stun
projectile_type = /obj/projectile/beam/stun
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
modifystate = "qukalagun"
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/midlaser/skrell, fire_sound='sound/weapons/laser1.ogg')
list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/projectile/beam/midlaser/skrell, fire_sound='sound/weapons/laser1.ogg')
)
has_item_ratio = FALSE
@@ -343,16 +343,16 @@
max_shots = 8
fire_delay = 4
can_turret = FALSE
secondary_projectile_type = /obj/item/projectile/energy/blaster/skrell
secondary_projectile_type = /obj/projectile/energy/blaster/skrell
secondary_fire_sound = 'sound/weapons/laser3.ogg'
can_switch_modes = TRUE
projectile_type = /obj/item/projectile/energy/disruptorstun/skrell
projectile_type = /obj/projectile/energy/disruptorstun/skrell
modifystate = "psipistolstun"
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/energy/disruptorstun/skrell, modifystate="psipistolstun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/energy/blaster/skrell, modifystate="psipistollethal", fire_sound='sound/weapons/laser3.ogg'),
list(mode_name="ion", projectile_type=/obj/item/projectile/ion/small, modifystate="psipistolion", fire_sound='sound/weapons/laser1.ogg')
list(mode_name="stun", projectile_type=/obj/projectile/energy/disruptorstun/skrell, modifystate="psipistolstun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/projectile/energy/blaster/skrell, modifystate="psipistollethal", fire_sound='sound/weapons/laser3.ogg'),
list(mode_name="ion", projectile_type=/obj/projectile/ion/small, modifystate="psipistolion", fire_sound='sound/weapons/laser1.ogg')
)
/obj/item/gun/energy/fedpistol/nopsi
@@ -7,21 +7,21 @@
slot_flags = SLOT_BELT
force = 11
fire_sound='sound/weapons/laser1.ogg'
projectile_type = /obj/item/projectile/beam
projectile_type = /obj/projectile/beam
sel_mode = 2
accuracy = 1
max_shots = 10
can_turret = 1
secondary_projectile_type = /obj/item/projectile/beam/pulse
secondary_projectile_type = /obj/projectile/beam/pulse
secondary_fire_sound = 'sound/weapons/pulse.ogg'
can_switch_modes = 0
turret_sprite_set = "pulse"
turret_is_lethal = 1
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/laser1.ogg'),
list(mode_name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=25)
list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/projectile/beam, fire_sound='sound/weapons/laser1.ogg'),
list(mode_name="DESTROY", projectile_type=/obj/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=25)
)
/obj/item/gun/energy/pulse/mounted

Some files were not shown because too many files have changed in this diff Show More