mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-20 19:44:46 +01:00
Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-sync-2017-06-01
# Conflicts: # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/modules/multiz/movement.dm # code/modules/projectiles/ammunition/magazines.dm
This commit is contained in:
@@ -480,7 +480,7 @@
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/det(M), slot_head)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_magazine/a357(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_magazine/s357(M), slot_l_store)
|
||||
|
||||
if ("tournament chef") //Steven Seagal FTW
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(M), slot_w_uniform)
|
||||
@@ -592,7 +592,7 @@
|
||||
sec_briefcase.contents += new /obj/item/weapon/spacecash/c1000
|
||||
sec_briefcase.contents += new /obj/item/weapon/gun/energy/crossbow
|
||||
sec_briefcase.contents += new /obj/item/weapon/gun/projectile/revolver/mateba
|
||||
sec_briefcase.contents += new /obj/item/ammo_magazine/a357
|
||||
sec_briefcase.contents += new /obj/item/ammo_magazine/s357
|
||||
sec_briefcase.contents += new /obj/item/weapon/plastique
|
||||
M.equip_to_slot_or_del(sec_briefcase, slot_l_hand)
|
||||
|
||||
|
||||
@@ -77,6 +77,38 @@
|
||||
display_name = "flats, black"
|
||||
path = /obj/item/clothing/shoes/flats
|
||||
|
||||
/datum/gear/shoes/hitops/
|
||||
display_name = "high-top, white"
|
||||
path = /obj/item/clothing/shoes/hitops/
|
||||
|
||||
/datum/gear/shoes/hitops/red
|
||||
display_name = "high-top, red"
|
||||
path = /obj/item/clothing/shoes/hitops/red
|
||||
|
||||
/datum/gear/shoes/hitops/black
|
||||
display_name = "high-top, black"
|
||||
path = /obj/item/clothing/shoes/hitops/black
|
||||
|
||||
/datum/gear/shoes/hitops/orange
|
||||
display_name = "high-top, orange"
|
||||
path = /obj/item/clothing/shoes/hitops/orange
|
||||
|
||||
/datum/gear/shoes/hitops/blue
|
||||
display_name = "high-top, blue"
|
||||
path = /obj/item/clothing/shoes/hitops/blue
|
||||
|
||||
/datum/gear/shoes/hitops/green
|
||||
display_name = "high-top, green"
|
||||
path = /obj/item/clothing/shoes/hitops/green
|
||||
|
||||
/datum/gear/shoes/hitops/purple
|
||||
display_name = "high-top, purple"
|
||||
path = /obj/item/clothing/shoes/hitops/purple
|
||||
|
||||
/datum/gear/shoes/hitops/yellow
|
||||
display_name = "high-top, yellow"
|
||||
path = /obj/item/clothing/shoes/hitops/yellow
|
||||
|
||||
/datum/gear/shoes/flats/blue
|
||||
display_name = "flats, blue"
|
||||
path = /obj/item/clothing/shoes/flats/blue
|
||||
|
||||
@@ -123,39 +123,39 @@
|
||||
if (istype(H, /obj/item/weapon/handcuffs))
|
||||
attach_cuffs(H, user)
|
||||
|
||||
/obj/item/clothing/shoes/hightops
|
||||
name = "white high tops"
|
||||
/obj/item/clothing/shoes/hitops
|
||||
name = "white high-tops"
|
||||
desc = "A pair of shoes that extends past the ankle. Based on a centuries-old, timeless design."
|
||||
icon_state = "whitehi"
|
||||
|
||||
/obj/item/clothing/shoes/hightops/red
|
||||
name = "red high tops"
|
||||
/obj/item/clothing/shoes/hitops/red
|
||||
name = "red high-tops"
|
||||
icon_state = "redhi"
|
||||
|
||||
/obj/item/clothing/shoes/hightops/brown
|
||||
name = "brown high tops"
|
||||
/obj/item/clothing/shoes/hitops/brown
|
||||
name = "brown high-tops"
|
||||
icon_state = "brownhi"
|
||||
|
||||
/obj/item/clothing/shoes/hightops/black
|
||||
name = "black high tops"
|
||||
/obj/item/clothing/shoes/hitops/black
|
||||
name = "black high-tops"
|
||||
icon_state = "blackhi"
|
||||
|
||||
/obj/item/clothing/shoes/hightops/orange
|
||||
name = "orange high tops"
|
||||
/obj/item/clothing/shoes/hitops/orange
|
||||
name = "orange high-tops"
|
||||
icon_state = "orangehi"
|
||||
|
||||
/obj/item/clothing/shoes/hightops/blue
|
||||
name = "blue high tops"
|
||||
/obj/item/clothing/shoes/hitops/blue
|
||||
name = "blue high-tops"
|
||||
icon_state = "bluehi"
|
||||
|
||||
/obj/item/clothing/shoes/hightops/green
|
||||
name = "green high tops"
|
||||
/obj/item/clothing/shoes/hitops/green
|
||||
name = "green high-tops"
|
||||
icon_state = "greenhi"
|
||||
|
||||
/obj/item/clothing/shoes/hightops/purple
|
||||
name = "purple high tops"
|
||||
/obj/item/clothing/shoes/hitops/purple
|
||||
name = "purple high-tops"
|
||||
icon_state = "purplehi"
|
||||
|
||||
/obj/item/clothing/shoes/hightops/yellow
|
||||
name = "yellow high tops"
|
||||
/obj/item/clothing/shoes/hitops/yellow
|
||||
name = "yellow high-tops"
|
||||
icon_state = "yellowhi"
|
||||
@@ -2,7 +2,7 @@
|
||||
var/const/enterBelt = 30
|
||||
var/const/radIntervall = 5 // Enough time between enter/leave belt for 10 hits, as per original implementation
|
||||
var/const/leaveBelt = 80
|
||||
var/const/revokeAccess = 135
|
||||
var/const/revokeAccess = 165
|
||||
startWhen = 2
|
||||
announceWhen = 1
|
||||
endWhen = revokeAccess
|
||||
@@ -27,23 +27,21 @@
|
||||
radiate()
|
||||
|
||||
else if(activeFor == leaveBelt)
|
||||
command_announcement.Announce("The station has passed the radiation belt. Please report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert")
|
||||
|
||||
command_announcement.Announce("The station has passed the radiation belt. Please allow for up to one minute while radiation levels dissipate, and report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert")
|
||||
/datum/event/radiation_storm/proc/radiate()
|
||||
var/radiation_level = rand(15, 35)
|
||||
for(var/z in using_map.station_levels)
|
||||
radiation_repository.z_radiate(locate(1, 1, z), radiation_level, 1)
|
||||
|
||||
for(var/mob/living/carbon/C in living_mob_list)
|
||||
var/area/A = get_area(C)
|
||||
if(!A)
|
||||
continue
|
||||
if(!(A.z in using_map.station_levels))
|
||||
continue
|
||||
if(A.flags & RAD_SHIELDED)
|
||||
continue
|
||||
|
||||
if(istype(C,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = C
|
||||
H.apply_effect((rand(15,35)),IRRADIATE,0)
|
||||
if(prob(5))
|
||||
H.apply_effect((rand(40,70)),IRRADIATE,0)
|
||||
if (prob(75))
|
||||
randmutb(H) // Applies bad mutation
|
||||
domutcheck(H,null,MUTCHK_FORCED)
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
radiate()
|
||||
|
||||
/datum/event/solar_storm/proc/radiate()
|
||||
// Note: Too complicated to be worth trying to use the radiation system for this. Its only in space anyway, so we make an exception in this case.
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T)
|
||||
@@ -36,8 +37,7 @@
|
||||
continue
|
||||
|
||||
//Todo: Apply some burn damage from the heat of the sun. Until then, enjoy some moderate radiation.
|
||||
L.apply_effect((rand(15,30)),IRRADIATE,blocked = L.getarmor(null, "rad"))
|
||||
|
||||
L.rad_act(rand(15, 30))
|
||||
|
||||
/datum/event/solar_storm/end()
|
||||
command_announcement.Announce("The solar storm has passed the station. It is now safe to resume EVA activities. Please report to medbay if you experience any unusual symptoms. ", "Anomaly Alert")
|
||||
|
||||
@@ -332,7 +332,7 @@ proc/check_panel(mob/M)
|
||||
qdel(O)
|
||||
return
|
||||
|
||||
var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/item/ammo_magazine/a357,\
|
||||
var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/item/ammo_magazine/s357,\
|
||||
/obj/item/weapon/gun/energy/crossbow, /obj/item/weapon/melee/energy/sword,\
|
||||
/obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/box/emps,\
|
||||
/obj/item/weapon/cartridge/syndicate, /obj/item/clothing/under/chameleon,\
|
||||
|
||||
@@ -482,7 +482,7 @@ var/list/mining_overlay_cache = list()
|
||||
M.flash_eyes()
|
||||
if(prob(50))
|
||||
M.Stun(5)
|
||||
M.apply_effect(25, IRRADIATE)
|
||||
radiation_repository.flat_radiate(src, 25, 200)
|
||||
if(prob(25))
|
||||
excavate_find(prob(5), finds[1])
|
||||
else if(rand(1,500) == 1)
|
||||
|
||||
@@ -94,7 +94,7 @@ emp_act
|
||||
var/obj/item/organ/external/organ = organs_by_name[organ_name]
|
||||
if(organ)
|
||||
var/weight = organ_rel_size[organ_name]
|
||||
armorval += getarmor_organ(organ, type) * weight
|
||||
armorval += (getarmor_organ(organ, type) * weight)
|
||||
total += weight
|
||||
return (armorval/max(total, 1))
|
||||
|
||||
|
||||
@@ -352,6 +352,7 @@ var/global/list/robot_modules = list(
|
||||
src.modules += new /obj/item/device/pipe_painter(src)
|
||||
src.modules += new /obj/item/device/floor_painter(src)
|
||||
src.modules += new /obj/item/weapon/gripper/no_use/loader(src)
|
||||
src.modules += new /obj/item/device/geiger(src)
|
||||
|
||||
var/datum/matter_synth/metal = new /datum/matter_synth/metal()
|
||||
var/datum/matter_synth/plasteel = new /datum/matter_synth/plasteel()
|
||||
@@ -396,6 +397,7 @@ var/global/list/robot_modules = list(
|
||||
src.modules += new /obj/item/device/pipe_painter(src)
|
||||
src.modules += new /obj/item/device/floor_painter(src)
|
||||
src.emag = new /obj/item/weapon/melee/baton/robot/arm(src)
|
||||
src.modules += new /obj/item/device/geiger(src)
|
||||
|
||||
var/datum/matter_synth/metal = new /datum/matter_synth/metal(40000)
|
||||
var/datum/matter_synth/glass = new /datum/matter_synth/glass(40000)
|
||||
|
||||
@@ -627,7 +627,6 @@
|
||||
/datum/sprite_accessory/facial_hair
|
||||
|
||||
icon = 'icons/mob/Human_face.dmi'
|
||||
gender = MALE
|
||||
|
||||
shaved
|
||||
name = "Shaved"
|
||||
@@ -1309,4 +1308,4 @@
|
||||
name = "Default skrell skin"
|
||||
icon_state = "default"
|
||||
icon = 'icons/mob/human_races/r_skrell.dmi'
|
||||
species_allowed = list("Skrell")
|
||||
species_allowed = list("Skrell")
|
||||
|
||||
@@ -164,6 +164,14 @@
|
||||
/obj/effect/decal/cleanable/can_fall()
|
||||
return TRUE
|
||||
|
||||
// These didn't fall anyways but better to nip this now just incase.
|
||||
/atom/movable/lighting_overlay/can_fall()
|
||||
return FALSE
|
||||
|
||||
// Mechas are anchored, so we need to override.
|
||||
/obj/mecha/can_fall()
|
||||
return TRUE
|
||||
|
||||
/obj/item/pipe/can_fall()
|
||||
. = ..()
|
||||
|
||||
@@ -291,3 +299,33 @@
|
||||
apply_damage(rand(0, damage), BRUTE, BP_R_ARM)
|
||||
Weaken(4)
|
||||
updatehealth()
|
||||
|
||||
/obj/mecha/handle_fall(var/turf/landing)
|
||||
// First things first, break any lattice
|
||||
var/obj/structure/lattice/lattice = locate(/obj/structure/lattice, loc)
|
||||
if(lattice)
|
||||
// Lattices seem a bit too flimsy to hold up a massive exosuit.
|
||||
lattice.visible_message("<span class='danger'>\The [lattice] collapses under the weight of \the [src]!</span>")
|
||||
qdel(lattice)
|
||||
|
||||
// Then call parent to have us actually fall
|
||||
return ..()
|
||||
|
||||
/obj/mecha/fall_impact(var/atom/hit_atom)
|
||||
// Tell the pilot that they just dropped down with a superheavy mecha.
|
||||
if(occupant)
|
||||
to_chat(occupant, "<span class='warning'>\The [src] crashed down onto \the [hit_atom]!</span>")
|
||||
|
||||
// Anything on the same tile as the landing tile is gonna have a bad day.
|
||||
for(var/mob/living/L in hit_atom.contents)
|
||||
L.visible_message("<span class='danger'>\The [src] crushes \the [L] as it lands on them!</span>")
|
||||
L.adjustBruteLoss(rand(70, 100))
|
||||
L.Weaken(8)
|
||||
|
||||
// Now to hurt the mech.
|
||||
take_damage(rand(15, 30))
|
||||
|
||||
// And hurt the floor.
|
||||
if(istype(hit_atom, /turf/simulated/floor))
|
||||
var/turf/simulated/floor/ground = hit_atom
|
||||
ground.break_tile()
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
var/damage_type = CUT
|
||||
// whether this wound needs a bandage/salve to heal at all
|
||||
// the maximum amount of damage that this wound can have and still autoheal
|
||||
var/autoheal_cutoff = 15
|
||||
var/autoheal_cutoff = 10
|
||||
|
||||
|
||||
|
||||
@@ -336,7 +336,6 @@ datum/wound/puncture/massive
|
||||
"moderate bruise" = 20, "small bruise" = 10, "tiny bruise" = 5)
|
||||
bleed_threshold = 20
|
||||
max_bleeding_stage = 2 //only huge bruise and above can bleed.
|
||||
autoheal_cutoff = 30
|
||||
damage_type = BRUISE
|
||||
|
||||
/** BURNS **/
|
||||
|
||||
@@ -526,9 +526,9 @@ obj/structure/cable/proc/cableColor(var/colorC)
|
||||
if(!S || S.robotic < ORGAN_ROBOT || S.open == 3)
|
||||
return ..()
|
||||
|
||||
var/use_amt = min(src.amount, ceil(S.burn_dam/3), 5)
|
||||
var/use_amt = min(src.amount, ceil(S.burn_dam/5), 5)
|
||||
if(can_use(use_amt))
|
||||
if(S.robo_repair(3*use_amt, BURN, "some damaged wiring", src, user))
|
||||
if(S.robo_repair(5*use_amt, BURN, "some damaged wiring", src, user))
|
||||
src.use(use_amt)
|
||||
|
||||
else
|
||||
|
||||
@@ -396,17 +396,13 @@
|
||||
/obj/machinery/power/port_gen/pacman/super/UseFuel()
|
||||
//produces a tiny amount of radiation when in use
|
||||
if (prob(2*power_output))
|
||||
for (var/mob/living/L in range(src, 5))
|
||||
L.apply_effect(1, IRRADIATE) //should amount to ~5 rads per minute at max safe power
|
||||
radiation_repository.radiate(src, 4)
|
||||
..()
|
||||
|
||||
/obj/machinery/power/port_gen/pacman/super/explode()
|
||||
//a nice burst of radiation
|
||||
var/rads = 50 + (sheets + sheet_left)*1.5
|
||||
for (var/mob/living/L in range(src, 10))
|
||||
//should really fall with the square of the distance, but that makes the rads value drop too fast
|
||||
//I dunno, maybe physics works different when you live in 2D -- SM radiation also works like this, apparently
|
||||
L.apply_effect(max(20, round(rads/get_dist(L,src))), IRRADIATE)
|
||||
radiation_repository.radiate(src, (max(20, rads)))
|
||||
|
||||
explosion(src.loc, 3, 3, 5, 3)
|
||||
qdel(src)
|
||||
|
||||
@@ -31,6 +31,11 @@ var/global/list/rad_collectors = list()
|
||||
last_power_new = 0
|
||||
|
||||
|
||||
if(P && active)
|
||||
var/rads = radiation_repository.get_rads_at_turf(get_turf(src))
|
||||
if(rads)
|
||||
receive_pulse(rads * 5) //Maths is hard
|
||||
|
||||
if(P)
|
||||
if(P.air_contents.gas["phoron"] == 0)
|
||||
investigate_log("<font color='red'>out of fuel</font>.","singulo")
|
||||
|
||||
@@ -406,15 +406,13 @@
|
||||
var/toxrange = 10
|
||||
var/toxdamage = 4
|
||||
var/radiation = 15
|
||||
var/radiationmin = 3
|
||||
if (src.energy>200)
|
||||
toxdamage = round(((src.energy-150)/50)*4,1)
|
||||
radiation = round(((src.energy-150)/50)*5,1)
|
||||
radiationmin = round((radiation/5),1)//
|
||||
radiation_repository.radiate(src, radiation) //Always radiate at max, so a decent dose of radiation is applied
|
||||
for(var/mob/living/M in view(toxrange, src.loc))
|
||||
if(M.status_flags & GODMODE)
|
||||
continue
|
||||
M.apply_effect(rand(radiationmin,radiation), IRRADIATE)
|
||||
toxdamage = (toxdamage - (toxdamage*M.getarmor(null, "rad")))
|
||||
M.apply_effect(toxdamage, TOX)
|
||||
return
|
||||
@@ -448,13 +446,13 @@
|
||||
/obj/singularity/proc/smwave()
|
||||
for(var/mob/living/M in view(10, src.loc))
|
||||
if(prob(67))
|
||||
M.apply_effect(rand(energy), IRRADIATE)
|
||||
M << "<span class=\"warning\">You hear an uneartly ringing, then what sounds like a shrilling kettle as you are washed with a wave of heat.</span>"
|
||||
M << "<span class=\"notice\">Miraculously, it fails to kill you.</span>"
|
||||
to_chat(M, "<span class=\"warning\">You hear an uneartly ringing, then what sounds like a shrilling kettle as you are washed with a wave of heat.</span>")
|
||||
to_chat(M, "<span class=\"notice\">Miraculously, it fails to kill you.</span>")
|
||||
else
|
||||
M << "<span class=\"danger\">You hear an uneartly ringing, then what sounds like a shrilling kettle as you are washed with a wave of heat.</span>"
|
||||
M << "<span class=\"danger\">You don't even have a moment to react as you are reduced to ashes by the intense radiation.</span>"
|
||||
M.dust()
|
||||
radiation_repository.radiate(src, rand(energy))
|
||||
return
|
||||
|
||||
/obj/singularity/proc/pulse()
|
||||
|
||||
+513
-492
File diff suppressed because it is too large
Load Diff
+322
-290
@@ -1,291 +1,323 @@
|
||||
/obj/item/ammo_casing/a357
|
||||
desc = "A .357 bullet casing."
|
||||
caliber = "357"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/strong
|
||||
|
||||
/obj/item/ammo_casing/a50
|
||||
desc = "A .50AE bullet casing."
|
||||
caliber = ".50"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/strong
|
||||
|
||||
/obj/item/ammo_casing/a75
|
||||
desc = "A .75 gyrojet rocket sheathe."
|
||||
caliber = "75"
|
||||
projectile_type = /obj/item/projectile/bullet/gyro
|
||||
|
||||
/obj/item/ammo_casing/c38
|
||||
desc = "A .38 bullet casing."
|
||||
caliber = "38"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol
|
||||
|
||||
/obj/item/ammo_casing/c38r
|
||||
desc = "A .38 rubber bullet casing."
|
||||
caliber = "38"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/rubber
|
||||
|
||||
/obj/item/ammo_casing/c38/emp
|
||||
name = ".38 haywire round"
|
||||
desc = "A .38 bullet casing fitted with a single-use ion pulse generator."
|
||||
icon_state = "empcasing"
|
||||
projectile_type = /obj/item/projectile/ion/small
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
|
||||
|
||||
/*
|
||||
* 9mm
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/c9mm
|
||||
desc = "A 9mm bullet casing."
|
||||
caliber = "9mm"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol
|
||||
|
||||
/obj/item/ammo_casing/c9mm/ap
|
||||
desc = "A 9mm armor-piercing bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/ap
|
||||
|
||||
/obj/item/ammo_casing/c9mmf
|
||||
desc = "A 9mm flash shell casing."
|
||||
caliber = "9mm"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/energy/flash
|
||||
|
||||
/obj/item/ammo_casing/c9mmr
|
||||
desc = "A 9mm rubber bullet casing."
|
||||
caliber = "9mm"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/rubber
|
||||
|
||||
/obj/item/ammo_casing/c9mmp
|
||||
desc = "A 9mm practice bullet casing."
|
||||
caliber = "9mm"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/practice
|
||||
|
||||
/*
|
||||
/obj/item/ammo_casing/c5mm
|
||||
desc = "A 5mm bullet casing."
|
||||
caliber = "5mm"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/ap
|
||||
*/
|
||||
|
||||
/*
|
||||
* 45 ammo
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/c45
|
||||
desc = "A .45 bullet casing."
|
||||
caliber = ".45"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/medium
|
||||
|
||||
/obj/item/ammo_casing/c45ap
|
||||
desc = "A .45 Armor-Piercing bullet casing."
|
||||
caliber = ".45"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/medium/ap
|
||||
|
||||
/obj/item/ammo_casing/c45p
|
||||
desc = "A .45 practice bullet casing."
|
||||
caliber = ".45"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/practice
|
||||
|
||||
/obj/item/ammo_casing/c45r
|
||||
desc = "A .45 rubber bullet casing."
|
||||
caliber = ".45"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/rubber
|
||||
|
||||
/obj/item/ammo_casing/c45f
|
||||
desc = "A .45 flash shell casing."
|
||||
caliber = ".45"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/energy/flash
|
||||
|
||||
/obj/item/ammo_casing/c45/emp
|
||||
name = ".45 haywire round"
|
||||
desc = "A .45 bullet casing fitted with a single-use ion pulse generator."
|
||||
projectile_type = /obj/item/projectile/ion/small
|
||||
icon_state = "empcasing"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
|
||||
|
||||
/obj/item/ammo_casing/c45/hp
|
||||
desc = "A .45 hollow-point bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/medium/hollow
|
||||
|
||||
|
||||
/*
|
||||
* 10mm
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a10mm
|
||||
desc = "A 10mm bullet casing."
|
||||
caliber = "10mm"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/medium
|
||||
|
||||
/obj/item/ammo_casing/a10mm/emp
|
||||
name = "10mm haywire round"
|
||||
desc = "A 10mm bullet casing fitted with a single-use ion pulse generator."
|
||||
projectile_type = /obj/item/projectile/ion/small
|
||||
icon_state = "empcasing"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
|
||||
|
||||
/*
|
||||
* Shotguns
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/shotgun
|
||||
name = "shotgun slug"
|
||||
desc = "A 12 gauge slug."
|
||||
icon_state = "slshell"
|
||||
caliber = "shotgun"
|
||||
projectile_type = /obj/item/projectile/bullet/shotgun
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 360)
|
||||
|
||||
/obj/item/ammo_casing/shotgun/pellet
|
||||
name = "shotgun shell"
|
||||
desc = "A 12 gauge shell."
|
||||
icon_state = "gshell"
|
||||
projectile_type = /obj/item/projectile/bullet/pellet/shotgun
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 360)
|
||||
|
||||
/obj/item/ammo_casing/shotgun/blank
|
||||
name = "shotgun shell"
|
||||
desc = "A blank shell."
|
||||
icon_state = "blshell"
|
||||
projectile_type = /obj/item/projectile/bullet/blank
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 90)
|
||||
|
||||
/obj/item/ammo_casing/shotgun/practice
|
||||
name = "shotgun shell"
|
||||
desc = "A practice shell."
|
||||
icon_state = "pshell"
|
||||
projectile_type = /obj/item/projectile/bullet/shotgun/practice
|
||||
matter = list("metal" = 90)
|
||||
|
||||
/obj/item/ammo_casing/shotgun/beanbag
|
||||
name = "beanbag shell"
|
||||
desc = "A beanbag shell."
|
||||
icon_state = "bshell"
|
||||
projectile_type = /obj/item/projectile/bullet/shotgun/beanbag
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 180)
|
||||
|
||||
//Can stun in one hit if aimed at the head, but
|
||||
//is blocked by clothing that stops tasers and is vulnerable to EMP
|
||||
/obj/item/ammo_casing/shotgun/stunshell
|
||||
name = "stun shell"
|
||||
desc = "A 12 gauge taser cartridge."
|
||||
icon_state = "stunshell"
|
||||
projectile_type = /obj/item/projectile/energy/electrode/stunshot
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 360, "glass" = 720)
|
||||
|
||||
/obj/item/ammo_casing/shotgun/stunshell/emp_act(severity)
|
||||
if(prob(100/severity)) BB = null
|
||||
update_icon()
|
||||
|
||||
//Does not stun, only blinds, but has area of effect.
|
||||
/obj/item/ammo_casing/shotgun/flash
|
||||
name = "flash shell"
|
||||
desc = "A chemical shell used to signal distress or provide illumination."
|
||||
icon_state = "fshell"
|
||||
projectile_type = /obj/item/projectile/energy/flash/flare
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 90, "glass" = 90)
|
||||
|
||||
/obj/item/ammo_casing/shotgun/emp
|
||||
name = "ion shell"
|
||||
desc = "An advanced shotgun round that creates a small EMP when it strikes a target."
|
||||
icon_state = "empshell"
|
||||
projectile_type = /obj/item/projectile/ion
|
||||
// projectile_type = /obj/item/projectile/bullet/shotgun/ion
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 360, "uranium" = 240)
|
||||
|
||||
/*
|
||||
* 762mm
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a762
|
||||
desc = "A 7.62mm bullet casing."
|
||||
caliber = "a762"
|
||||
icon_state = "rifle-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a762
|
||||
|
||||
/obj/item/ammo_casing/a762/ap
|
||||
desc = "A 7.62mm armor-piercing bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a762/ap
|
||||
|
||||
/obj/item/ammo_casing/a762p
|
||||
desc = "A 7.62mm practice bullet casing."
|
||||
caliber = "a762"
|
||||
icon_state = "rifle-casing" // Need to make an icon for these
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/practice
|
||||
|
||||
/obj/item/ammo_casing/a762/blank
|
||||
desc = "A blank 7.62mm bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/blank
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 90)
|
||||
|
||||
/obj/item/ammo_casing/a762/hp
|
||||
desc = "A 7.62mm hollow-point bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a762/hollow
|
||||
|
||||
//145mm
|
||||
|
||||
/obj/item/ammo_casing/a145
|
||||
desc = "A 14.5mm shell."
|
||||
icon_state = "lcasing"
|
||||
caliber = "14.5mm"
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a145
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1250)
|
||||
|
||||
/*
|
||||
* 556mm
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a556
|
||||
desc = "A 5.56mm bullet casing."
|
||||
caliber = "a556"
|
||||
icon_state = "rifle-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a556
|
||||
|
||||
/obj/item/ammo_casing/a556/ap
|
||||
desc = "A 5.56mm armor-piercing bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a556/ap
|
||||
|
||||
/obj/item/ammo_casing/a556p
|
||||
desc = "A 5.56mm practice bullet casing."
|
||||
caliber = "a556"
|
||||
icon_state = "rifle-casing" // Need to make an icon for these
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/practice
|
||||
|
||||
/obj/item/ammo_casing/a556/blank
|
||||
desc = "A blank 5.56mm bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/blank
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 90)
|
||||
|
||||
/obj/item/ammo_casing/a556/hp
|
||||
desc = "A 5.56mm hollow-point bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a556/hollow
|
||||
|
||||
/*
|
||||
* Misc
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/rocket
|
||||
name = "rocket shell"
|
||||
desc = "A high explosive designed to be fired from a launcher."
|
||||
icon_state = "rocketshell"
|
||||
projectile_type = /obj/item/missile
|
||||
caliber = "rocket"
|
||||
|
||||
/obj/item/ammo_casing/cap
|
||||
name = "cap"
|
||||
desc = "A cap for children toys."
|
||||
caliber = "caps"
|
||||
icon_state = "r-casing"
|
||||
color = "#FF0000"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/cap
|
||||
|
||||
/obj/item/ammo_casing/spent // For simple hostile mobs only, so they don't cough up usable bullets when firing. This is for literally nothing else.
|
||||
icon_state = "s-casing-spent"
|
||||
BB = null
|
||||
/************************************************************************/
|
||||
/*
|
||||
# An explaination of the naming format for guns and ammo:
|
||||
#
|
||||
# a = Ammo, as in individual rounds of ammunition.
|
||||
# b = Box, intended to have ammo taken out one at a time by hand.
|
||||
# c = Clips, intended to reload magazines or guns quickly.
|
||||
# m = Magazine, intended to hold rounds of ammo.
|
||||
# s = Speedloaders, intended to reload guns quickly.
|
||||
#
|
||||
# Use this format, followed by the caliber. For example, a shotgun's caliber
|
||||
# variable is "12g" as a result. Ergo, a shotgun round's path would have "a12g",
|
||||
# or a magazine with shotgun shells would be "m12g" instead. To avoid confusion
|
||||
# for developers and in-game admins spawning these items, stick to this format.
|
||||
# Likewise, when creating new rounds, the caliber variable should match whatever
|
||||
# the name says.
|
||||
#
|
||||
# This comment is copied in magazines.dm as well.
|
||||
*/
|
||||
/************************************************************************/
|
||||
|
||||
/*
|
||||
* .357
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a357
|
||||
desc = "A .357 bullet casing."
|
||||
caliber = "357"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/strong
|
||||
|
||||
/*
|
||||
* .38
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a38
|
||||
desc = "A .38 bullet casing."
|
||||
caliber = ".38"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol
|
||||
|
||||
/obj/item/ammo_casing/a38r
|
||||
desc = "A .38 rubber bullet casing."
|
||||
caliber = ".38"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/rubber
|
||||
|
||||
/obj/item/ammo_casing/a38/emp
|
||||
name = ".38 haywire round"
|
||||
desc = "A .38 bullet casing fitted with a single-use ion pulse generator."
|
||||
icon_state = "empcasing"
|
||||
projectile_type = /obj/item/projectile/ion/small
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
|
||||
|
||||
/*
|
||||
* .50 Action Express
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a50ae
|
||||
desc = "A .50AE bullet casing."
|
||||
caliber = ".50AE"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/strong
|
||||
|
||||
/*
|
||||
* .75 (aka Gyrojet Rockets, aka admin abuse)
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a75
|
||||
desc = "A .75 gyrojet rocket sheathe."
|
||||
caliber = ".75"
|
||||
projectile_type = /obj/item/projectile/bullet/gyro
|
||||
|
||||
/*
|
||||
* 9mm
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a9mm
|
||||
desc = "A 9mm bullet casing."
|
||||
caliber = "9mm"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol
|
||||
|
||||
/obj/item/ammo_casing/a9mm/ap
|
||||
desc = "A 9mm armor-piercing bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/ap
|
||||
|
||||
/obj/item/ammo_casing/a9mmf
|
||||
desc = "A 9mm flash shell casing."
|
||||
caliber = "9mm"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/energy/flash
|
||||
|
||||
/obj/item/ammo_casing/a9mmr
|
||||
desc = "A 9mm rubber bullet casing."
|
||||
caliber = "9mm"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/rubber
|
||||
|
||||
/obj/item/ammo_casing/a9mmp
|
||||
desc = "A 9mm practice bullet casing."
|
||||
caliber = "9mm"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/practice
|
||||
|
||||
/*
|
||||
* .45
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a45
|
||||
desc = "A .45 bullet casing."
|
||||
caliber = ".45"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/medium
|
||||
|
||||
/obj/item/ammo_casing/a45ap
|
||||
desc = "A .45 Armor-Piercing bullet casing."
|
||||
caliber = ".45"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/medium/ap
|
||||
|
||||
/obj/item/ammo_casing/a45p
|
||||
desc = "A .45 practice bullet casing."
|
||||
caliber = ".45"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/practice
|
||||
|
||||
/obj/item/ammo_casing/a45r
|
||||
desc = "A .45 rubber bullet casing."
|
||||
caliber = ".45"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/rubber
|
||||
|
||||
/obj/item/ammo_casing/a45f
|
||||
desc = "A .45 flash shell casing."
|
||||
caliber = ".45"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/energy/flash
|
||||
|
||||
/obj/item/ammo_casing/a45/emp
|
||||
name = ".45 haywire round"
|
||||
desc = "A .45 bullet casing fitted with a single-use ion pulse generator."
|
||||
projectile_type = /obj/item/projectile/ion/small
|
||||
icon_state = "empcasing"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
|
||||
|
||||
/obj/item/ammo_casing/a45/hp
|
||||
desc = "A .45 hollow-point bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/medium/hollow
|
||||
|
||||
|
||||
/*
|
||||
* 10mm
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a10mm
|
||||
desc = "A 10mm bullet casing."
|
||||
caliber = "10mm"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/medium
|
||||
|
||||
/obj/item/ammo_casing/a10mm/emp
|
||||
name = "10mm haywire round"
|
||||
desc = "A 10mm bullet casing fitted with a single-use ion pulse generator."
|
||||
projectile_type = /obj/item/projectile/ion/small
|
||||
icon_state = "empcasing"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
|
||||
|
||||
/*
|
||||
* 12g (aka shotgun ammo)
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a12g
|
||||
name = "shotgun slug"
|
||||
desc = "A 12 gauge slug."
|
||||
icon_state = "slshell"
|
||||
caliber = "12g"
|
||||
projectile_type = /obj/item/projectile/bullet/shotgun
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 360)
|
||||
|
||||
/obj/item/ammo_casing/a12g/pellet
|
||||
name = "shotgun shell"
|
||||
desc = "A 12 gauge shell."
|
||||
icon_state = "gshell"
|
||||
projectile_type = /obj/item/projectile/bullet/pellet/shotgun
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 360)
|
||||
|
||||
/obj/item/ammo_casing/a12g/blank
|
||||
name = "shotgun shell"
|
||||
desc = "A blank shell."
|
||||
icon_state = "blshell"
|
||||
projectile_type = /obj/item/projectile/bullet/blank
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 90)
|
||||
|
||||
/obj/item/ammo_casing/a12g/practice
|
||||
name = "shotgun shell"
|
||||
desc = "A practice shell."
|
||||
icon_state = "pshell"
|
||||
projectile_type = /obj/item/projectile/bullet/shotgun/practice
|
||||
matter = list("metal" = 90)
|
||||
|
||||
/obj/item/ammo_casing/a12g/beanbag
|
||||
name = "beanbag shell"
|
||||
desc = "A beanbag shell."
|
||||
icon_state = "bshell"
|
||||
projectile_type = /obj/item/projectile/bullet/shotgun/beanbag
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 180)
|
||||
|
||||
//Can stun in one hit if aimed at the head, but
|
||||
//is blocked by clothing that stops tasers and is vulnerable to EMP
|
||||
/obj/item/ammo_casing/a12g/stunshell
|
||||
name = "stun shell"
|
||||
desc = "A 12 gauge taser cartridge."
|
||||
icon_state = "stunshell"
|
||||
projectile_type = /obj/item/projectile/energy/electrode/stunshot
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 360, "glass" = 720)
|
||||
|
||||
/obj/item/ammo_casing/a12g/stunshell/emp_act(severity)
|
||||
if(prob(100/severity)) BB = null
|
||||
update_icon()
|
||||
|
||||
//Does not stun, only blinds, but has area of effect.
|
||||
/obj/item/ammo_casing/a12g/flash
|
||||
name = "flash shell"
|
||||
desc = "A chemical shell used to signal distress or provide illumination."
|
||||
icon_state = "fshell"
|
||||
projectile_type = /obj/item/projectile/energy/flash/flare
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 90, "glass" = 90)
|
||||
|
||||
/obj/item/ammo_casing/a12g/emp
|
||||
name = "ion shell"
|
||||
desc = "An advanced shotgun round that creates a small EMP when it strikes a target."
|
||||
icon_state = "empshell"
|
||||
projectile_type = /obj/item/projectile/ion
|
||||
// projectile_type = /obj/item/projectile/bullet/shotgun/ion
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 360, "uranium" = 240)
|
||||
|
||||
/*
|
||||
* 7.62mm
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a762
|
||||
desc = "A 7.62mm bullet casing."
|
||||
caliber = "7.62mm"
|
||||
icon_state = "rifle-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a762
|
||||
|
||||
/obj/item/ammo_casing/a762/ap
|
||||
desc = "A 7.62mm armor-piercing bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a762/ap
|
||||
|
||||
/obj/item/ammo_casing/a762p
|
||||
desc = "A 7.62mm practice bullet casing."
|
||||
caliber = "7.62mm"
|
||||
icon_state = "rifle-casing" // Need to make an icon for these
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/practice
|
||||
|
||||
/obj/item/ammo_casing/a762/blank
|
||||
desc = "A blank 7.62mm bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/blank
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 90)
|
||||
|
||||
/obj/item/ammo_casing/a762/hp
|
||||
desc = "A 7.62mm hollow-point bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a762/hollow
|
||||
|
||||
/*
|
||||
* 14.5mm (anti-materiel rifle round)
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a145
|
||||
desc = "A 14.5mm shell."
|
||||
icon_state = "lcasing"
|
||||
caliber = "14.5mm"
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a145
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1250)
|
||||
|
||||
/*
|
||||
* 5.56mm
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a556
|
||||
desc = "A 5.56mm bullet casing."
|
||||
caliber = "5.56mm"
|
||||
icon_state = "rifle-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a556
|
||||
|
||||
/obj/item/ammo_casing/a556/ap
|
||||
desc = "A 5.56mm armor-piercing bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a556/ap
|
||||
|
||||
/obj/item/ammo_casing/a556p
|
||||
desc = "A 5.56mm practice bullet casing."
|
||||
caliber = "5.56mm"
|
||||
icon_state = "rifle-casing" // Need to make an icon for these
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/practice
|
||||
|
||||
/obj/item/ammo_casing/a556/blank
|
||||
desc = "A blank 5.56mm bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/blank
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 90)
|
||||
|
||||
/obj/item/ammo_casing/a556/hp
|
||||
desc = "A 5.56mm hollow-point bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a556/hollow
|
||||
|
||||
/*
|
||||
* Misc
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/rocket
|
||||
name = "rocket shell"
|
||||
desc = "A high explosive designed to be fired from a launcher."
|
||||
icon_state = "rocketshell"
|
||||
projectile_type = /obj/item/missile
|
||||
caliber = "rocket"
|
||||
|
||||
/obj/item/ammo_casing/cap
|
||||
name = "cap"
|
||||
desc = "A cap for children toys."
|
||||
caliber = "caps"
|
||||
icon_state = "r-casing"
|
||||
color = "#FF0000"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/cap
|
||||
|
||||
/obj/item/ammo_casing/spent // For simple hostile mobs only, so they don't cough up usable bullets when firing. This is for literally nothing else.
|
||||
icon_state = "s-casing-spent"
|
||||
BB = null
|
||||
projectile_type = null
|
||||
@@ -8,7 +8,7 @@
|
||||
caliber = "9mm"
|
||||
origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 2)
|
||||
slot_flags = SLOT_BELT
|
||||
ammo_type = /obj/item/ammo_casing/c9mm
|
||||
ammo_type = /obj/item/ammo_casing/a9mm
|
||||
multi_aim = 1
|
||||
burst_delay = 2
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
slot_flags = SLOT_BELT|SLOT_BACK
|
||||
fire_sound = 'sound/weapons/Gunshot_light.ogg'
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/a10mm
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/a10mm)
|
||||
magazine_type = /obj/item/ammo_magazine/m10mm
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m10mm)
|
||||
auto_eject = 1
|
||||
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
|
||||
|
||||
@@ -56,12 +56,12 @@
|
||||
item_state = null
|
||||
w_class = ITEMSIZE_LARGE
|
||||
force = 10
|
||||
caliber = "a556"
|
||||
caliber = "5.56mm"
|
||||
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 1, TECH_ILLEGAL = 4)
|
||||
slot_flags = SLOT_BACK
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/c556
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/c556)
|
||||
magazine_type = /obj/item/ammo_magazine/m556
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m556)
|
||||
|
||||
one_handed_penalty = 4
|
||||
|
||||
@@ -73,8 +73,8 @@
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/sts35/update_icon(var/ignore_inhands)
|
||||
..()
|
||||
if(istype(ammo_magazine,/obj/item/ammo_magazine/s762))
|
||||
icon_state = "arifle-small"
|
||||
if(istype(ammo_magazine,/obj/item/ammo_magazine/m556/small))
|
||||
icon_state = "arifle-small" // If using the small magazines, use the small magazine sprite.
|
||||
else
|
||||
icon_state = (ammo_magazine)? "arifle" : "arifle-empty"
|
||||
if(!ignore_inhands) update_held_icon()
|
||||
@@ -88,11 +88,11 @@
|
||||
caliber = "9mm"
|
||||
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2)
|
||||
slot_flags = SLOT_BELT
|
||||
ammo_type = "/obj/item/ammo_casing/c9mmr"
|
||||
ammo_type = "/obj/item/ammo_casing/a9mmr"
|
||||
fire_sound = 'sound/weapons/Gunshot_light.ogg'
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/mc9mmt/rubber
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/mc9mmt)
|
||||
magazine_type = /obj/item/ammo_magazine/m9mmt/rubber
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m9mmt)
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/wt550/update_icon()
|
||||
..()
|
||||
@@ -109,14 +109,14 @@
|
||||
item_state = "z8carbine"
|
||||
w_class = ITEMSIZE_LARGE
|
||||
force = 10
|
||||
caliber = "a762"
|
||||
caliber = "7.62mm"
|
||||
origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 3)
|
||||
ammo_type = "/obj/item/ammo_casing/a556" // Is this really needed anymore?
|
||||
fire_sound = 'sound/weapons/Gunshot.ogg'
|
||||
slot_flags = SLOT_BACK
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/c762
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/c762)
|
||||
magazine_type = /obj/item/ammo_magazine/m762
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m762)
|
||||
auto_eject = 1
|
||||
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
|
||||
|
||||
@@ -181,14 +181,14 @@
|
||||
force = 10
|
||||
slot_flags = 0
|
||||
max_shells = 50
|
||||
caliber = "a556"
|
||||
caliber = "5.56mm"
|
||||
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 1, TECH_ILLEGAL = 2)
|
||||
slot_flags = SLOT_BACK
|
||||
ammo_type = "/obj/item/ammo_casing/a556" // Is this really needed anymore?
|
||||
fire_sound = 'sound/weapons/machinegun.ogg'
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/a556
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/a556, /obj/item/ammo_magazine/c556)
|
||||
magazine_type = /obj/item/ammo_magazine/m556saw
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m556saw, /obj/item/ammo_magazine/m556)
|
||||
|
||||
one_handed_penalty = 6
|
||||
|
||||
@@ -225,7 +225,7 @@
|
||||
return ..() //once open, behave like normal
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw/update_icon()
|
||||
if(istype(ammo_magazine,/obj/item/ammo_magazine/c762))
|
||||
if(istype(ammo_magazine,/obj/item/ammo_magazine/m762))
|
||||
icon_state = "l6[cover_open ? "open" : "closed"]mag"
|
||||
item_state = icon_state
|
||||
else
|
||||
@@ -252,13 +252,13 @@
|
||||
item_state = null
|
||||
w_class = ITEMSIZE_LARGE
|
||||
force = 10
|
||||
caliber = "shotgun"
|
||||
caliber = "12g"
|
||||
fire_sound = 'sound/weapons/shotgun.ogg'
|
||||
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 1, TECH_ILLEGAL = 4)
|
||||
slot_flags = SLOT_BACK
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/g12
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/g12)
|
||||
magazine_type = /obj/item/ammo_magazine/m12gdrum
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m12gdrum)
|
||||
|
||||
one_handed_penalty = 4
|
||||
|
||||
@@ -284,8 +284,8 @@
|
||||
load_method = MAGAZINE
|
||||
caliber = ".45"
|
||||
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2, TECH_ILLEGAL = 5)
|
||||
magazine_type = /obj/item/ammo_magazine/c45uzi
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/c45uzi)
|
||||
magazine_type = /obj/item/ammo_magazine/m45uzi
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m45uzi)
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0),
|
||||
@@ -310,8 +310,8 @@
|
||||
slot_flags = SLOT_BELT // ToDo: Belt sprite.
|
||||
fire_sound = 'sound/weapons/Gunshot_light.ogg'
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/p90
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/p90, /obj/item/ammo_magazine/mc9mmt) // ToDo: New sprite for the different mag.
|
||||
magazine_type = /obj/item/ammo_magazine/m9mmp90
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m9mmp90, /obj/item/ammo_magazine/m9mmt) // ToDo: New sprite for the different mag.
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0),
|
||||
@@ -330,8 +330,8 @@
|
||||
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2, TECH_ILLEGAL = 5)
|
||||
slot_flags = SLOT_BELT // ToDo: Belt sprite.
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/tommymag
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/tommymag, /obj/item/ammo_magazine/tommydrum)
|
||||
magazine_type = /obj/item/ammo_magazine/m45tommy
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m45tommy, /obj/item/ammo_magazine/m45tommydrum)
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0),
|
||||
@@ -343,19 +343,19 @@
|
||||
icon_state = (ammo_magazine)? "tommygun" : "tommygun-empty"
|
||||
// update_held_icon()
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/carbine
|
||||
/obj/item/weapon/gun/projectile/automatic/carbine // Admin abuse assault rifle. ToDo: Make this less shit. Maybe remove its autofire, and make it spawn with only 10 rounds at start.
|
||||
name = "assault carbine"
|
||||
desc = "The bullpup configured GP3000 is a lightweight, compact, military-grade assault rifle produced by Gurov Projectile Weapons LLC. It is sold almost exclusively to standing armies. The serial number on this one has been scratched off. Uses 5.56mm rounds."
|
||||
icon_state = "bullpup"
|
||||
item_state = "bullpup"
|
||||
w_class = ITEMSIZE_LARGE
|
||||
force = 10
|
||||
caliber = "a762"
|
||||
caliber = "7.62mm"
|
||||
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 1, TECH_ILLEGAL = 4)
|
||||
slot_flags = SLOT_BACK
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/c762
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/c762)
|
||||
magazine_type = /obj/item/ammo_magazine/m762m
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m762, /obj/item/ammo_magazine/m762m)
|
||||
|
||||
one_handed_penalty = 4
|
||||
|
||||
@@ -366,9 +366,9 @@
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/carbine/update_icon(var/ignore_inhands)
|
||||
..()
|
||||
if(ammo_magazine)
|
||||
icon_state = "bullpup"
|
||||
if(istype(ammo_magazine,/obj/item/ammo_magazine/m762))
|
||||
icon_state = "bullpup-small" // If using the smaller magazines, use the small mag sprite.
|
||||
else
|
||||
icon_state = "bullpup-empty"
|
||||
item_state = (ammo_magazine)? "bullpup" : "bullpup-empty"
|
||||
if(!ignore_inhands) update_held_icon()
|
||||
if(!ignore_inhands) update_held_icon()
|
||||
@@ -7,7 +7,7 @@
|
||||
icon_state = "boltaction"
|
||||
fire_sound = 'sound/weapons/rifleshot.ogg'
|
||||
max_shells = 5
|
||||
caliber = "a762"
|
||||
caliber = "7.62mm"
|
||||
origin_tech = list(TECH_COMBAT = 1)// Old as shit rifle doesn't have very good tech.
|
||||
ammo_type = /obj/item/ammo_casing/a762
|
||||
load_method = SINGLE_CASING|SPEEDLOADER
|
||||
@@ -60,7 +60,7 @@
|
||||
icon_state = "leveraction"
|
||||
fire_sound = 'sound/weapons/rifleshot.ogg'
|
||||
max_shells = 5
|
||||
caliber = "a762"
|
||||
caliber = "7.62mm"
|
||||
origin_tech = list(TECH_COMBAT = 1)// Old as shit rifle doesn't have very good tech.
|
||||
ammo_type = /obj/item/ammo_casing/a762
|
||||
load_method = SINGLE_CASING|SPEEDLOADER
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
var/unique_reskin
|
||||
name = ".45 pistol"
|
||||
desc = "A cheap Martian knock-off of a Colt M1911. Uses .45 rounds."
|
||||
magazine_type = /obj/item/ammo_magazine/c45m
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/c45m)
|
||||
magazine_type = /obj/item/ammo_magazine/m45
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m45)
|
||||
icon_state = "colt"
|
||||
caliber = ".45"
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/obj/item/weapon/gun/projectile/colt/detective
|
||||
desc = "A Martian recreation of an old Terran pistol. Uses .45 rounds."
|
||||
magazine_type = /obj/item/ammo_magazine/c45m/rubber
|
||||
magazine_type = /obj/item/ammo_magazine/m45/rubber
|
||||
|
||||
/obj/item/weapon/gun/projectile/colt/detective/update_icon()
|
||||
if(ammo_magazine)
|
||||
@@ -71,7 +71,7 @@
|
||||
name = ".45 pistol"
|
||||
desc = "The NT Mk58 is a cheap, ubiquitous sidearm, produced by a NanoTrasen subsidiary. Found pretty much everywhere humans are. Uses .45 rounds."
|
||||
icon_state = "secguncomp"
|
||||
magazine_type = /obj/item/ammo_magazine/c45m/rubber
|
||||
magazine_type = /obj/item/ammo_magazine/m45/rubber
|
||||
caliber = ".45"
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
||||
fire_sound = 'sound/weapons/semiauto.ogg'
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
/obj/item/weapon/gun/projectile/sec/flash
|
||||
name = ".45 signal pistol"
|
||||
magazine_type = /obj/item/ammo_magazine/c45m/flash
|
||||
magazine_type = /obj/item/ammo_magazine/m45/flash
|
||||
|
||||
/obj/item/weapon/gun/projectile/sec/wood
|
||||
desc = "The NT Mk58 is a cheap, ubiquitous sidearm, produced by a NanoTrasen subsidiary. This one has a sweet wooden grip. Uses .45 rounds."
|
||||
@@ -111,8 +111,8 @@
|
||||
recoil = 0
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ILLEGAL = 8)
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/c45m
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/c45m)
|
||||
magazine_type = /obj/item/ammo_magazine/m45
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m45)
|
||||
|
||||
/obj/item/weapon/gun/projectile/deagle
|
||||
name = "desert eagle"
|
||||
@@ -120,11 +120,11 @@
|
||||
icon_state = "deagle"
|
||||
item_state = "deagle"
|
||||
force = 14.0
|
||||
caliber = ".50"
|
||||
caliber = ".50AE"
|
||||
load_method = MAGAZINE
|
||||
fire_sound = 'sound/weapons/deagle.ogg'
|
||||
magazine_type = /obj/item/ammo_magazine/a50
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/a50)
|
||||
magazine_type = /obj/item/ammo_magazine/m50
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m50)
|
||||
|
||||
/obj/item/weapon/gun/projectile/deagle/update_icon()
|
||||
..()
|
||||
@@ -168,13 +168,13 @@
|
||||
desc = "Speak softly, and carry a big gun. Fires rare .75 caliber self-propelled exploding bolts--because fuck you and everything around you."
|
||||
icon_state = "gyropistol"
|
||||
max_shells = 8
|
||||
caliber = "75"
|
||||
caliber = ".75"
|
||||
fire_sound = 'sound/weapons/rpg.ogg'
|
||||
origin_tech = list(TECH_COMBAT = 3)
|
||||
ammo_type = "/obj/item/ammo_casing/a75"
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/a75
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/a75)
|
||||
magazine_type = /obj/item/ammo_magazine/m75
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m75)
|
||||
auto_eject = 1
|
||||
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
|
||||
|
||||
@@ -196,12 +196,12 @@
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ILLEGAL = 2)
|
||||
fire_sound = 'sound/weapons/semiauto.ogg'
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/mc9mm
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/mc9mm)
|
||||
magazine_type = /obj/item/ammo_magazine/m9mm
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m9mm)
|
||||
|
||||
/obj/item/weapon/gun/projectile/pistol/flash
|
||||
name = "holdout signal pistol"
|
||||
magazine_type = /obj/item/ammo_magazine/mc9mm/flash
|
||||
magazine_type = /obj/item/ammo_magazine/m9mm/flash
|
||||
|
||||
/obj/item/weapon/gun/projectile/pistol/attack_hand(mob/living/user as mob)
|
||||
if(user.get_inactive_hand() == src)
|
||||
@@ -256,17 +256,17 @@
|
||||
|
||||
var/global/list/ammo_types = list(
|
||||
/obj/item/ammo_casing/a357 = ".357",
|
||||
/obj/item/ammo_casing/c9mmf = "9mm",
|
||||
/obj/item/ammo_casing/c45f = ".45",
|
||||
/obj/item/ammo_casing/a9mmf = "9mm",
|
||||
/obj/item/ammo_casing/a45f = ".45",
|
||||
/obj/item/ammo_casing/a10mm = "10mm",
|
||||
/obj/item/ammo_casing/shotgun = "12 gauge",
|
||||
/obj/item/ammo_casing/shotgun = "12 gauge",
|
||||
/obj/item/ammo_casing/shotgun/pellet = "12 gauge",
|
||||
/obj/item/ammo_casing/shotgun/pellet = "12 gauge",
|
||||
/obj/item/ammo_casing/shotgun/pellet = "12 gauge",
|
||||
/obj/item/ammo_casing/shotgun/beanbag = "12 gauge",
|
||||
/obj/item/ammo_casing/shotgun/stunshell = "12 gauge",
|
||||
/obj/item/ammo_casing/shotgun/flash = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/pellet = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/pellet = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/pellet = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/beanbag = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/stunshell = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/flash = "12 gauge",
|
||||
/obj/item/ammo_casing/a762 = "7.62mm",
|
||||
/obj/item/ammo_casing/a556 = "5.56mm"
|
||||
)
|
||||
@@ -299,8 +299,8 @@
|
||||
caliber = "9mm"
|
||||
load_method = MAGAZINE
|
||||
fire_sound = 'sound/weapons/semiauto.ogg'
|
||||
magazine_type = /obj/item/ammo_magazine/mc9mm
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/mc9mm)
|
||||
magazine_type = /obj/item/ammo_magazine/m9mm
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m9mm)
|
||||
|
||||
/obj/item/weapon/gun/projectile/luger/update_icon()
|
||||
..()
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
name = "revolver"
|
||||
desc = "A cheap Martian knock-off of a Smith & Wesson Model 10. Uses .38-Special rounds."
|
||||
icon_state = "detective"
|
||||
caliber = "38"
|
||||
caliber = ".38"
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
||||
fire_sound = 'sound/weapons/Gunshot_light.ogg'
|
||||
ammo_type = /obj/item/ammo_casing/c38
|
||||
ammo_type = /obj/item/ammo_casing/a38
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolver/detective/verb/rename_gun()
|
||||
set name = "Name Gun"
|
||||
@@ -71,13 +71,13 @@
|
||||
name = "Deckard .38"
|
||||
desc = "A custom-built revolver, based off the semi-popular Detective Special model."
|
||||
icon_state = "deckard-empty"
|
||||
caliber = "38"
|
||||
caliber = ".38"
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
||||
fire_sound = 'sound/weapons/Gunshot_light.ogg'
|
||||
ammo_type = /obj/item/ammo_casing/c38
|
||||
ammo_type = /obj/item/ammo_casing/a38
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolver/deckard/emp
|
||||
ammo_type = /obj/item/ammo_casing/c38/emp
|
||||
ammo_type = /obj/item/ammo_casing/a38/emp
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolver/deckard/update_icon()
|
||||
@@ -107,13 +107,13 @@
|
||||
name = "\"The Judge\""
|
||||
desc = "A revolving hand-shotgun by Cybersun Industries that packs the power of a 12 guage in the palm of your hand (if you don't break your wrist). Uses 12 shotgun rounds."
|
||||
icon_state = "judge"
|
||||
caliber = "shotgun"
|
||||
caliber = "12g"
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ILLEGAL = 4)
|
||||
max_shells = 5
|
||||
fire_sound = 'sound/weapons/shotgun.ogg'
|
||||
recoil = 2 // ow my fucking hand
|
||||
accuracy = -1 // smooth bore + short barrel = shit accuracy
|
||||
ammo_type = /obj/item/ammo_casing/shotgun
|
||||
ammo_type = /obj/item/ammo_casing/a12g
|
||||
// ToDo: Remove accuracy debuf in exchange for slightly injuring your hand every time you fire it.
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolver/lemat
|
||||
@@ -124,11 +124,11 @@
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
||||
handle_casings = CYCLE_CASINGS
|
||||
max_shells = 9
|
||||
caliber = "38"
|
||||
ammo_type = /obj/item/ammo_casing/c38
|
||||
caliber = ".38"
|
||||
ammo_type = /obj/item/ammo_casing/a38
|
||||
var/secondary_max_shells = 1
|
||||
var/secondary_caliber = "shotgun"
|
||||
var/secondary_ammo_type = /obj/item/ammo_casing/shotgun
|
||||
var/secondary_caliber = "12g"
|
||||
var/secondary_ammo_type = /obj/item/ammo_casing/a12g
|
||||
var/flipped_firing = 0
|
||||
var/list/secondary_loaded = list()
|
||||
var/list/tertiary_loaded = list()
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
force = 10
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
caliber = "shotgun"
|
||||
caliber = "12g"
|
||||
origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 2)
|
||||
load_method = SINGLE_CASING
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/beanbag
|
||||
ammo_type = /obj/item/ammo_casing/a12g/beanbag
|
||||
handle_casings = HOLD_CASINGS
|
||||
fire_sound = 'sound/weapons/shotgun.ogg'
|
||||
var/recentpump = 0 // to prevent spammage
|
||||
@@ -48,7 +48,7 @@
|
||||
item_state = "cshotgun"
|
||||
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2)
|
||||
max_shells = 7 //match the ammo box capacity, also it can hold a round in the chamber anyways, for a total of 8.
|
||||
ammo_type = /obj/item/ammo_casing/shotgun
|
||||
ammo_type = /obj/item/ammo_casing/a12g
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/doublebarrel
|
||||
name = "double-barreled shotgun"
|
||||
@@ -64,9 +64,9 @@
|
||||
force = 10
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
caliber = "shotgun"
|
||||
caliber = "12g"
|
||||
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 1)
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/beanbag
|
||||
ammo_type = /obj/item/ammo_casing/a12g/beanbag
|
||||
|
||||
burst_delay = 0
|
||||
firemodes = list(
|
||||
@@ -75,12 +75,12 @@
|
||||
)
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/pellet
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/pellet
|
||||
ammo_type = /obj/item/ammo_casing/a12g/pellet
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/flare
|
||||
name = "signal shotgun"
|
||||
desc = "A double-barreled shotgun meant to fire signal flash shells."
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/flash
|
||||
ammo_type = /obj/item/ammo_casing/a12g/flash
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/unload_ammo(user, allow_dump)
|
||||
..(user, allow_dump=1)
|
||||
@@ -115,6 +115,6 @@
|
||||
icon_state = "sawnshotgun"
|
||||
item_state = "sawnshotgun"
|
||||
slot_flags = SLOT_BELT|SLOT_HOLSTER
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/pellet
|
||||
ammo_type = /obj/item/ammo_casing/a12g/pellet
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
force = 5
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
slot_flags = SLOT_BACK // Needs a sprite.
|
||||
origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 2, TECH_ILLEGAL = 8)
|
||||
recoil = 2 //extra kickback
|
||||
caliber = "a762"
|
||||
caliber = "7.62mm"
|
||||
load_method = MAGAZINE
|
||||
accuracy = -3 //shooting at the hip
|
||||
scoped_accuracy = 0
|
||||
@@ -88,11 +88,11 @@
|
||||
one_handed_penalty = 4 // The weapon itself is heavy, and the long barrel makes it hard to hold steady with just one hand.
|
||||
fire_sound = 'sound/weapons/SVD_shot.ogg'
|
||||
magazine_type = /obj/item/ammo_magazine/SVD
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/SVD, /obj/item/ammo_magazine/c762)
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/SVD, /obj/item/ammo_magazine/m762)
|
||||
|
||||
/obj/item/weapon/gun/projectile/SVD/update_icon()
|
||||
..()
|
||||
// if(istype(ammo_magazine,/obj/item/ammo_magazine/c762)
|
||||
// if(istype(ammo_magazine,/obj/item/ammo_magazine/m762)
|
||||
// icon_state = "SVD-bigmag" //No icon for this exists yet.
|
||||
if(ammo_magazine)
|
||||
icon_state = "SVD"
|
||||
|
||||
@@ -62,16 +62,16 @@ var/global/list/datum/supply_drop_loot/supply_drop
|
||||
/obj/item/weapon/storage/box/emps,
|
||||
/obj/item/weapon/storage/box/flashbangs,
|
||||
/obj/item/weapon/gun/projectile/automatic/sts35,
|
||||
/obj/item/ammo_magazine/c762/ap,
|
||||
/obj/item/ammo_magazine/c762/ap,
|
||||
/obj/item/ammo_magazine/m762/ap,
|
||||
/obj/item/ammo_magazine/m762/ap,
|
||||
/obj/item/weapon/gun/projectile/colt,
|
||||
/obj/item/ammo_magazine/c45m,
|
||||
/obj/item/ammo_magazine/m45,
|
||||
/obj/item/weapon/material/hatchet/tacknife/combatknife)
|
||||
|
||||
/datum/supply_drop_loot/heavy_warfare
|
||||
name = "Heavy Warfare"
|
||||
container = /obj/structure/largecrate
|
||||
/datum/supply_drop_loot/armour/New()
|
||||
/datum/supply_drop_loot/heavy_warfare/New()
|
||||
..()
|
||||
contents = list(
|
||||
/obj/item/clothing/head/helmet/combat,
|
||||
@@ -83,8 +83,8 @@ var/global/list/datum/supply_drop_loot/supply_drop
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/weapon/storage/backpack/dufflebag/sec,
|
||||
/obj/item/weapon/gun/projectile/automatic/carbine,
|
||||
/obj/item/ammo_magazine/c762/ap,
|
||||
/obj/item/ammo_magazine/c762,
|
||||
/obj/item/ammo_magazine/m762/ap,
|
||||
/obj/item/ammo_magazine/m762,
|
||||
/obj/item/weapon/shield/energy,
|
||||
/obj/item/weapon/grenade/frag,
|
||||
/obj/item/weapon/grenade/frag,
|
||||
@@ -99,7 +99,7 @@ var/global/list/datum/supply_drop_loot/supply_drop
|
||||
datum/supply_drop_loot/riot
|
||||
name = "Riot Gear"
|
||||
container = /obj/structure/largecrate
|
||||
/datum/supply_drop_loot/armour/New()
|
||||
/datum/supply_drop_loot/riot/New()
|
||||
..()
|
||||
contents = list(
|
||||
/obj/item/clothing/head/helmet/riot,
|
||||
|
||||
@@ -545,7 +545,7 @@ other types of metals and chemistry for reagents).
|
||||
id = "ammo_9mm"
|
||||
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 3750, "silver" = 100)
|
||||
build_path = /obj/item/ammo_magazine/c9mm
|
||||
build_path = /obj/item/ammo_magazine/box/c9mm
|
||||
sort_string = "TAACA"
|
||||
|
||||
/datum/design/item/weapon/stunshell
|
||||
@@ -553,7 +553,7 @@ other types of metals and chemistry for reagents).
|
||||
id = "stunshell"
|
||||
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 4000)
|
||||
build_path = /obj/item/ammo_casing/shotgun/stunshell
|
||||
build_path = /obj/item/ammo_casing/a12g/stunshell
|
||||
sort_string = "TAACB"
|
||||
|
||||
/datum/design/item/weapon/chemsprayer
|
||||
|
||||
@@ -23,8 +23,11 @@
|
||||
#define DAMAGE_RATE_LIMIT 3 //damage rate cap at power = 300, scales linearly with power
|
||||
|
||||
|
||||
//These would be what you would get at point blank, decreases with distance
|
||||
#define DETONATION_RADS 200
|
||||
// Base variants are applied to everyone on the same Z level
|
||||
// Range variants are applied on per-range basis: numbers here are on point blank, it scales with the map size (assumes square shaped Z levels)
|
||||
#define DETONATION_RADS 20
|
||||
#define DETONATION_HALLUCINATION_BASE 300
|
||||
#define DETONATION_HALLUCINATION_RANGE 300
|
||||
#define DETONATION_HALLUCINATION 600
|
||||
|
||||
|
||||
@@ -95,6 +98,11 @@
|
||||
anchored = 1
|
||||
grav_pulling = 1
|
||||
exploded = 1
|
||||
var/turf/TS = get_turf(src) // The turf supermatter is on. SM being in a locker, mecha, or other container shouldn't block it's effects that way.
|
||||
if(!TS)
|
||||
return
|
||||
for(var/z in GetConnectedZlevels(TS.z))
|
||||
radiation_repository.z_radiate(locate(1, 1, z), DETONATION_RADS, 1)
|
||||
for(var/mob/living/mob in living_mob_list)
|
||||
var/turf/T = get_turf(mob)
|
||||
if(T && (loc.z == T.z))
|
||||
@@ -102,8 +110,6 @@
|
||||
//Hilariously enough, running into a closet should make you get hit the hardest.
|
||||
var/mob/living/carbon/human/H = mob
|
||||
H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) )
|
||||
var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) )
|
||||
mob.apply_effect(rads, IRRADIATE)
|
||||
spawn(pull_time)
|
||||
explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1)
|
||||
qdel(src)
|
||||
@@ -252,12 +258,15 @@
|
||||
if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) // VOREStation Edit - Only mesons can protect you!
|
||||
l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) )
|
||||
|
||||
/*
|
||||
//adjusted range so that a power of 170 (pretty high) results in 9 tiles, roughly the distance from the core to the engine monitoring room.
|
||||
//note that the rads given at the maximum range is a constant 0.2 - as power increases the maximum range merely increases.
|
||||
for(var/mob/living/l in range(src, round(sqrt(power / 2))))
|
||||
var/radius = max(get_dist(l, src), 1)
|
||||
var/rads = (power / 10) * ( 1 / (radius**2) )
|
||||
l.apply_effect(rads, IRRADIATE)
|
||||
*/
|
||||
radiation_repository.radiate(src, power * 1.5) //Better close those shutters!
|
||||
|
||||
power -= (power/DECAY_FACTOR)**3 //energy losses due to radiation
|
||||
|
||||
@@ -371,9 +380,8 @@
|
||||
"<span class=\"warning\">The unearthly ringing subsides and you notice you have new radiation burns.</span>", 2)
|
||||
else
|
||||
l.show_message("<span class=\"warning\">You hear an uneartly ringing and notice your skin is covered in fresh radiation burns.</span>", 2)
|
||||
var/rads = 500 * sqrt( 1 / (get_dist(l, src) + 1) )
|
||||
l.apply_effect(rads, IRRADIATE)
|
||||
|
||||
var/rads = 500
|
||||
radiation_repository.radiate(src, rads)
|
||||
|
||||
/obj/machinery/power/supermatter/proc/supermatter_pull()
|
||||
//following is adapted from singulo code
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
/* SURGERY STEPS */
|
||||
|
||||
/obj/
|
||||
var/surgery_odds = 0 // Used for tables/etc which can have surgery done of them.
|
||||
|
||||
/datum/surgery_step
|
||||
var/priority = 0 //steps with higher priority would be attempted first
|
||||
|
||||
@@ -111,13 +114,29 @@
|
||||
return 1
|
||||
M.op_stage.in_progress += zone
|
||||
S.begin_step(user, M, zone, src) //start on it
|
||||
//We had proper tools! (or RNG smiled.) and user did not move or change hands.
|
||||
if(prob(S.tool_quality(src)) && do_mob(user, M, rand(S.min_duration, S.max_duration)))
|
||||
S.end_step(user, M, zone, src) //finish successfully
|
||||
else if ((src in user.contents) && user.Adjacent(M)) //or
|
||||
S.fail_step(user, M, zone, src) //malpractice~
|
||||
else // This failing silently was a pain.
|
||||
user << "<span class='warning'>You must remain close to your patient to conduct surgery.</span>"
|
||||
var/success = TRUE
|
||||
|
||||
// Bad tools make it less likely to succeed.
|
||||
if(!prob(S.tool_quality(src)))
|
||||
success = FALSE
|
||||
|
||||
// Bad or no surface may mean failure as well.
|
||||
var/obj/surface = M.get_surgery_surface()
|
||||
if(!surface || !prob(surface.surgery_odds))
|
||||
success = FALSE
|
||||
|
||||
// Not staying still fails you too.
|
||||
if(success)
|
||||
if(!do_mob(user, M, rand(S.min_duration, S.max_duration)))
|
||||
success = FALSE
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You must remain close to your patient to conduct surgery.</span>")
|
||||
|
||||
if(success)
|
||||
S.end_step(user, M, zone, src)
|
||||
else
|
||||
S.fail_step(user, M, zone, src)
|
||||
|
||||
M.op_stage.in_progress -= zone // Clear the in-progress flag.
|
||||
if (ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
@@ -10,6 +10,7 @@ var/list/table_icon_cache = list()
|
||||
climbable = 1
|
||||
layer = 2.8
|
||||
throwpass = 1
|
||||
surgery_odds = 66
|
||||
var/flipped = 0
|
||||
var/maxhealth = 10
|
||||
var/health = 10
|
||||
|
||||
@@ -15,16 +15,10 @@
|
||||
|
||||
/datum/artifact_effect/radiate/DoEffectAura()
|
||||
if(holder)
|
||||
var/turf/T = get_turf(holder)
|
||||
for (var/mob/living/M in range(src.effectrange,T))
|
||||
M.apply_effect(radiation_amount,IRRADIATE,0)
|
||||
M.updatehealth()
|
||||
radiation_repository.flat_radiate(holder, radiation_amount, src.effectrange)
|
||||
return 1
|
||||
|
||||
/datum/artifact_effect/radiate/DoEffectPulse()
|
||||
if(holder)
|
||||
var/turf/T = get_turf(holder)
|
||||
for (var/mob/living/M in range(src.effectrange,T))
|
||||
M.apply_effect(radiation_amount * 25,IRRADIATE,0)
|
||||
M.updatehealth()
|
||||
radiation_repository.radiate(holder, ((radiation_amount * 25) * (sqrt(src.effectrange)))) //Need to get feedback on this
|
||||
return 1
|
||||
|
||||
@@ -198,8 +198,7 @@
|
||||
radiation = rand() * 15 + 85
|
||||
if(!rad_shield)
|
||||
//irradiate nearby mobs
|
||||
for(var/mob/living/M in view(7,src))
|
||||
M.apply_effect(radiation / 25, IRRADIATE, 0)
|
||||
radiation_repository.radiate(src, radiation / 25)
|
||||
else
|
||||
t_left_radspike = pick(10,15,25)
|
||||
|
||||
@@ -361,4 +360,4 @@
|
||||
scanned_item = null
|
||||
|
||||
add_fingerprint(usr)
|
||||
return 1 // update UIs attached to this object
|
||||
return 1 // update UIs attached to this object
|
||||
Reference in New Issue
Block a user