Gun, sword and janitor ert additions (#2142)

-changes the one handed pulse rifle to be a pulse carbine and a pulse pistol, also removed a lot of useless vars from it
-changed the pulse destroyer to fire in bursts
-added some new flavors of sword with their own sprites
-added some new on hand and back sprites for some guns
-added the janitor ert hardsuit, not anywhere yet
-fix #2137
-fix the anesthetic tank having no sprite on the back
-ghetto shotgun and pistol chances of failure are now random when they are created
This commit is contained in:
Alberyk
2017-05-01 14:20:22 -03:00
committed by skull132
parent c197ce34fc
commit 0f472d3818
22 changed files with 193 additions and 69 deletions

View File

@@ -1,43 +1,31 @@
/obj/item/weapon/gun/energy/pulse_rifle
name = "pulse rifle"
/obj/item/weapon/gun/energy/pulse
name = "pulse carbine"
desc = "A weapon that uses advanced pulse-based beam generation technology to emit powerful laser blasts. Because of its complexity and cost, it is rarely seen in use except by specialists."
icon_state = "pulse"
item_state = null //so the human update icon uses the icon_state instead.
slot_flags = SLOT_BELT|SLOT_BACK
force = 10
icon_state = "pulse_carbine"
item_state = "pulse_carbine"
slot_flags = SLOT_BELT
force = 5
fire_sound='sound/weapons/Laser.ogg'
projectile_type = /obj/item/projectile/beam
sel_mode = 2
max_shots = 10
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg', fire_delay=null, charge_cost=null),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/Laser.ogg', fire_delay=null, charge_cost=null),
list(mode_name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=25, charge_cost=400)
list(mode_name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=25)
)
/obj/item/weapon/gun/energy/pulse_rifle/mounted
/obj/item/weapon/gun/energy/pulse/mounted
charge_cost = 400
self_recharge = 1
use_external_power = 1
recharge_time = 10
/obj/item/weapon/gun/energy/pulse_rifle/destroyer
name = "pulse destroyer"
desc = "A heavy-duty, pulse-based energy weapon. Because of its complexity and cost, it is rarely seen in use except by specialists."
cell_type = /obj/item/weapon/cell/super
fire_delay = 25
fire_sound='sound/weapons/pulse.ogg'
projectile_type=/obj/item/projectile/beam/pulse
charge_cost=400
/obj/item/weapon/gun/energy/pulse_rifle/destroyer/attack_self(mob/living/user as mob)
user << "<span class='warning'>[src.name] has three settings, and they are all DESTROY.</span>"
//WHY?
/obj/item/weapon/gun/energy/pulse_rifle/M1911
name = "\improper M1911-P"
desc = "It's not the size of the gun, it's the size of the hole it puts through people."
/obj/item/weapon/gun/energy/pulse/pistol
name = "pulse pistol"
desc = "A weapon that uses advanced pulse-based beam generation technology to emit powerful laser blasts. This one is a really compact model."
slot_flags = SLOT_BELT|SLOT_HOLSTER
icon_state = "m1911-p"
icon_state = "pulse_pistol"
item_state = "pulse_pistol"
max_shots = 5

View File

@@ -48,7 +48,7 @@
icon_state = "laser"
item_state = "laser"
fire_sound = 'sound/weapons/Laser.ogg'
origin_tech = "combat=3;magnets=2"
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
projectile_type = /obj/item/projectile/beam
firemodes = list()
@@ -70,6 +70,16 @@
fire_delay_wielded = 20
/obj/item/weapon/gun/energy/rifle/laser/xray
name = "xray laser rifle"
desc = "A high-power laser rifle capable of expelling concentrated xray blasts."
icon_state = "xrifle"
item_state = "xray"
fire_sound = 'sound/weapons/laser3.ogg'
projectile_type = /obj/item/projectile/beam/xray
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2)
max_shots = 40
/obj/item/weapon/gun/energy/rifle/pulse
name = "pulse rifle"
desc = "A weapon that uses advanced pulse-based beam generation technology to emit powerful laser blasts. Because of its complexity and cost, it is rarely seen in use except by specialists."
@@ -78,22 +88,24 @@
fire_sound = 'sound/weapons/Laser.ogg'
projectile_type = /obj/item/projectile/beam
sel_mode = 2
origin_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 6, TECH_MAGNET = 4)
modifystate = null
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/Laser.ogg'),
list(mode_name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=15, charge_cost=400)
list(mode_name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg')
)
/obj/item/weapon/gun/energy/rifle/laser/xray
name = "xray laser rifle"
desc = "A high-power laser rifle capable of expelling concentrated xray blasts."
icon_state = "xrifle"
item_state = "xray"
fire_sound = 'sound/weapons/laser3.ogg'
origin_tech = "combat=3;magnets=2"
projectile_type = /obj/item/projectile/beam/xray
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2)
max_shots = 40
/obj/item/weapon/gun/energy/rifle/pulse/destroyer
name = "pulse destroyer"
desc = "A heavy-duty, pulse-based energy weapon. Because of its complexity and cost, it is rarely seen in use except by specialists."
fire_sound='sound/weapons/pulse.ogg'
projectile_type=/obj/item/projectile/beam/pulse
burst_delay = 5
burst = 3
max_shots = 30
/obj/item/weapon/gun/energy/rifle/pulse/destroyer/attack_self(mob/living/user as mob)
user << "<span class='warning'>[src.name] has three settings, and they are all DESTROY.</span>"

