mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-08-29 15:06:39 +01:00
Polaris sync
This commit is contained in:
@@ -356,6 +356,14 @@
|
||||
name = "extended magazine (5.45mm armor-piercing)"
|
||||
max_ammo = 30
|
||||
|
||||
/obj/item/ammo_magazine/m545/hunter
|
||||
name = "magazine (5.45mm hunting)"
|
||||
ammo_type = /obj/item/ammo_casing/a545/hunter
|
||||
|
||||
/obj/item/ammo_magazine/m545/hunter/ext
|
||||
name = "extended magazine (5.45mm hunting)"
|
||||
max_ammo = 30
|
||||
|
||||
/obj/item/ammo_magazine/m545/small
|
||||
name = "reduced magazine (5.45mm)"
|
||||
icon_state = "m545-small"
|
||||
@@ -373,6 +381,10 @@
|
||||
name = "magazine (5.45mm armor-piercing)"
|
||||
ammo_type = /obj/item/ammo_casing/a545/ap
|
||||
|
||||
/obj/item/ammo_magazine/m545/small/hunter
|
||||
name = "magazine (5.45mm hunting)"
|
||||
ammo_type = /obj/item/ammo_casing/a545/hunter
|
||||
|
||||
/obj/item/ammo_magazine/clip/c545
|
||||
name = "ammo clip (5.45mm)"
|
||||
icon_state = "clip_rifle"
|
||||
@@ -386,6 +398,10 @@
|
||||
name = "rifle clip (5.45mm armor-piercing)"
|
||||
ammo_type = /obj/item/ammo_casing/a545/ap
|
||||
|
||||
/obj/item/ammo_magazine/clip/c545/hunter
|
||||
name = "rifle clip (5.45mm hunting)"
|
||||
ammo_type = /obj/item/ammo_casing/a545/hunter
|
||||
|
||||
/obj/item/ammo_magazine/clip/c545/practice
|
||||
name = "rifle clip (5.45mm practice)"
|
||||
ammo_type = /obj/item/ammo_casing/a545
|
||||
@@ -406,6 +422,10 @@
|
||||
name = "magazine box (5.45mm armor-piercing)"
|
||||
ammo_type = /obj/item/ammo_casing/a545/ap
|
||||
|
||||
/obj/item/ammo_magazine/m545saw/hunter
|
||||
name = "magazine box (5.45mm hunting)"
|
||||
ammo_type = /obj/item/ammo_casing/a545/hunter
|
||||
|
||||
/obj/item/ammo_magazine/m545saw/empty
|
||||
initial_ammo = 0
|
||||
|
||||
@@ -505,6 +525,10 @@
|
||||
name = "rifle clip (7.62mm practice)"
|
||||
ammo_type = /obj/item/ammo_casing/a762p
|
||||
|
||||
/obj/item/ammo_magazine/clip/c762/hunter
|
||||
name = "rifle clip (7.62mm hunting)"
|
||||
ammo_type = /obj/item/ammo_casing/a762/hunter
|
||||
|
||||
/obj/item/ammo_magazine/m762svd
|
||||
name = "\improper SVD magazine (7.62mm)"
|
||||
icon_state = "SVD"
|
||||
@@ -551,12 +575,12 @@
|
||||
|
||||
/obj/item/ammo_magazine/clip/c12g
|
||||
name = "ammo clip (12g slug)"
|
||||
icon_state = "12gclipslug" //largely a codersprite, looks good enough. feel free to make a better one.
|
||||
icon_state = "12gclipslug" // Still a placeholder sprite. Feel free to make a better one.
|
||||
desc = "A color-coded metal clip for holding and quickly loading shotgun shells. This one is loaded with slugs."
|
||||
caliber = "12g"
|
||||
ammo_type = /obj/item/ammo_casing/a12g
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1790) // slugs shells x4 + 350 metal for the clip itself.
|
||||
max_ammo = 4
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1070) // slugs shells x2 + 350 metal for the clip itself.
|
||||
max_ammo = 2
|
||||
multiple_sprites = 1
|
||||
|
||||
/obj/item/ammo_magazine/clip/c12g/pellet
|
||||
@@ -564,14 +588,14 @@
|
||||
icon_state = "12gclipshell"
|
||||
desc = "A color-coded metal clip for holding and quickly loading shotgun shells. This one is loaded with buckshot."
|
||||
ammo_type = /obj/item/ammo_casing/a12g/pellet
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1790) // buckshot and slugs cost the same
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1070) // buckshot and slugs cost the same
|
||||
|
||||
/obj/item/ammo_magazine/clip/c12g/beanbag
|
||||
name = "ammo clip (12g beanbag)"
|
||||
icon_state = "12gclipbean"
|
||||
desc = "A color-coded metal clip for holding and quickly loading shotgun shells. This one is loaded with beanbags."
|
||||
ammo_type = /obj/item/ammo_casing/a12g/beanbag
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1070) //beanbags x4 + 350 metal
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 710) //beanbags x2 + 350 metal
|
||||
|
||||
///////// .75 Gyrojet /////////
|
||||
|
||||
|
||||
@@ -258,6 +258,10 @@
|
||||
desc = "A 7.62mm hollow-point bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a762/hollow
|
||||
|
||||
/obj/item/ammo_casing/a762/hunter
|
||||
desc = "A 7.62mm hunting bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a762/hunter
|
||||
|
||||
/*
|
||||
* 14.5mm (anti-materiel rifle round)
|
||||
*/
|
||||
@@ -298,6 +302,10 @@
|
||||
desc = "A 5.45mm hollow-point bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a545/hollow
|
||||
|
||||
/obj/item/ammo_casing/a545/hunter
|
||||
desc = "A 5.45mm hunting bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a545/hunter
|
||||
|
||||
/*
|
||||
* Misc
|
||||
*/
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
var/obj/item/weapon/cell/power_supply //What type of power cell this uses
|
||||
var/charge_cost = 240 //How much energy is needed to fire.
|
||||
var/cell_type = null
|
||||
var/cell_type = /obj/item/weapon/cell/device/weapon
|
||||
var/projectile_type = /obj/item/projectile/beam/practice
|
||||
var/modifystate
|
||||
var/charge_meter = 1 //if set, the icon state will be chosen based on the current charge
|
||||
@@ -34,12 +34,15 @@
|
||||
|
||||
/obj/item/weapon/gun/energy/New()
|
||||
..()
|
||||
if(cell_type)
|
||||
power_supply = new cell_type(src)
|
||||
else
|
||||
power_supply = new /obj/item/weapon/cell/device/weapon(src)
|
||||
if(self_recharge)
|
||||
power_supply = new /obj/item/weapon/cell/device/weapon(src)
|
||||
processing_objects.Add(src)
|
||||
else
|
||||
if(cell_type)
|
||||
power_supply = new cell_type(src)
|
||||
else
|
||||
power_supply = null
|
||||
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/gun/energy/Destroy()
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
/obj/item/weapon/gun/energy/laser
|
||||
name = "laser carbine"
|
||||
desc = "A Hephaestus Industries G40E carbine, designed to kill with concentrated energy blasts. This varient has the ability to \
|
||||
name = "laser rifle"
|
||||
desc = "A Hephaestus Industries G40E rifle, designed to kill with concentrated energy blasts. This varient has the ability to \
|
||||
switch between standard fire and a more efficent but weaker 'suppressive' fire."
|
||||
icon_state = "laser"
|
||||
item_state = "laser"
|
||||
fire_sound = 'sound/weapons/Laser.ogg'
|
||||
fire_delay = 8
|
||||
slot_flags = SLOT_BELT|SLOT_BACK
|
||||
w_class = ITEMSIZE_LARGE
|
||||
force = 10
|
||||
@@ -15,8 +16,8 @@
|
||||
one_handed_penalty = 2
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="normal", projectile_type=/obj/item/projectile/beam/midlaser, charge_cost = 240),
|
||||
list(mode_name="suppressive", projectile_type=/obj/item/projectile/beam/weaklaser, charge_cost = 60),
|
||||
list(mode_name="normal", fire_delay=8, projectile_type=/obj/item/projectile/beam/midlaser, charge_cost = 240),
|
||||
list(mode_name="suppressive", fire_delay=5, projectile_type=/obj/item/projectile/beam/weaklaser, charge_cost = 60),
|
||||
)
|
||||
|
||||
/obj/item/weapon/gun/energy/laser/mounted
|
||||
@@ -52,6 +53,26 @@
|
||||
self_recharge = 1
|
||||
use_external_power = 1
|
||||
|
||||
/obj/item/weapon/gun/energy/retro/empty
|
||||
icon_state = "retro"
|
||||
cell_type = null
|
||||
|
||||
|
||||
/obj/item/weapon/gun/energy/alien
|
||||
name = "alien pistol"
|
||||
desc = "A weapon that works very similarly to a traditional energy weapon. How this came to be will likely be a mystery for the ages."
|
||||
icon_state = "alienpistol"
|
||||
item_state = "alienpistol"
|
||||
fire_sound = 'sound/weapons/eLuger.ogg'
|
||||
fire_delay = 10 // Handguns should be inferior to two-handed weapons. Even alien ones I suppose.
|
||||
charge_cost = 480 // Five shots.
|
||||
|
||||
projectile_type = /obj/item/projectile/beam/cyan
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge/alien // Self charges.
|
||||
origin_tech = list(TECH_COMBAT = 8, TECH_MAGNET = 7)
|
||||
modifystate = "alienpistol"
|
||||
|
||||
|
||||
/obj/item/weapon/gun/energy/captain
|
||||
name = "antique laser gun"
|
||||
icon_state = "caplaser"
|
||||
@@ -65,9 +86,8 @@
|
||||
origin_tech = null
|
||||
fire_delay = 10 //Old pistol
|
||||
charge_cost = 480 //to compensate a bit for self-recharging
|
||||
self_recharge = 1
|
||||
recharge_time = 3 //Recharges a bit more quickly...
|
||||
charge_delay = 100 //... but it takes a while to get started
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge/captain
|
||||
battery_lock = 1
|
||||
|
||||
/obj/item/weapon/gun/energy/lasercannon
|
||||
name = "laser cannon"
|
||||
@@ -87,7 +107,6 @@
|
||||
accuracy = 3
|
||||
charge_cost = 600
|
||||
|
||||
|
||||
/obj/item/weapon/gun/energy/lasercannon/mounted
|
||||
name = "mounted laser cannon"
|
||||
self_recharge = 1
|
||||
@@ -145,10 +164,11 @@
|
||||
item_state = "laser"
|
||||
desc = "Standard issue weapon of the Imperial Guard"
|
||||
origin_tech = list(TECH_COMBAT = 1, TECH_MAGNET = 2)
|
||||
self_recharge = 1
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 2000)
|
||||
fire_sound = 'sound/weapons/Laser.ogg'
|
||||
projectile_type = /obj/item/projectile/beam/lastertag/blue
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge
|
||||
battery_lock = 1
|
||||
var/required_vest
|
||||
|
||||
/obj/item/weapon/gun/energy/lasertag/special_check(var/mob/living/carbon/human/M)
|
||||
|
||||
@@ -56,7 +56,8 @@
|
||||
force = 8 //looks heavier than a pistol
|
||||
w_class = ITEMSIZE_LARGE //Looks bigger than a pistol, too.
|
||||
fire_delay = 6 //This one's not a handgun, it should have the same fire delay as everything else
|
||||
self_recharge = 1
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge
|
||||
battery_lock = 1
|
||||
modifystate = null
|
||||
|
||||
// requires_two_hands = 1
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
/obj/item/weapon/gun/energy/ionrifle/pistol
|
||||
name = "ion pistol"
|
||||
desc = "The NT Mk63 EW Pan is a man portable anti-armor weapon designed to disable mechanical threats, produced by NT. This model sacrifices capacity for portability.."
|
||||
desc = "The NT Mk63 EW Pan is a man portable anti-armor weapon designed to disable mechanical threats, produced by NT. This model sacrifices capacity for portability."
|
||||
icon_state = "ionpistol"
|
||||
item_state = null
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
@@ -43,7 +43,8 @@
|
||||
projectile_type = /obj/item/projectile/energy/floramut
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3, TECH_POWER = 3)
|
||||
modifystate = "floramut"
|
||||
self_recharge = 1
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge
|
||||
battery_lock = 1
|
||||
var/decl/plantgene/gene = null
|
||||
|
||||
firemodes = list(
|
||||
@@ -126,7 +127,7 @@
|
||||
|
||||
/obj/item/weapon/gun/energy/staff
|
||||
name = "staff of change"
|
||||
desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself"
|
||||
desc = "An artifact that spits bolts of coruscating energy which cause the target's very form to reshape itself."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
item_icons = null
|
||||
icon_state = "staffofchange"
|
||||
@@ -137,12 +138,13 @@
|
||||
charge_cost = 480
|
||||
projectile_type = /obj/item/projectile/change
|
||||
origin_tech = null
|
||||
self_recharge = 1
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge
|
||||
battery_lock = 1
|
||||
charge_meter = 0
|
||||
|
||||
/obj/item/weapon/gun/energy/staff/special_check(var/mob/user)
|
||||
if((user.mind && !wizards.is_antagonist(user.mind)))
|
||||
usr << "<span class='warning'>You focus your mind on \the [src], but nothing happens!</span>"
|
||||
to_chat(usr, "<span class='warning'>You focus your mind on \the [src], but nothing happens!</span>")
|
||||
return 0
|
||||
|
||||
return ..()
|
||||
@@ -156,13 +158,13 @@
|
||||
|
||||
/obj/item/weapon/gun/energy/staff/animate
|
||||
name = "staff of animation"
|
||||
desc = "An artefact that spits bolts of life-force which causes objects which are hit by it to animate and come to life! This magic doesn't affect machines."
|
||||
desc = "An artifact that spits bolts of life force, which causes objects which are hit by it to animate and come to life! This magic doesn't affect machines."
|
||||
projectile_type = /obj/item/projectile/animate
|
||||
charge_cost = 240
|
||||
|
||||
obj/item/weapon/gun/energy/staff/focus
|
||||
name = "mental focus"
|
||||
desc = "An artefact that channels the will of the user into destructive bolts of force. If you aren't careful with it, you might poke someone's brain out."
|
||||
desc = "An artifact that channels the will of the user into destructive bolts of force. If you aren't careful with it, you might poke someone's brain out."
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "focus"
|
||||
slot_flags = SLOT_BACK
|
||||
@@ -171,24 +173,25 @@ obj/item/weapon/gun/energy/staff/focus
|
||||
attack_self(mob/living/user as mob)
|
||||
if(projectile_type == "/obj/item/projectile/forcebolt")
|
||||
charge_cost = 400
|
||||
user << "<span class='warning'>The [src.name] will now strike a small area.</span>"
|
||||
to_chat(user, "<span class='warning'>The [src.name] will now strike a small area.</span>")
|
||||
projectile_type = "/obj/item/projectile/forcebolt/strong"
|
||||
else
|
||||
charge_cost = 200
|
||||
user << "<span class='warning'>The [src.name] will now strike only a single person.</span>"
|
||||
to_chat(user, "<span class='warning'>The [src.name] will now strike only a single person.</span>")
|
||||
projectile_type = "/obj/item/projectile/forcebolt"
|
||||
*/
|
||||
|
||||
/obj/item/weapon/gun/energy/dakkalaser
|
||||
name = "suppression gun"
|
||||
desc = "A massive weapon, designed to pressure the opposition by raining down a torrent of energy pellets."
|
||||
desc = "A massive weapon designed to pressure the opposition by raining down a torrent of energy pellets."
|
||||
icon_state = "dakkalaser"
|
||||
item_state = "dakkalaser"
|
||||
fire_sound = 'sound/weapons/Laser.ogg'
|
||||
w_class = ITEMSIZE_HUGE
|
||||
charge_cost = 24 // 100 shots, it's a spray and pray (to RNGesus) weapon.
|
||||
projectile_type = /obj/item/projectile/energy/blue_pellet
|
||||
self_recharge = 1
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge
|
||||
battery_lock = 1
|
||||
accuracy = 5 // Suppressive weapons don't work too well if there's no risk of being hit.
|
||||
burst_delay = 1 // Burst faster than average.
|
||||
origin_tech = list(TECH_COMBAT = 6, TECH_MAGNET = 6, TECH_ILLEGAL = 6)
|
||||
@@ -197,4 +200,4 @@ obj/item/weapon/gun/energy/staff/focus
|
||||
list(mode_name="single shot", burst = 1, burst_accuracy = list(5), dispersion = list(0), charge_cost = 24),
|
||||
list(mode_name="five shot burst", burst = 5, burst_accuracy = list(5,5,5,5,5), dispersion = list(1,1,1,1,1)),
|
||||
list(mode_name="ten shot burst", burst = 10, burst_accuracy = list(5,5,5,5,5,5,5,5,5,5), dispersion = list(2,2,2,2,2,2,2,2,2,2)),
|
||||
)
|
||||
)
|
||||
|
||||
@@ -41,7 +41,8 @@
|
||||
fire_sound = 'sound/weapons/Genhit.ogg'
|
||||
projectile_type = /obj/item/projectile/energy/bolt
|
||||
charge_cost = 480
|
||||
self_recharge = 1
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge
|
||||
battery_lock = 1
|
||||
charge_meter = 0
|
||||
|
||||
/obj/item/weapon/gun/energy/crossbow/ninja
|
||||
|
||||
@@ -20,16 +20,12 @@
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/rifle/ceremonial
|
||||
name = "ceremonial bolt-action rifle"
|
||||
desc = "A bolt-action rifle with a heavy, high-quality wood stock that has a beautiful finish. Clearly not intended to be used in combat. Uses 7.62mm rounds."
|
||||
icon_state = "boltaction_c"
|
||||
item_state = "boltaction_c"
|
||||
ammo_type = /obj/item/ammo_casing/a762/blank
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/rifle/mosin
|
||||
name = "\improper Mosin Nagant"
|
||||
desc = "Despite its age, the Mosin Nagant continues to be a favorite weapon among colonists, conscripts, and militias across the cosmos. Most today are built by Chen-Iltchenko Firearms, but it's hard to say who built this particular gun, considering the design has been ripped off by just about every arms manufacturer in the galaxy. Uses 7.62mm rounds."
|
||||
icon_state = "mosin"
|
||||
item_state = "mosin"
|
||||
|
||||
// Stole hacky terrible code from doublebarrel shotgun. -Spades
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/rifle/mosin/attackby(var/obj/item/A as obj, mob/user as mob)
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/rifle/ceremonial/attackby(var/obj/item/A as obj, mob/user as mob)
|
||||
if(istype(A, /obj/item/weapon/surgical/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter) && w_class != ITEMSIZE_NORMAL)
|
||||
user << "<span class='notice'>You begin to shorten the barrel and stock of \the [src].</span>"
|
||||
if(loaded.len)
|
||||
@@ -38,16 +34,16 @@
|
||||
user.visible_message("<span class='danger'>[src] goes off!</span>", "<span class='danger'>The rifle goes off in your face!</span>")
|
||||
return
|
||||
if(do_after(user, 30))
|
||||
icon_state = "obrez"
|
||||
icon_state = "sawnrifle"
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
recoil = 2 // Owch
|
||||
accuracy = -1 // You know damn well why.
|
||||
item_state = "gun"
|
||||
slot_flags &= ~SLOT_BACK //you can't sling it on your back
|
||||
slot_flags |= (SLOT_BELT|SLOT_HOLSTER) //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) - or in a holster, why not.
|
||||
name = "\improper Obrez"
|
||||
desc = "The firepower of a Mosin, now the size of a pistol, with an effective combat range of about three feet. Uses 7.62mm rounds."
|
||||
user << "<span class='warning'>You shorten the barrel and stock of \the [src]!</span>"
|
||||
name = "sawn-off rifle"
|
||||
desc = "The firepower of a rifle, now the size of a pistol, with an effective combat range of about three feet. Uses 7.62mm rounds."
|
||||
to_chat(user, "<span class='warning'>You shorten the barrel and stock of \the [src]!</span>")
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
@@ -60,7 +60,8 @@
|
||||
w_class = ITEMSIZE_HUGE
|
||||
charge_cost = 300
|
||||
projectile_type = /obj/item/projectile/beam/stun/darkmatter
|
||||
self_recharge = 1
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge
|
||||
battery_lock = 1
|
||||
accuracy = 2
|
||||
|
||||
firemodes = list(
|
||||
@@ -85,7 +86,7 @@
|
||||
/obj/item/projectile/beam/darkmatter
|
||||
name = "dark matter bolt"
|
||||
icon_state = "darkb"
|
||||
damage = 60
|
||||
damage = 35
|
||||
armor_penetration = 35
|
||||
damage_type = BRUTE
|
||||
check_armour = "energy"
|
||||
@@ -118,7 +119,8 @@
|
||||
item_state = "noise"
|
||||
fire_sound = 'sound/effects/basscannon.ogg'
|
||||
w_class = ITEMSIZE_HUGE
|
||||
self_recharge = 1
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge
|
||||
battery_lock = 1
|
||||
charge_cost = 600
|
||||
|
||||
projectile_type=/obj/item/projectile/sonic/weak
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
|
||||
var/damage = 10
|
||||
var/damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE, HALLOSS are the only things that should be in here
|
||||
var/SA_bonus_damage = 0 // Some bullets inflict extra damage on simple animals.
|
||||
var/SA_vulnerability = null // What kind of simple animal the above bonus damage should be applied to. Set to null to apply to all SAs.
|
||||
var/nodamage = 0 //Determines if the projectile will skip any damage inflictions
|
||||
var/taser_effect = 0 //If set then the projectile will apply it's agony damage using stun_effect_act() to mobs it hits, and other damage will be ignored
|
||||
var/check_armour = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb //Cael - bio and rad are also valid
|
||||
|
||||
@@ -70,6 +70,16 @@
|
||||
tracer_type = /obj/effect/projectile/xray/tracer
|
||||
impact_type = /obj/effect/projectile/xray/impact
|
||||
|
||||
/obj/item/projectile/beam/cyan
|
||||
name = "cyan beam"
|
||||
icon_state = "cyan"
|
||||
damage = 40
|
||||
light_color = "#00C6FF"
|
||||
|
||||
muzzle_type = /obj/effect/projectile/laser_omni/muzzle
|
||||
tracer_type = /obj/effect/projectile/laser_omni/tracer
|
||||
impact_type = /obj/effect/projectile/laser_omni/impact
|
||||
|
||||
/obj/item/projectile/beam/pulse
|
||||
name = "pulse"
|
||||
icon_state = "u_laser"
|
||||
|
||||
@@ -209,6 +209,11 @@
|
||||
armor_penetration = -50
|
||||
penetrating = 0
|
||||
|
||||
/obj/item/projectile/bullet/rifle/a762/hunter // Optimized for killing simple animals and not people, because Balance.
|
||||
damage = 20
|
||||
SA_bonus_damage = 50 // 70 total on animals.
|
||||
SA_vulnerability = SA_ANIMAL
|
||||
|
||||
/obj/item/projectile/bullet/rifle/a545
|
||||
damage = 25
|
||||
|
||||
@@ -221,6 +226,11 @@
|
||||
armor_penetration = -50
|
||||
penetrating = 0
|
||||
|
||||
/obj/item/projectile/bullet/rifle/a545/hunter
|
||||
damage = 15
|
||||
SA_bonus_damage = 35 // 50 total on animals.
|
||||
SA_vulnerability = SA_ANIMAL
|
||||
|
||||
/obj/item/projectile/bullet/rifle/a145
|
||||
damage = 80
|
||||
stun = 3
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
var/pulse_range = 1
|
||||
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
/obj/item/projectile/ion/on_hit(var/atom/target, var/blocked = 0)
|
||||
empulse(target, pulse_range, pulse_range, pulse_range, pulse_range)
|
||||
return 1
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
sharp = 1
|
||||
edge = 1
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
/obj/item/projectile/bullet/gyro/on_hit(var/atom/target, var/blocked = 0)
|
||||
explosion(target, -1, 0, 2)
|
||||
return 1
|
||||
|
||||
@@ -81,26 +81,26 @@
|
||||
nodamage = 1
|
||||
check_armour = "bullet"
|
||||
|
||||
Bump(atom/A as mob|obj|turf|area)
|
||||
if(A == firer)
|
||||
loc = A.loc
|
||||
return
|
||||
/obj/item/projectile/meteor/Bump(atom/A as mob|obj|turf|area)
|
||||
if(A == firer)
|
||||
loc = A.loc
|
||||
return
|
||||
|
||||
sleep(-1) //Might not be important enough for a sleep(-1) but the sleep/spawn itself is necessary thanks to explosions and metoerhits
|
||||
sleep(-1) //Might not be important enough for a sleep(-1) but the sleep/spawn itself is necessary thanks to explosions and metoerhits
|
||||
|
||||
if(src)//Do not add to this if() statement, otherwise the meteor won't delete them
|
||||
if(A)
|
||||
if(src)//Do not add to this if() statement, otherwise the meteor won't delete them
|
||||
if(A)
|
||||
|
||||
A.ex_act(2)
|
||||
playsound(src.loc, 'sound/effects/meteorimpact.ogg', 40, 1)
|
||||
A.ex_act(2)
|
||||
playsound(src.loc, 'sound/effects/meteorimpact.ogg', 40, 1)
|
||||
|
||||
for(var/mob/M in range(10, src))
|
||||
if(!M.stat && !istype(M, /mob/living/silicon/ai))\
|
||||
shake_camera(M, 3, 1)
|
||||
qdel(src)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
for(var/mob/M in range(10, src))
|
||||
if(!M.stat && !istype(M, /mob/living/silicon/ai))\
|
||||
shake_camera(M, 3, 1)
|
||||
qdel(src)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
/obj/item/projectile/energy/floramut
|
||||
name = "alpha somatoray"
|
||||
@@ -113,36 +113,36 @@
|
||||
light_power = 0.5
|
||||
light_color = "#33CC00"
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
var/mob/living/M = target
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if((H.species.flags & IS_PLANT) && (M.nutrition < 500))
|
||||
if(prob(15))
|
||||
M.apply_effect((rand(30,80)),IRRADIATE)
|
||||
M.Weaken(5)
|
||||
for (var/mob/V in viewers(src))
|
||||
V.show_message("<font color='red'>[M] writhes in pain as \his vacuoles boil.</font>", 3, "<font color='red'>You hear the crunching of leaves.</font>", 2)
|
||||
if(prob(35))
|
||||
// for (var/mob/V in viewers(src)) //Public messages commented out to prevent possible metaish genetics experimentation and stuff. - Cheridan
|
||||
// V.show_message("<font color='red'>[M] is mutated by the radiation beam.</font>", 3, "<font color='red'> You hear the snapping of twigs.</font>", 2)
|
||||
if(prob(80))
|
||||
randmutb(M)
|
||||
domutcheck(M,null)
|
||||
else
|
||||
randmutg(M)
|
||||
domutcheck(M,null)
|
||||
/obj/item/projectile/energy/floramut/on_hit(var/atom/target, var/blocked = 0)
|
||||
var/mob/living/M = target
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if((H.species.flags & IS_PLANT) && (M.nutrition < 500))
|
||||
if(prob(15))
|
||||
M.apply_effect((rand(30,80)),IRRADIATE)
|
||||
M.Weaken(5)
|
||||
for (var/mob/V in viewers(src))
|
||||
V.show_message("<font color='red'>[M] writhes in pain as \his vacuoles boil.</font>", 3, "<font color='red'>You hear the crunching of leaves.</font>", 2)
|
||||
if(prob(35))
|
||||
// for (var/mob/V in viewers(src)) //Public messages commented out to prevent possible metaish genetics experimentation and stuff. - Cheridan
|
||||
// V.show_message("<font color='red'>[M] is mutated by the radiation beam.</font>", 3, "<font color='red'> You hear the snapping of twigs.</font>", 2)
|
||||
if(prob(80))
|
||||
randmutb(M)
|
||||
domutcheck(M,null)
|
||||
else
|
||||
M.adjustFireLoss(rand(5,15))
|
||||
M.show_message("<font color='red'>The radiation beam singes you!</font>")
|
||||
// for (var/mob/V in viewers(src))
|
||||
// V.show_message("<font color='red'>[M] is singed by the radiation beam.</font>", 3, "<font color='red'> You hear the crackle of burning leaves.</font>", 2)
|
||||
else if(istype(target, /mob/living/carbon/))
|
||||
// for (var/mob/V in viewers(src))
|
||||
// V.show_message("The radiation beam dissipates harmlessly through [M]", 3)
|
||||
M.show_message("<font color='blue'>The radiation beam dissipates harmlessly through your body.</font>")
|
||||
else
|
||||
return 1
|
||||
randmutg(M)
|
||||
domutcheck(M,null)
|
||||
else
|
||||
M.adjustFireLoss(rand(5,15))
|
||||
M.show_message("<font color='red'>The radiation beam singes you!</font>")
|
||||
// for (var/mob/V in viewers(src))
|
||||
// V.show_message("<font color='red'>[M] is singed by the radiation beam.</font>", 3, "<font color='red'> You hear the crackle of burning leaves.</font>", 2)
|
||||
else if(istype(target, /mob/living/carbon/))
|
||||
// for (var/mob/V in viewers(src))
|
||||
// V.show_message("The radiation beam dissipates harmlessly through [M]", 3)
|
||||
M.show_message("<font color='blue'>The radiation beam dissipates harmlessly through your body.</font>")
|
||||
else
|
||||
return 1
|
||||
|
||||
/obj/item/projectile/energy/floramut/gene
|
||||
name = "gamma somatoray"
|
||||
@@ -164,25 +164,25 @@
|
||||
light_power = 0.5
|
||||
light_color = "#FFFFFF"
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
var/mob/M = target
|
||||
if(ishuman(target)) //These rays make plantmen fat.
|
||||
var/mob/living/carbon/human/H = M
|
||||
if((H.species.flags & IS_PLANT) && (M.nutrition < 500))
|
||||
M.nutrition += 30
|
||||
else if (istype(target, /mob/living/carbon/))
|
||||
M.show_message("<font color='blue'>The radiation beam dissipates harmlessly through your body.</font>")
|
||||
else
|
||||
return 1
|
||||
/obj/item/projectile/energy/florayield/on_hit(var/atom/target, var/blocked = 0)
|
||||
var/mob/M = target
|
||||
if(ishuman(target)) //These rays make plantmen fat.
|
||||
var/mob/living/carbon/human/H = M
|
||||
if((H.species.flags & IS_PLANT) && (M.nutrition < 500))
|
||||
M.nutrition += 30
|
||||
else if (istype(target, /mob/living/carbon/))
|
||||
M.show_message("<font color='blue'>The radiation beam dissipates harmlessly through your body.</font>")
|
||||
else
|
||||
return 1
|
||||
|
||||
|
||||
/obj/item/projectile/beam/mindflayer
|
||||
name = "flayer ray"
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/M = target
|
||||
M.Confuse(rand(5,8))
|
||||
/obj/item/projectile/beam/mindflayer/on_hit(var/atom/target, var/blocked = 0)
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/M = target
|
||||
M.Confuse(rand(5,8))
|
||||
|
||||
/obj/item/projectile/chameleon
|
||||
name = "bullet"
|
||||
@@ -192,3 +192,36 @@
|
||||
nodamage = 1
|
||||
damage_type = HALLOSS
|
||||
muzzle_type = /obj/effect/projectile/bullet/muzzle
|
||||
|
||||
/obj/item/projectile/bola
|
||||
name = "bola"
|
||||
icon_state = "bola"
|
||||
damage = 5
|
||||
embed_chance = 0 //Nada.
|
||||
damage_type = HALLOSS
|
||||
muzzle_type = null
|
||||
|
||||
/obj/item/projectile/bola/on_hit(var/atom/target, var/blocked = 0)
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/M = target
|
||||
var/obj/item/weapon/handcuffs/legcuffs/bola/B = new(src.loc)
|
||||
if(!B.place_legcuffs(M,firer))
|
||||
if(B)
|
||||
qdel(B)
|
||||
..()
|
||||
|
||||
/obj/item/projectile/webball
|
||||
name = "ball of web"
|
||||
icon_state = "bola"
|
||||
damage = 10
|
||||
embed_chance = 0 //Nada.
|
||||
damage_type = BRUTE
|
||||
muzzle_type = null
|
||||
|
||||
/obj/item/projectile/webball/on_hit(var/atom/target, var/blocked = 0)
|
||||
if(isturf(target.loc))
|
||||
var/obj/effect/spider/stickyweb/W = locate() in get_turf(target)
|
||||
if(!W && prob(75))
|
||||
visible_message("<span class='danger'>\The [src] splatters a layer of web on \the [target]!</span>")
|
||||
new /obj/effect/spider/stickyweb(target.loc)
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user