Leyon Changes (#5200)

The Leyon Pistol has been changed to be closer to the original vision of it.
It is loaded via a special 10mm speedloader, however loading it takes some time.

Each gun (when ordered via cargo) will ship with a speedloader.
The speedloaders itself can not be ordered, but 10mm ammunition boxes can which can be used to restock the speedloaders or load the gun directly.

Reduces the price for the gun at the merchants from 1500 to 500 credits
And makes additional ammo boxes purchaseable

Also changes the path name of the 10mm ammo/mags/... to be consistent with the standard pathing for ammo
Adds additional messages if you can not load a gun with a single cartridge (currently it fails silently)
This commit is contained in:
Werner
2018-09-15 23:46:52 +02:00
committed by Erki
parent 530b9102db
commit 0feedab118
10 changed files with 101 additions and 49 deletions
+4 -3
View File
@@ -30,10 +30,11 @@
/obj/item/weapon/gun/projectile/automatic/x9 = TRADER_THIS_TYPE,
/obj/item/ammo_magazine/c45m = TRADER_ALL,
/obj/item/ammo_magazine/c45m/empty = TRADER_BLACKLIST,
/obj/item/ammo_magazine/t40 = TRADER_ALL,
/obj/item/ammo_magazine/t40/empty = TRADER_BLACKLIST,
/obj/item/ammo_magazine/mc10mm = TRADER_ALL,
/obj/item/ammo_magazine/mc10mm/leyon = TRADER_BLACKLIST,
/obj/item/ammo_magazine/mc10mm/empty = TRADER_BLACKLIST,
/obj/item/weapon/storage/box/ammo10mm = TRADER_THIS_TYPE,
/obj/item/ammo_magazine/c38 = TRADER_ALL,
/obj/item/ammo_magazine/leyon = TRADER_THIS_TYPE,
/obj/item/ammo_magazine/c45x = TRADER_THIS_TYPE,
/obj/item/weapon/storage/box/beanbags = TRADER_THIS_TYPE,
/obj/item/weapon/storage/box/shotgunammo = TRADER_THIS_TYPE,
@@ -318,13 +318,17 @@
/obj/item/weapon/storage/box/sniperammo/fill()
..()
new /obj/item/ammo_casing/a145(src)
new /obj/item/ammo_casing/a145(src)
new /obj/item/ammo_casing/a145(src)
new /obj/item/ammo_casing/a145(src)
new /obj/item/ammo_casing/a145(src)
new /obj/item/ammo_casing/a145(src)
new /obj/item/ammo_casing/a145(src)
for(var/i in 1 to 7)
new /obj/item/ammo_casing/a145(src)
/obj/item/weapon/storage/box/ammo10mm
name = "box of 10mm shells"
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
/obj/item/weapon/storage/box/ammo10mm/fill()
..()
for(var/i in 1 to 10)
new /obj/item/ammo_casing/c10mm(src)
/obj/item/weapon/storage/box/flashbangs
name = "box of flashbangs"
+1
View File
@@ -115,6 +115,7 @@ var/list/worths = list(
/obj/item/weapon/gun/projectile/silenced = 1700,
/obj/item/weapon/gun/projectile/dragunov = 4500,
/obj/item/weapon/gun/projectile/contender = 1300,
/obj/item/weapon/gun/projectile/leyon = 500,
/obj/item/weapon/gun/projectile = 1500,
//GUN,
/obj/item/weapon/gun/bang = 200,
+3 -3
View File
@@ -150,9 +150,9 @@
new/obj/item/clothing/mask/luchador(src)
if(100)
new/obj/item/weapon/gun/projectile/tanto(src)
new/obj/item/ammo_magazine/t40(src)
new/obj/item/ammo_magazine/t40(src)
new/obj/item/ammo_magazine/t40/rubber(src)
new/obj/item/ammo_magazine/mc10mm(src)
new/obj/item/ammo_magazine/mc10mm(src)
new/obj/item/ammo_magazine/mc10mm/rubber(src)
new/obj/item/clothing/under/rank/dispatch(src)
new/obj/item/clothing/accessory/badge/old(src)
new/obj/item/clothing/head/helmet/formalcaptain(src)
@@ -109,7 +109,7 @@
rapid = 1
icon_state = "syndicateranged"
icon_living = "syndicateranged"
casingtype = /obj/item/ammo_casing/t40
casingtype = /obj/item/ammo_casing/c10mm
projectilesound = 'sound/weapons/Gunshot_light.ogg'
projectiletype = /obj/item/projectile/bullet/pistol/medium
+15 -16
View File
@@ -82,22 +82,30 @@
name = "magazine (.45 flash)"
ammo_type = /obj/item/ammo_casing/c45/flash
/obj/item/ammo_magazine/t40
/obj/item/ammo_magazine/mc10mm
name = "magazine (10mm)"
icon_state = "5.56"
mag_type = MAGAZINE
ammo_type = /obj/item/ammo_casing/t40
ammo_type = /obj/item/ammo_casing/c10mm
matter = list(DEFAULT_WALL_MATERIAL = 475) //metal costs are very roughly based around 1 .45 casing = 75 metal
caliber = "10mm"
max_ammo = 12
multiple_sprites = 1
/obj/item/ammo_magazine/t40/empty
/obj/item/ammo_magazine/mc10mm/empty
initial_ammo = 0
/obj/item/ammo_magazine/t40/rubber
/obj/item/ammo_magazine/mc10mm/rubber
name = "magazine (10mm rubber)"
ammo_type = /obj/item/ammo_casing/t40/rubber
ammo_type = /obj/item/ammo_casing/c10mm/rubber
/obj/item/ammo_magazine/mc10mm/leyon
name = "ammo clip (10mm)"
icon_state = "10mmclip"
mag_type = SPEEDLOADER
matter = list(DEFAULT_WALL_MATERIAL = 1800)
max_ammo = 5
multiple_sprites = 1
/obj/item/ammo_magazine/mc9mm
name = "magazine (9mm)"
@@ -168,7 +176,7 @@
mag_type = MAGAZINE
caliber = "10mm"
matter = list(DEFAULT_WALL_MATERIAL = 1500)
ammo_type = /obj/item/ammo_casing/t40
ammo_type = /obj/item/ammo_casing/c10mm
max_ammo = 20
multiple_sprites = 1
@@ -412,13 +420,4 @@
mag_type = MAGAZINE
caliber = "a762"
ammo_type = /obj/item/ammo_casing/a762
max_ammo = 1000
/obj/item/ammo_magazine/leyon
name = "ammo clip (10mm)"
icon_state = "10mmclip"
ammo_type = /obj/item/ammo_casing/t40
caliber = "10mm"
matter = list(DEFAULT_WALL_MATERIAL = 1800)
max_ammo = 5
multiple_sprites = 1
max_ammo = 1000
@@ -61,6 +61,15 @@
desc = "A 9mm practice bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/practice
/obj/item/ammo_casing/c10mm
desc = "A 10mm bullet casing."
caliber = "10mm"
projectile_type = /obj/item/projectile/bullet/pistol
/obj/item/ammo_casing/c10mm/rubber
desc = "A 10mm rubber bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/rubber
/obj/item/ammo_casing/c45
desc = "A .45 bullet casing."
caliber = ".45"
@@ -80,15 +89,6 @@
desc = "A .45 flash shell casing."
projectile_type = /obj/item/projectile/energy/flash
/obj/item/ammo_casing/t40
desc = "A 10mm bullet casing."
caliber = "10mm"
projectile_type = /obj/item/projectile/bullet/pistol
/obj/item/ammo_casing/t40/rubber
desc = "A 10mm rubber bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/rubber
/obj/item/ammo_casing/a12mm
desc = "A 12mm bullet casing."
caliber = "12mm"
+9 -5
View File
@@ -113,12 +113,12 @@
if(istype(A, /obj/item/ammo_magazine))
var/obj/item/ammo_magazine/AM = A
if(!(load_method & AM.mag_type) || caliber != AM.caliber || (allowed_magazines && !is_type_in_list(A, allowed_magazines)))
user << "<span class='warning'>[AM] won't load into [src]!</span>"
to_chat(user,"<span class='warning'>[AM] won't load into [src]!</span>")
return
switch(AM.mag_type)
if(MAGAZINE)
if(ammo_magazine)
user << "<span class='warning'>[src] already has a magazine loaded.</span>" //already a magazine here
to_chat(user,"<span class='warning'>[src] already has a magazine loaded.</span>") //already a magazine here
return
user.remove_from_mob(AM)
AM.forceMove(src)
@@ -127,7 +127,7 @@
playsound(src.loc, 'sound/weapons/flipblade.ogg', 50, 1)
if(SPEEDLOADER)
if(loaded.len >= max_shells)
user << "<span class='warning'>[src] is full!</span>"
to_chat(user,"<span class='warning'>[src] is full!</span>")
return
var/count = 0
for(var/obj/item/ammo_casing/C in AM.stored_ammo)
@@ -144,10 +144,14 @@
AM.update_icon()
else if(istype(A, /obj/item/ammo_casing))
var/obj/item/ammo_casing/C = A
if(!(load_method & SINGLE_CASING) || caliber != C.caliber)
if(!(load_method & SINGLE_CASING))
to_chat(user,"<span class='warning'>[src] can not be loaded with single casings.</span>")
return //incompatible
if(caliber != C.caliber)
to_chat(user,"<span class='warning'>\The [C] does not fit.</span>")
return //incompatible
if(loaded.len >= max_shells)
user << "<span class='warning'>[src] is full.</span>"
to_chat(user,"<span class='warning'>[src] is full.</span>")
return
user.remove_from_mob(C)
@@ -93,10 +93,10 @@
/obj/item/weapon/gun/projectile/tanto
desc = "A Necropolis Industries Tanto .40, designed to compete with the NT Mk58. Uses 10mm rounds."
name = "10mm pistol"
name = "10mm auto-pistol"
icon_state = "c05r"
magazine_type = /obj/item/ammo_magazine/t40
allowed_magazines = list(/obj/item/ammo_magazine/t40)
magazine_type = /obj/item/ammo_magazine/mc10mm
allowed_magazines = list(/obj/item/ammo_magazine/mc10mm)
caliber = "10mm"
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2)
fire_sound = 'sound/weapons/Gunshot_light.ogg'
@@ -262,7 +262,7 @@
/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/emp = "12 gauge",
/obj/item/ammo_casing/shotgun/emp = "12 gauge",
/obj/item/ammo_casing/a762 = "7.62mm",
/obj/item/ammo_casing/a556 = "5.56mm"
)
@@ -281,12 +281,18 @@
icon_state = "leyon"
caliber = "10mm"
w_class = 2
ammo_type = /obj/item/ammo_casing/t40
ammo_type = /obj/item/ammo_casing/c10mm
max_shells = 5
origin_tech = list(TECH_COMBAT = 1, TECH_MATERIAL = 1)
fire_sound = 'sound/weapons/Gunshot_light.ogg'
load_method = SINGLE_CASING|SPEEDLOADER
/obj/item/weapon/gun/projectile/leyon/load_ammo(var/obj/item/A, mob/user)
user.visible_message("[user] begins reloading \the [src].", "You begin reloading \the [src].")
if(!do_after(user, 20, act_target = src))
return
return ..()
/obj/item/weapon/gun/projectile/leyon/update_icon()
..()
if(loaded.len)
+37
View File
@@ -0,0 +1,37 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
# balance
#################################
# Your name.
author: Arrow768
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- tweak: "The Leyon Gunsmithing LLC has reworked the \"Everyman\" to be targeted more towards civilians and was able to reduce the market-price of it."