View File

@@ -1,6 +1,7 @@
/obj/item/weapon/gun/energy/temperature
name = "freeze ray"
icon_state = "freezegun"
item_state = "freezegun"
fire_sound = 'sound/weapons/pulse3.ogg'
desc = "A gun that changes temperatures. It has a small label on the side, 'More extreme temperatures will cost more charge!'"
var/temperature = T20C
@@ -77,4 +78,4 @@
temperature += 10
else
temperature = current_temperature
*/
*/

View File

@@ -92,7 +92,7 @@
w_class = 4
force = 10
caliber = "a762"
origin_tech = "combat=6;materials=1;syndicate=4"
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

View File

@@ -17,9 +17,10 @@
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
handle_casings = CYCLE_CASINGS
load_method = SINGLE_CASING
var/fail_chance = 35
/obj/item/weapon/gun/projectile/shotgun/improvised/special_check(var/mob/living/carbon/human/M)
if(prob(35))
if(prob(fail_chance))
M.visible_message("<span class='danger'>[M]'s weapon blows up, shattering into pieces!</span>","<span class='danger'>[src] blows up in your face!</span>", "You hear a loud bang!")
M.take_organ_damage(0,30)
M.drop_item()
@@ -49,6 +50,15 @@
else
..()
/obj/item/weapon/gun/projectile/shotgun/improvised/examine(mob/user)
..(user)
switch(fail_chance)
if(1) user << "All craftsmanship is of the highest quality."
if(2 to 25) user << "All craftsmanship is of high quality."
if(26 to 50) user << "All craftsmanship is of average quality."
if(51 to 75) user << "All craftsmanship is of low quality."
if(100) user << "All craftsmanship is of the lowest quality."
/obj/item/weapon/gun/projectile/shotgun/improvised/sawn
name = "sawn-off improvised shotgun"
desc = "An improvised pipe assembly that can fire shotgun shells."
@@ -115,7 +125,8 @@
if(buildstate == 3)
if(C.use(10))
user << "<span class='notice'>You tie the lengths of cable to the shotgun, making a sling.</span>"
new /obj/item/weapon/gun/projectile/shotgun/improvised(get_turf(src))
var/obj/item/weapon/gun/projectile/shotgun/improvised/G = new(get_turf(src))
G.fail_chance = rand(1,100)
qdel(src)
else
user << "<span class='notice'>You need at least ten lengths of cable if you want to make a sling!.</span>"
@@ -142,6 +153,15 @@
load_method = MAGAZINE
jam_chance = 20
/obj/item/weapon/gun/projectile/improvised_handgun/examine(mob/user)
..(user)
switch(jam_chance)
if(1) user << "All craftsmanship is of the highest quality."
if(2 to 25) user << "All craftsmanship is of high quality."
if(26 to 50) user << "All craftsmanship is of average quality."
if(51 to 75) user << "All craftsmanship is of low quality."
if(100) user << "All craftsmanship is of the lowest quality."
/obj/item/weapon/stock/update_icon()
icon_state = "ipistol[buildstate]"
@@ -182,6 +202,29 @@
if(!src || !T.isOn()) return
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
user << "<span class='notice'>You shorten the barrel with the welding tool.</span>"
new /obj/item/weapon/gun/projectile/improvised_handgun(get_turf(src))
var/obj/item/weapon/gun/projectile/improvised_handgun/G = new(get_turf(src))
G.jam_chance = rand(1,100)
qdel(src)
..()
/obj/item/weapon/gun/projectile/automatic/improvised
name = "improvised machine pistol"
desc = "An improvised automatic handgun. Uses .45 rounds."
icon = 'icons/obj/improvised.dmi'
icon_state = "ismg"
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/c45uzi
allowed_magazines = list(/obj/item/ammo_magazine/c45uzi)
max_shells = 16
caliber = ".45"
sel_mode = 1
accuracy = -5
fire_delay = 5
burst = 3
burst_delay = 0
move_delay = 0
fire_delay = 2
dispersion = list(1.0, -1.0, 2.0, -2.0)
jam_chance = 20
firemodes = null