mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-05 23:11:52 +00:00
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:
@@ -1587,7 +1587,7 @@
|
||||
else if(!ispath(path, /obj) && !ispath(path, /turf) && !ispath(path, /mob))
|
||||
removed_paths += dirty_path
|
||||
continue
|
||||
else if(ispath(path, /obj/item/weapon/gun/energy/pulse_rifle))
|
||||
else if(ispath(path, /obj/item/weapon/gun/energy/pulse))
|
||||
if(!check_rights(R_FUN,0))
|
||||
removed_paths += dirty_path
|
||||
continue
|
||||
|
||||
@@ -461,7 +461,7 @@
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/thunderdome(M), slot_head)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle/destroyer(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/rifle/pulse/destroyer(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/material/knife(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/smokebomb(M), slot_r_store)
|
||||
|
||||
@@ -718,7 +718,7 @@
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/nuclear(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat/peacekeeper(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/accessory/holster/hip(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pistol(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/beret/centcom/officer(M), slot_head)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(M)
|
||||
@@ -774,7 +774,6 @@
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
|
||||
if("odin security")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/ccpolice(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/vest/heavy/ert/peacekeeper(M), slot_wear_suit)
|
||||
@@ -803,8 +802,6 @@
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
|
||||
|
||||
if("special ops officer")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate/combat(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/swat/officer(M), slot_wear_suit)
|
||||
@@ -814,7 +811,7 @@
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/plain/eyepatch(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(M), slot_wear_mask)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle/M1911(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/flame/lighter/zippo(M), slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
|
||||
@@ -826,6 +823,7 @@
|
||||
W.assignment = "Special Operations Officer"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
if("blue wizard")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), slot_wear_suit)
|
||||
@@ -861,6 +859,7 @@
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/staff(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
|
||||
|
||||
if("soviet admiral")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/hgpiratecap(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
||||
|
||||
@@ -1414,18 +1414,7 @@ var/list/global/random_stock_large = list(
|
||||
if("cloak")
|
||||
new /obj/item/weapon/cloaking_device(L)
|
||||
if("sword")
|
||||
var/list/swords = list(
|
||||
/obj/item/weapon/material/sword,
|
||||
/obj/item/weapon/material/sword/katana,
|
||||
/obj/item/weapon/material/sword/rapier,
|
||||
/obj/item/weapon/material/sword/longsword,
|
||||
/obj/item/weapon/material/sword/trench,
|
||||
/obj/item/weapon/material/sword/sabre,
|
||||
/obj/item/weapon/material/sword/axe
|
||||
)
|
||||
|
||||
var/type = pick(swords)
|
||||
new type(L)
|
||||
new /obj/random/sword(L)
|
||||
if("ims")
|
||||
new /obj/item/weapon/scalpel/manager(L)
|
||||
if("hardsuit")
|
||||
|
||||
@@ -103,6 +103,14 @@
|
||||
list("frag grenade", "frag grenade", /obj/item/weapon/grenade/frag, 3)
|
||||
)
|
||||
|
||||
/obj/item/rig_module/grenade_launcher/cleaner
|
||||
name = "mounted cleaning grenade launcher"
|
||||
desc = "A specialty shoulder-mounted micro-explosive dispenser."
|
||||
|
||||
charges = list(
|
||||
list("cleaning grenade", "cleaning grenade", /obj/item/weapon/grenade/chem_grenade/cleaner, 9)
|
||||
)
|
||||
|
||||
/obj/item/rig_module/mounted
|
||||
|
||||
name = "mounted laser cannon"
|
||||
@@ -176,7 +184,7 @@
|
||||
interface_name = "mounted pulse rifle"
|
||||
interface_desc = "A shoulder-mounted cell-powered pulse rifle."
|
||||
|
||||
gun_type = /obj/item/weapon/gun/energy/pulse_rifle/mounted
|
||||
gun_type = /obj/item/weapon/gun/energy/pulse
|
||||
|
||||
/obj/item/rig_module/mounted/smg
|
||||
|
||||
@@ -309,3 +317,12 @@
|
||||
H.put_in_hands(new_weapon)
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/rig_module/fabricator/sign
|
||||
name = "wet floor sign fabricator"
|
||||
engage_string = "Fabricate Sign"
|
||||
|
||||
interface_name = "wet floor sign launcher"
|
||||
interface_desc = "An integrated microfactory that produces wet floor signs from thin air and electricity."
|
||||
|
||||
fabrication_type = /obj/item/weapon/caution
|
||||
|
||||
@@ -466,3 +466,12 @@
|
||||
device = iastamp
|
||||
holder.wearer << "<span class='notice'>Switched to internal affairs stamp.</span>"
|
||||
return 1
|
||||
|
||||
/obj/item/rig_module/device/decompiler
|
||||
name = "mounted matter decompiler"
|
||||
desc = "A drone matter decompiler reconfigured for hardsuit use."
|
||||
icon_state = "ewar"
|
||||
interface_name = "mounted matter decompiler"
|
||||
interface_desc = "Eats trash like no one's business."
|
||||
|
||||
device_type = /obj/item/weapon/matter_decompiler
|
||||
|
||||
@@ -73,6 +73,20 @@
|
||||
/obj/item/rig_module/mounted/egun
|
||||
)
|
||||
|
||||
/obj/item/weapon/rig/ert/janitor
|
||||
name = "ERT-J suit control module"
|
||||
desc = "A suit worn by the janitoral division of an Emergency Response Team. Has purple highlights. Armoured and space ready."
|
||||
suit_type = "ERT janitor"
|
||||
icon_state = "ert_janitor_rig"
|
||||
|
||||
initial_modules = list(
|
||||
/obj/item/rig_module/ai_container,
|
||||
/obj/item/rig_module/maneuvering_jets,
|
||||
/obj/item/rig_module/fabricator/sign,
|
||||
/obj/item/rig_module/grenade_launcher/cleaner,
|
||||
/obj/item/rig_module/device/decompiler
|
||||
)
|
||||
|
||||
/obj/item/weapon/rig/ert/assetprotection
|
||||
name = "heavy asset protection suit control module"
|
||||
desc = "A heavy suit worn by the highest level of Asset Protection, don't mess with the person wearing this. Armoured and space ready."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>"
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user