From 6f3d4c2405884da588be2b486e0224eb745dcc4b Mon Sep 17 00:00:00 2001
From: Kirie Saito <77302679+Kitsunemitsu@users.noreply.github.com>
Date: Sun, 31 Mar 2024 13:54:05 -0400
Subject: [PATCH 1/7] adds reloading to all guns
asd
Update ego_gun.dm
Update ego_gun.dm
update
Update lobotomy-corp13.dme
---
.../ego_weapons/non_abnormality/fullstop.dm | 4 +-
.../ego_weapons/non_abnormality/kcorp.dm | 8 ++-
.../ego_weapons/non_abnormality/thumb.dm | 4 +-
code/modules/projectiles/gun.dm | 2 +-
code/modules/projectiles/guns/ego_gun.dm | 48 ++++++++++++-
.../modules/projectiles/guns/ego_gun/aleph.dm | 6 +-
code/modules/projectiles/guns/ego_gun/he.dm | 25 +++++--
code/modules/projectiles/guns/ego_gun/teth.dm | 30 ++++++--
code/modules/projectiles/guns/ego_gun/waw.dm | 70 +++++++++++++------
.../modules/projectiles/guns/ego_gun/zayin.dm | 18 +++--
.../projectiles/projectile/ego_bullets/waw.dm | 10 +--
lobotomy-corp13.dme | 1 -
12 files changed, 174 insertions(+), 52 deletions(-)
diff --git a/code/game/objects/items/ego_weapons/non_abnormality/fullstop.dm b/code/game/objects/items/ego_weapons/non_abnormality/fullstop.dm
index 607aff479a73..e8230481fbbb 100644
--- a/code/game/objects/items/ego_weapons/non_abnormality/fullstop.dm
+++ b/code/game/objects/items/ego_weapons/non_abnormality/fullstop.dm
@@ -8,8 +8,8 @@
weapon_weight = WEAPON_HEAVY
fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg'
special = "Use in hand to reload"
- var/shotsleft = 10
- var/reloadtime = 3 SECONDS
+ shotsleft = 10
+ reloadtime = 3 SECONDS
/obj/item/gun/ego_gun/city/fullstop/process_chamber()
if(shotsleft)
diff --git a/code/game/objects/items/ego_weapons/non_abnormality/kcorp.dm b/code/game/objects/items/ego_weapons/non_abnormality/kcorp.dm
index 18259a82e698..d76dd9f1ee75 100644
--- a/code/game/objects/items/ego_weapons/non_abnormality/kcorp.dm
+++ b/code/game/objects/items/ego_weapons/non_abnormality/kcorp.dm
@@ -97,6 +97,8 @@
righthand_file = 'ModularTegustation/Teguicons/lc13_right.dmi'
ammo_type = /obj/item/ammo_casing/caseless/ego_kcorp
fire_delay = 5
+ shotsleft = 12
+ reloadtime = 0.8 SECONDS
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
fire_sound_volume = 70
@@ -110,6 +112,8 @@
fire_sound = 'sound/weapons/gun/smg/mp7.ogg'
autofire = 0.08 SECONDS
fire_delay = 1
+ shotsleft = 40
+ reloadtime = 1.2 SECONDS
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 80,
PRUDENCE_ATTRIBUTE = 60,
@@ -124,7 +128,9 @@
icon_state = "kgrenade"
inhand_icon_state = "kgrenade"
ammo_type = /obj/item/ammo_casing/caseless/ego_knade
- fire_delay = 15
+ fire_delay = 7
+ shotsleft = 6
+ reloadtime = 1.8 SECONDS
fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg'
fire_sound_volume = 70
attribute_requirements = list(
diff --git a/code/game/objects/items/ego_weapons/non_abnormality/thumb.dm b/code/game/objects/items/ego_weapons/non_abnormality/thumb.dm
index 7317b331f3f9..d4b0cdc4ee4f 100644
--- a/code/game/objects/items/ego_weapons/non_abnormality/thumb.dm
+++ b/code/game/objects/items/ego_weapons/non_abnormality/thumb.dm
@@ -12,8 +12,8 @@
special = "Use in hand to reload. Attack an enemy with your bayonet to reload."
projectile_damage_multiplier = 3 //30 damage per bullet
fire_delay = 7
- var/shotsleft = 5 //Based off the Mas 36, That's what my Girlfirend things it looks like. Holds 5 bullets.
- var/reloadtime = 5 SECONDS
+ shotsleft = 5 //Based off the Mas 36, That's what my Girlfirend things it looks like. Holds 5 bullets.
+ reloadtime = 5 SECONDS
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 80,
PRUDENCE_ATTRIBUTE = 60,
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 27a026dd276d..330ef4c3e836 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -249,7 +249,7 @@
for(var/obj/item/gun/G in H.held_items)
if(G == src || G.weapon_weight >= WEAPON_MEDIUM)
continue
- else if(G.can_trigger_gun(user))
+ else if(G.can_trigger_gun(user) && G.can_shoot())
bonus_spread += dual_wield_spread
loop_counter++
addtimer(CALLBACK(G, TYPE_PROC_REF(/obj/item/gun, process_fire), target, user, TRUE, params, null, bonus_spread), loop_counter)
diff --git a/code/modules/projectiles/guns/ego_gun.dm b/code/modules/projectiles/guns/ego_gun.dm
index 5c6f6ccd6b72..7d226fc180aa 100644
--- a/code/modules/projectiles/guns/ego_gun.dm
+++ b/code/modules/projectiles/guns/ego_gun.dm
@@ -15,6 +15,11 @@
///In deciseconds per round
var/autofire
+ //Reload mechanics
+ var/shotsleft
+ var/reloadtime
+ var/is_reloading
+
/obj/item/gun/ego_gun/Initialize()
. = ..()
chambered = new ammo_type(src)
@@ -28,6 +33,25 @@
. += "[special]"
if(weapon_weight != WEAPON_HEAVY)
. += "This weapon can be fired with one hand."
+
+ if(reloadtime)
+ . += "Ammo Counter: [shotsleft]/[initial(shotsleft)]."
+ else
+ . += "This weapon has unlimited ammo."
+
+ if(reloadtime)
+ switch(reloadtime)
+ if(0 to 0.71 SECONDS)
+ . += "This weapon has a very fast reload."
+ if(0.71 SECONDS to 1.21 SECONDS)
+ . += "This weapon has a fast reload."
+ if(1.21 SECONDS to 1.71 SECONDS)
+ . += "This weapon has a normal reload speed."
+ if(1.71 SECONDS to 2.51 SECONDS)
+ . += "This weapon has a slow reload."
+ if(2.51 to INFINITY)
+ . += "This weapon has an extremely slow reload."
+
if(!autofire)
switch(fire_delay)
if(0 to 5)
@@ -40,7 +64,6 @@
. += "This weapon fires slowly."
else
. += "This weapon fires extremely slowly."
-
else
//Give it to 'em in true rounds per minute, accurate to the 5s
var/rpm = 600 / autofire
@@ -95,9 +118,21 @@
return
/obj/item/gun/ego_gun/can_shoot()
+ if(reloadtime)
+ if(!shotsleft)
+ visible_message(span_notice("The gun is out of ammo."))
+ playsound(src, dry_fire_sound, 30, TRUE)
+ return FALSE
+ if(is_reloading)
+ return FALSE
+
return TRUE
/obj/item/gun/ego_gun/process_chamber()
+
+ if(reloadtime && shotsleft)
+ shotsleft-=1
+
if(chambered && !chambered.BB)
recharge_newshot()
@@ -114,6 +149,17 @@
before_firing(user = user)
return ..()
+/obj/item/gun/ego_gun/attack_self(mob/user)
+ if(reloadtime)
+ is_reloading = TRUE
+ to_chat(user,span_notice("You start loading a new magazine."))
+ playsound(src, 'sound/weapons/gun/general/slide_lock_1.ogg', 50, TRUE)
+ if(do_after(user, reloadtime, src)) //gotta reload
+ playsound(src, 'sound/weapons/gun/general/bolt_rack.ogg', 50, TRUE)
+ shotsleft = initial(shotsleft)
+ is_reloading = FALSE
+ ..()
+
//Examine text for pistols.
/obj/item/gun/ego_gun/pistol/examine(mob/user)
. = ..()
diff --git a/code/modules/projectiles/guns/ego_gun/aleph.dm b/code/modules/projectiles/guns/ego_gun/aleph.dm
index 16a4a8ad07ca..8e6d8e3ac921 100644
--- a/code/modules/projectiles/guns/ego_gun/aleph.dm
+++ b/code/modules/projectiles/guns/ego_gun/aleph.dm
@@ -15,6 +15,8 @@
vary_fire_sound = TRUE
fire_sound_volume = 25
autofire = 0.25 SECONDS
+ shotsleft = 333
+ reloadtime = 2.1 SECONDS
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 80,
@@ -146,7 +148,9 @@
ammo_type = /obj/item/ammo_casing/caseless/pink
weapon_weight = WEAPON_HEAVY
fire_sound = 'sound/abnormalities/armyinblack/pink.ogg'
- fire_delay = 18
+ fire_delay = 9
+ shotsleft = 8
+ reloadtime = 2.1 SECONDS
zoomable = TRUE
zoom_amt = 10
zoom_out_amt = 13
diff --git a/code/modules/projectiles/guns/ego_gun/he.dm b/code/modules/projectiles/guns/ego_gun/he.dm
index 5f88f026dc4d..937bba85d42f 100644
--- a/code/modules/projectiles/guns/ego_gun/he.dm
+++ b/code/modules/projectiles/guns/ego_gun/he.dm
@@ -6,7 +6,9 @@
inhand_icon_state = "prank"
ammo_type = /obj/item/ammo_casing/caseless/ego_prank
weapon_weight = WEAPON_HEAVY
- fire_delay = 10
+ fire_delay = 5
+ shotsleft = 10
+ reloadtime = 1.4 SECONDS
damtype = BLACK_DAMAGE
fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg'
attribute_requirements = list(
@@ -19,7 +21,9 @@
icon_state = "gaze"
inhand_icon_state = "gaze"
ammo_type = /obj/item/ammo_casing/caseless/ego_gaze
- fire_delay = 20
+ fire_delay = 10
+ shotsleft = 8
+ reloadtime = 1.8 SECONDS
fire_sound = 'sound/weapons/gun/pistol/deagle.ogg'
vary_fire_sound = FALSE
weapon_weight = WEAPON_HEAVY
@@ -144,6 +148,9 @@
vary_fire_sound = FALSE
weapon_weight = WEAPON_HEAVY
fire_sound_volume = 70
+ shotsleft = 18
+ reloadtime = 1.6 SECONDS
+
autofire = 0.35 SECONDS
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 40
@@ -156,7 +163,9 @@
inhand_icon_state = "transmission"
ammo_type = /obj/item/ammo_casing/caseless/ego_transmission
weapon_weight = WEAPON_HEAVY
- fire_delay = 10
+ fire_delay = 5
+ shotsleft = 10
+ reloadtime = 1.4 SECONDS
fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg'
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 40
@@ -170,6 +179,8 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_song
fire_sound = 'sound/weapons/gun/pistol/shot_alt.ogg'
weapon_weight = WEAPON_HEAVY
+ shotsleft = 10
+ reloadtime = 1.6 SECONDS
spread = 8
autofire = 0.15 SECONDS
attribute_requirements = list(
@@ -184,6 +195,8 @@
special = "This weapon fires 3 pellets."
ammo_type = /obj/item/ammo_casing/caseless/ego_songmini
fire_sound = 'sound/weapons/gun/revolver/shot_light.ogg'
+ shotsleft = 16
+ reloadtime = 2.1 SECONDS
spread = 8
autofire = 0.3 SECONDS
attribute_requirements = list(
@@ -215,7 +228,9 @@
special = "This weapon fires dice that deal varying amounts of damage."
ammo_type = /obj/item/ammo_casing/caseless/ego_swindle
weapon_weight = WEAPON_HEAVY
- fire_delay = 10
+ fire_delay = 5
+ shotsleft = 12
+ reloadtime = 1.5 SECONDS
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 40
@@ -267,6 +282,8 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_syrinx
weapon_weight = WEAPON_HEAVY
spread = 40
+ shotsleft = 40
+ reloadtime = 2 SECONDS
fire_sound = 'sound/weapons/ego/ecstasy.ogg'
autofire = 0.08 SECONDS
attribute_requirements = list(
diff --git a/code/modules/projectiles/guns/ego_gun/teth.dm b/code/modules/projectiles/guns/ego_gun/teth.dm
index 1fd86a7df06a..2b91d5bf8b50 100644
--- a/code/modules/projectiles/guns/ego_gun/teth.dm
+++ b/code/modules/projectiles/guns/ego_gun/teth.dm
@@ -11,7 +11,9 @@
special = "This weapon does AOE damage."
ammo_type = /obj/item/ammo_casing/caseless/ego_match
weapon_weight = WEAPON_HEAVY
- fire_delay = 30
+ fire_delay = 15
+ shotsleft = 8
+ reloadtime = 2.2 SECONDS
fire_sound = 'sound/weapons/ego/cannon.ogg'
/obj/item/gun/ego_gun/beak
@@ -23,6 +25,8 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_beak
weapon_weight = WEAPON_HEAVY
spread = 10
+ shotsleft = 30
+ reloadtime = 1.3 SECONDS
fire_sound = 'sound/weapons/gun/smg/mp7.ogg'
autofire = 0.14 SECONDS
@@ -33,7 +37,9 @@
inhand_icon_state = "beakmagnum"
special = "This weapon has pinpoint accuracy when dual wielded."
ammo_type = /obj/item/ammo_casing/caseless/ego_beakmagnum
- fire_delay = 20
+ fire_delay = 10
+ shotsleft = 7
+ reloadtime = 2.1 SECONDS
fire_sound = 'sound/weapons/gun/revolver/shot_alt.ogg'
vary_fire_sound = FALSE
fire_sound_volume = 70
@@ -47,7 +53,9 @@
special = "This weapon fires 5 pellets."
ammo_type = /obj/item/ammo_casing/caseless/ego_noise
weapon_weight = WEAPON_HEAVY
- fire_delay = 20
+ fire_delay = 10
+ shotsleft = 8
+ reloadtime = 1.6 SECONDS
fire_sound = 'sound/weapons/gun/shotgun/shot_auto.ogg'
/obj/item/gun/ego_gun/pistol/solitude
@@ -56,7 +64,9 @@
icon_state = "solitude"
inhand_icon_state = "solitude"
ammo_type = /obj/item/ammo_casing/caseless/ego_solitude
- fire_delay = 25
+ fire_delay = 10
+ shotsleft = 5
+ reloadtime = 2 SECONDS
fire_sound = 'sound/weapons/gun/revolver/shot_light.ogg'
vary_fire_sound = FALSE
fire_sound_volume = 70
@@ -70,6 +80,8 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_shy
fire_sound = 'sound/effects/meatslap.ogg'
vary_fire_sound = FALSE
+ shotsleft = 20
+ reloadtime = 1.2 SECONDS
autofire = 0.2 SECONDS
/obj/item/gun/ego_gun/dream
@@ -80,7 +92,7 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_dream
weapon_weight = WEAPON_HEAVY
fire_sound = "dreamy_gun"
- autofire = 0.2 SECONDS
+ autofire = 0.25 SECONDS
/obj/item/gun/ego_gun/page
name = "page"
@@ -89,7 +101,9 @@
inhand_icon_state = "page"
ammo_type = /obj/item/ammo_casing/caseless/ego_page
weapon_weight = WEAPON_HEAVY
- fire_delay = 10
+ fire_delay = 5
+ shotsleft = 10
+ reloadtime = 1.4 SECONDS
damtype = BLACK_DAMAGE
fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg'
@@ -158,5 +172,7 @@
special = "This weapon fires 4 pellets."
ammo_type = /obj/item/ammo_casing/caseless/ego_patriot
weapon_weight = WEAPON_HEAVY
- fire_delay = 25
+ fire_delay = 12
+ shotsleft = 8
+ reloadtime = 1.4 SECONDS
fire_sound = 'sound/weapons/gun/shotgun/shot.ogg'
diff --git a/code/modules/projectiles/guns/ego_gun/waw.dm b/code/modules/projectiles/guns/ego_gun/waw.dm
index 38d2c1ef6bb5..26b863e85baf 100644
--- a/code/modules/projectiles/guns/ego_gun/waw.dm
+++ b/code/modules/projectiles/guns/ego_gun/waw.dm
@@ -6,7 +6,9 @@
special = "This weapon fires 6 pellets."
ammo_type = /obj/item/ammo_casing/caseless/ego_correctional
weapon_weight = WEAPON_HEAVY
- fire_delay = 15
+ fire_delay = 7
+ shotsleft = 12
+ reloadtime = 1.4 SECONDS
fire_sound = 'sound/weapons/gun/shotgun/shot_auto.ogg'
attribute_requirements = list(
@@ -23,7 +25,9 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_hornet
weapon_weight = WEAPON_HEAVY
fire_sound = 'sound/weapons/gun/rifle/leveraction.ogg'
- fire_delay = 5
+ fire_delay = 2
+ shotsleft = 10
+ reloadtime = 1.4 SECONDS
damtype = RED_DAMAGE
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 80
@@ -76,6 +80,8 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_magicbullet
weapon_weight = WEAPON_HEAVY
fire_delay = 30 //Put on the armor, jackass.
+ shotsleft = 7
+ reloadtime = 2.1 SECONDS
fire_sound = 'sound/abnormalities/freischutz/shoot.ogg'
attribute_requirements = list(
@@ -91,7 +97,7 @@
var/obj/item/clothing/suit/armor/ego_gear/he/magicbullet/Y = myman.get_item_by_slot(ITEM_SLOT_OCLOTHING)
var/obj/item/clothing/suit/armor/ego_gear/realization/bigiron/Z = myman.get_item_by_slot(ITEM_SLOT_OCLOTHING)
if(istype(Y))
- fire_delay = 15
+ fire_delay = 8
if(istype(Z))
cached_multiplier = projectile_damage_multiplier
projectile_damage_multiplier *= 2.5
@@ -111,6 +117,8 @@
special = "Firing both solemn lament and solemn vow at the same time will increase damage by 1.5x"
ammo_type = /obj/item/ammo_casing/caseless/ego_solemnlament
fire_delay = 5
+ shotsleft = 18
+ reloadtime = 0.7 SECONDS
fire_sound = 'sound/abnormalities/funeral/spiritgunwhite.ogg'
fire_sound_volume = 30
attribute_requirements = list(PRUDENCE_ATTRIBUTE = 80)
@@ -132,6 +140,8 @@
special = "Firing both solemn lament and solemn vow at the same time will increase damage by 1.5x"
ammo_type = /obj/item/ammo_casing/caseless/ego_solemnvow
fire_delay = 5
+ shotsleft = 18
+ reloadtime = 0.7 SECONDS
fire_sound = 'sound/abnormalities/funeral/spiritgunblack.ogg'
fire_sound_volume = 30
@@ -152,26 +162,16 @@
inhand_icon_state = "loyalty"
ammo_type = /obj/item/ammo_casing/caseless/ego_loyalty
weapon_weight = WEAPON_HEAVY
- spread = 20
- special = "This weapon has IFF capabilities. \
- Use in hand to turn off IFF."
+ spread = 26
+ shotsleft = 95
+ reloadtime = 3.2 SECONDS
+ special = "This weapon has IFF capabilities."
fire_sound = 'sound/weapons/gun/smg/vp70.ogg'
autofire = 0.08 SECONDS
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 80
)
-/obj/item/gun/ego_gun/loyalty/attack_self(mob/user)
- ..()
- if(ammo_type == /obj/item/ammo_casing/caseless/ego_loyaltynoiff)
- to_chat(user,"You hit the switch, enabling IFF and decreasing damage.")
- ammo_type = /obj/item/ammo_casing/caseless/ego_loyalty
- return
- if(ammo_type == /obj/item/ammo_casing/caseless/ego_loyalty)
- to_chat(user,"You hit the fire selector, disabling IFF and increasing damage.")
- ammo_type = /obj/item/ammo_casing/caseless/ego_loyaltynoiff
- return
-
//Just a funny gold soda pistol. It was originally meant to just be a golden meme weapon, now it is the only pale gun, lol
/obj/item/gun/ego_gun/pistol/executive
name = "executive"
@@ -180,7 +180,9 @@
inhand_icon_state = "executive"
special = "This gun scales with justice."
burst_size = 1
- fire_delay = 10
+ fire_delay = 5
+ shotsleft = 10
+ reloadtime = 0.7 SECONDS
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
vary_fire_sound = FALSE
fire_sound_volume = 70
@@ -197,7 +199,9 @@
inhand_icon_state = "crimsonscar"
ammo_type = /obj/item/ammo_casing/caseless/ego_crimson
special = "This weapon fires 3 pellets."
- fire_delay = 15
+ fire_delay = 7
+ shotsleft = 9
+ reloadtime = 1 SECONDS
fire_sound = 'sound/abnormalities/redhood/fire.ogg'
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 60,
@@ -215,6 +219,8 @@
spread = 40
fire_sound = 'sound/weapons/ego/ecstasy.ogg'
autofire = 0.08 SECONDS
+ shotsleft = 40
+ reloadtime = 1.8 SECONDS
attribute_requirements = list(
PRUDENCE_ATTRIBUTE = 60,
TEMPERANCE_ATTRIBUTE = 60
@@ -229,6 +235,8 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_praetorian
fire_sound = 'sound/weapons/gun/pistol/tp17.ogg'
autofire = 0.12 SECONDS
+ shotsleft = 12
+ reloadtime = 0.5 SECONDS
fire_sound_volume = 30
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 60,
@@ -242,7 +250,9 @@
inhand_icon_state = "magic_pistol"
special = "This weapon pierces all targets. This weapon fires faster with the matching armor"
ammo_type = /obj/item/ammo_casing/caseless/ego_magicpistol
- fire_delay = 12
+ fire_delay = 6
+ shotsleft = 7
+ reloadtime = 1.2 SECONDS
fire_sound = 'sound/abnormalities/freischutz/shoot.ogg'
attribute_requirements = list(
TEMPERANCE_ATTRIBUTE = 80
@@ -271,7 +281,9 @@
inhand_icon_state = "laststop"
ammo_type = /obj/item/ammo_casing/caseless/ego_laststop
weapon_weight = WEAPON_HEAVY
- fire_delay = 10 SECONDS // I mean it's a derringer
+ fire_delay = 5
+ shotsleft = 2
+ reloadtime = 10 SECONDS
fire_sound = 'sound/weapons/gun/shotgun/shot_auto.ogg'
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 80
@@ -287,6 +299,8 @@
spread = 40
fire_sound = 'sound/weapons/gun/smg/mp7.ogg'
autofire = 0.07 SECONDS
+ shotsleft = 50
+ reloadtime = 2.1 SECONDS
attribute_requirements = list(
PRUDENCE_ATTRIBUTE = 80
)
@@ -314,7 +328,9 @@
special = "This weapon fires a hitscan beam. \nUpon hitting an enemy, this weapon heals a nearby Discord weapon user."
ammo_type = /obj/item/ammo_casing/caseless/ego_assonance
weapon_weight = WEAPON_HEAVY
- fire_delay = 10
+ fire_delay = 5
+ shotsleft = 17
+ reloadtime = 1.6 SECONDS
fire_sound = 'sound/weapons/gun/smg/mp7.ogg'
attribute_requirements = list(
PRUDENCE_ATTRIBUTE = 80
@@ -436,7 +452,9 @@
inhand_icon_state = "banquet"
special = "This weapon uses HP to fire."
ammo_type = /obj/item/ammo_casing/caseless/ego_banquet
- fire_delay = 26
+ fire_delay = 13
+ shotsleft = 7
+ reloadtime = 1.6 SECONDS
fire_sound = 'sound/weapons/ego/cannon.ogg'
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 60,
@@ -458,6 +476,8 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_blind_rage
weapon_weight = WEAPON_HEAVY
fire_delay = 8
+ shotsleft = 8
+ reloadtime = 1.4 SECONDS
fire_sound = 'sound/weapons/gun/shotgun/shot_auto.ogg'
attribute_requirements = list(
TEMPERANCE_ATTRIBUTE = 60,
@@ -473,6 +493,8 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_bride
weapon_weight = WEAPON_HEAVY
fire_delay = 5
+ shotsleft = 10
+ reloadtime = 1.4 SECONDS
fire_sound = 'sound/weapons/gun/rifle/leveraction.ogg'
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 80
@@ -505,6 +527,8 @@
fire_sound = 'sound/abnormalities/orangetree/ding.ogg'
vary_fire_sound = TRUE
autofire = 0.2 SECONDS
+ shotsleft = 32
+ reloadtime = 2.1 SECONDS
fire_sound_volume = 20
attribute_requirements = list(
PRUDENCE_ATTRIBUTE = 80
diff --git a/code/modules/projectiles/guns/ego_gun/zayin.dm b/code/modules/projectiles/guns/ego_gun/zayin.dm
index 5cd78eab0490..8bb9337001d4 100644
--- a/code/modules/projectiles/guns/ego_gun/zayin.dm
+++ b/code/modules/projectiles/guns/ego_gun/zayin.dm
@@ -6,7 +6,9 @@
inhand_icon_state = "bald"
ammo_type = /obj/item/ammo_casing/caseless/ego_tough
burst_size = 1
- fire_delay = 10
+ fire_delay = 5
+ shotsleft = 17
+ reloadtime = 1 SECONDS
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
vary_fire_sound = FALSE
fire_sound_volume = 70
@@ -65,7 +67,9 @@
inhand_icon_state = "soda"
ammo_type = /obj/item/ammo_casing/caseless/ego_soda
burst_size = 1
- fire_delay = 10
+ fire_delay = 5
+ shotsleft = 12
+ reloadtime = 0.8 SECONDS
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
vary_fire_sound = FALSE
fire_sound_volume = 70
@@ -121,6 +125,8 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_clerk
burst_size = 1
fire_delay = 3
+ shotsleft = 10
+ reloadtime = 0.5 SECONDS
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
vary_fire_sound = FALSE
fire_sound_volume = 70
@@ -174,10 +180,12 @@
icon_state = "nostalgia"
inhand_icon_state = "nostalgia"
ammo_type = /obj/item/ammo_casing/caseless/ego_nostalgia
- fire_delay = 20
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
vary_fire_sound = FALSE
fire_sound_volume = 70
+ fire_delay = 10
+ shotsleft = 7
+ reloadtime = 2 SECONDS
var/pulse_startup
var/pulse_startup_time = 10 SECONDS
@@ -316,7 +324,9 @@
inhand_icon_state = "oceanic"
ammo_type = /obj/item/ammo_casing/caseless/ego_oceanic
burst_size = 1
- fire_delay = 10
+ fire_delay = 5
+ shotsleft = 7
+ reloadtime = 1.2 SECONDS
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
vary_fire_sound = FALSE
fire_sound_volume = 70
diff --git a/code/modules/projectiles/projectile/ego_bullets/waw.dm b/code/modules/projectiles/projectile/ego_bullets/waw.dm
index ff3803c4b230..1b282b7d328e 100644
--- a/code/modules/projectiles/projectile/ego_bullets/waw.dm
+++ b/code/modules/projectiles/projectile/ego_bullets/waw.dm
@@ -5,7 +5,7 @@
/obj/projectile/ego_bullet/ego_hornet
name = "hornet"
- damage = 29
+ damage = 55
damage_type = RED_DAMAGE
/obj/projectile/ego_bullet/ego_hatred
@@ -57,14 +57,14 @@
/obj/projectile/ego_bullet/ego_solemnlament
name = "solemn lament"
icon_state = "whitefly"
- damage = 18
+ damage = 35
speed = 0.35
damage_type = WHITE_DAMAGE
/obj/projectile/ego_bullet/ego_solemnvow
name = "solemn vow"
icon_state = "blackfly"
- damage = 18
+ damage = 35
speed = 0.35
damage_type = BLACK_DAMAGE
@@ -93,7 +93,7 @@
/obj/projectile/ego_bullet/ego_executive
name = "executive"
- damage = 10
+ damage = 12
damage_type = PALE_DAMAGE //hehe
@@ -338,6 +338,6 @@
/obj/projectile/ego_bullet/ego_bride
name = "bride"
icon_state = "bride"
- damage = 25
+ damage = 55
damage_type = WHITE_DAMAGE
diff --git a/lobotomy-corp13.dme b/lobotomy-corp13.dme
index 0fcf5dfd31fd..06e5cbf801a0 100644
--- a/lobotomy-corp13.dme
+++ b/lobotomy-corp13.dme
@@ -1225,7 +1225,6 @@
#include "code\game\objects\items\ego_weapons\teth.dm"
#include "code\game\objects\items\ego_weapons\waw.dm"
#include "code\game\objects\items\ego_weapons\zayin.dm"
-#include "code\game\objects\items\ego_weapons\non_abnormality\_ammoguns.dm"
#include "code\game\objects\items\ego_weapons\non_abnormality\_charge.dm"
#include "code\game\objects\items\ego_weapons\non_abnormality\_cityweapons.dm"
#include "code\game\objects\items\ego_weapons\non_abnormality\black_silence.dm"
From 42fbfd2e63df0bf0948d91d4a5e4321215d6f043 Mon Sep 17 00:00:00 2001
From: Kirie Saito <77302679+Kitsunemitsu@users.noreply.github.com>
Date: Wed, 8 May 2024 15:35:14 -0400
Subject: [PATCH 2/7] Revert "adds reloading to all guns"
This reverts commit 6f3d4c2405884da588be2b486e0224eb745dcc4b.
---
code/modules/projectiles/guns/ego_gun/aleph.dm | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/code/modules/projectiles/guns/ego_gun/aleph.dm b/code/modules/projectiles/guns/ego_gun/aleph.dm
index 8e6d8e3ac921..f63f031f2b48 100644
--- a/code/modules/projectiles/guns/ego_gun/aleph.dm
+++ b/code/modules/projectiles/guns/ego_gun/aleph.dm
@@ -148,9 +148,7 @@
ammo_type = /obj/item/ammo_casing/caseless/pink
weapon_weight = WEAPON_HEAVY
fire_sound = 'sound/abnormalities/armyinblack/pink.ogg'
- fire_delay = 9
- shotsleft = 8
- reloadtime = 2.1 SECONDS
+ fire_delay = 18
zoomable = TRUE
zoom_amt = 10
zoom_out_amt = 13
From d8179e74dd9daa7929dbff52c7607487a8bd49c5 Mon Sep 17 00:00:00 2001
From: Kirie Saito <77302679+Kitsunemitsu@users.noreply.github.com>
Date: Thu, 9 May 2024 17:19:24 -0400
Subject: [PATCH 3/7] various fixes
---
code/modules/projectiles/guns/ego_gun.dm | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/code/modules/projectiles/guns/ego_gun.dm b/code/modules/projectiles/guns/ego_gun.dm
index 7d226fc180aa..7649a3e73944 100644
--- a/code/modules/projectiles/guns/ego_gun.dm
+++ b/code/modules/projectiles/guns/ego_gun.dm
@@ -150,16 +150,19 @@
return ..()
/obj/item/gun/ego_gun/attack_self(mob/user)
- if(reloadtime)
- is_reloading = TRUE
- to_chat(user,span_notice("You start loading a new magazine."))
- playsound(src, 'sound/weapons/gun/general/slide_lock_1.ogg', 50, TRUE)
- if(do_after(user, reloadtime, src)) //gotta reload
- playsound(src, 'sound/weapons/gun/general/bolt_rack.ogg', 50, TRUE)
- shotsleft = initial(shotsleft)
- is_reloading = FALSE
+ if(reloadtime && !is_reloading)
+ INVOKE_ASYNC(src, PROC_REF(reload_ego), user)
..()
+/obj/item/gun/ego_gun/proc/reload_ego(mob/user)
+ is_reloading = TRUE
+ to_chat(user,span_notice("You start loading a new magazine."))
+ playsound(src, 'sound/weapons/gun/general/slide_lock_1.ogg', 50, TRUE)
+ if(do_after(user, reloadtime, src)) //gotta reload
+ playsound(src, 'sound/weapons/gun/general/bolt_rack.ogg', 50, TRUE)
+ shotsleft = initial(shotsleft)
+ is_reloading = FALSE
+
//Examine text for pistols.
/obj/item/gun/ego_gun/pistol/examine(mob/user)
. = ..()
From 835c8cdd9ada9c362c800799e00f24611037ec01 Mon Sep 17 00:00:00 2001
From: Kirie Saito <77302679+Kitsunemitsu@users.noreply.github.com>
Date: Sun, 26 May 2024 02:31:21 -0400
Subject: [PATCH 4/7] updates limbus guns
---
.../ego_weapons/non_abnormality/_ammoguns.dm | 41 -------------------
.../non_abnormality/limbus_labs.dm | 12 +++---
2 files changed, 6 insertions(+), 47 deletions(-)
delete mode 100644 code/game/objects/items/ego_weapons/non_abnormality/_ammoguns.dm
diff --git a/code/game/objects/items/ego_weapons/non_abnormality/_ammoguns.dm b/code/game/objects/items/ego_weapons/non_abnormality/_ammoguns.dm
deleted file mode 100644
index 5cd9a568f5a8..000000000000
--- a/code/game/objects/items/ego_weapons/non_abnormality/_ammoguns.dm
+++ /dev/null
@@ -1,41 +0,0 @@
-//Guns that gotta be reloaded.
-/obj/item/gun/ego_gun/city/ammogun
- name = "ammo gun template"
- desc = "a template for ammo gun."
- icon_state = "ammogun"
- inhand_icon_state = "ammogun"
- ammo_type = /obj/item/ammo_casing/caseless/fullstop //Does 10 damage
- weapon_weight = WEAPON_HEAVY
- fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg'
- special = "Use in hand to reload"
- var/shotsleft = 10
- var/reloadtime = 3 SECONDS
-
-/obj/item/gun/ego_gun/city/ammogun/process_chamber()
- if(shotsleft)
- shotsleft-=1
- ..()
-
-/obj/item/gun/ego_gun/city/ammogun/can_shoot()
- ..()
- if(shotsleft)
- return TRUE
- visible_message(span_notice("The gun is out of ammo."))
- playsound(src, dry_fire_sound, 30, TRUE)
- return FALSE
-
-/obj/item/gun/ego_gun/city/ammogun/attack_self(mob/user)
- to_chat(user,span_notice("You start loading a new magazine."))
- playsound(src, 'sound/weapons/gun/general/slide_lock_1.ogg', 50, TRUE)
- if(do_after(user, reloadtime, src)) //gotta reload
- playsound(src, 'sound/weapons/gun/general/bolt_rack.ogg', 50, TRUE)
- shotsleft = initial(shotsleft)
-
-/obj/item/gun/ego_gun/city/ammogun/EgoAttackInfo(mob/user)
- if(chambered && chambered.BB)
- return span_notice("Its bullets deal [chambered.BB.damage*projectile_damage_multiplier] [chambered.BB.damage_type] damage.")
- return
-
-/obj/item/gun/ego_gun/city/ammogun/examine(mob/user)
- . = ..()
- . += "Ammo Counter: [shotsleft]/[initial(shotsleft)]."
diff --git a/code/game/objects/items/ego_weapons/non_abnormality/limbus_labs.dm b/code/game/objects/items/ego_weapons/non_abnormality/limbus_labs.dm
index 5bc3e676e76f..70e86caad804 100644
--- a/code/game/objects/items/ego_weapons/non_abnormality/limbus_labs.dm
+++ b/code/game/objects/items/ego_weapons/non_abnormality/limbus_labs.dm
@@ -1,5 +1,5 @@
//Pistol
-/obj/item/gun/ego_gun/city/ammogun/limbuspistol
+/obj/item/gun/ego_gun/city/limbuspistol
name = "LCCB pistol"
desc = "A pistol often found in the hands of LCCB staff."
icon_state = "lccb_pistol"
@@ -11,7 +11,7 @@
fire_delay = 5
//Auto Pistol
-/obj/item/gun/ego_gun/city/ammogun/limbusautopistol
+/obj/item/gun/ego_gun/city/limbusautopistol
name = "LCCB auto pistol"
desc = "A pistol often found in the hands of LCCB staff. This one is fully automatic"
icon_state = "lccb_burstpistol"
@@ -24,7 +24,7 @@
autofire = 0.12 SECONDS
//Magnum
-/obj/item/gun/ego_gun/city/ammogun/limbusmagnum
+/obj/item/gun/ego_gun/city/limbusmagnum
name = "LCCB magnum"
desc = "A pistol often found in the hands of LCCB combat officers."
icon_state = "lccb_magnum"
@@ -37,7 +37,7 @@
fire_delay = 12
//SMG
-/obj/item/gun/ego_gun/city/ammogun/limbussmg
+/obj/item/gun/ego_gun/city/limbussmg
name = "LCCB submachine gun"
desc = "An SMG often found in the hands of LCCB staff. This one is fully automatic, but requires two hands."
icon_state = "lccb_smg"
@@ -49,7 +49,7 @@
autofire = 0.12 SECONDS
//Shottie
-/obj/item/gun/ego_gun/city/ammogun/limbusshottie
+/obj/item/gun/ego_gun/city/limbusshottie
name = "LCCB shotgun"
desc = "A shotgun found in the hands of LCCB staff. Has limited ammo and a long reload."
icon_state = "lccb_shotgun"
@@ -65,7 +65,7 @@
damtype = RED_DAMAGE
-/obj/item/gun/ego_gun/city/ammogun/limbusshottie/attack(mob/living/target, mob/living/user)
+/obj/item/gun/ego_gun/city/limbusshottie/attack(mob/living/target, mob/living/user)
. = ..()
user.changeNext_move(CLICK_CD_MELEE * 1.5)
if(!.)
From 0cf94fe53c3be0c260b32339b004f1e6bde56323 Mon Sep 17 00:00:00 2001
From: Kirie Saito <77302679+Kitsunemitsu@users.noreply.github.com>
Date: Sun, 26 May 2024 02:39:39 -0400
Subject: [PATCH 5/7] Update zayin.dm
---
code/modules/projectiles/guns/ego_gun/zayin.dm | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/code/modules/projectiles/guns/ego_gun/zayin.dm b/code/modules/projectiles/guns/ego_gun/zayin.dm
index 8bb9337001d4..8c276e3d7d63 100644
--- a/code/modules/projectiles/guns/ego_gun/zayin.dm
+++ b/code/modules/projectiles/guns/ego_gun/zayin.dm
@@ -6,9 +6,7 @@
inhand_icon_state = "bald"
ammo_type = /obj/item/ammo_casing/caseless/ego_tough
burst_size = 1
- fire_delay = 5
- shotsleft = 17
- reloadtime = 1 SECONDS
+ fire_delay = 10
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
vary_fire_sound = FALSE
fire_sound_volume = 70
@@ -183,9 +181,7 @@
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
vary_fire_sound = FALSE
fire_sound_volume = 70
- fire_delay = 10
- shotsleft = 7
- reloadtime = 2 SECONDS
+ fire_delay = 12
var/pulse_startup
var/pulse_startup_time = 10 SECONDS
From 3343abbeafea782cbd0f2361bfec92e6543300bc Mon Sep 17 00:00:00 2001
From: Kirie Saito <77302679+Kitsunemitsu@users.noreply.github.com>
Date: Sun, 26 May 2024 02:53:42 -0400
Subject: [PATCH 6/7] gun pr cleanup
---
.../ego_weapons/non_abnormality/fullstop.dm | 33 ++----------------
.../ego_weapons/non_abnormality/thumb.dm | 34 ++-----------------
2 files changed, 4 insertions(+), 63 deletions(-)
diff --git a/code/game/objects/items/ego_weapons/non_abnormality/fullstop.dm b/code/game/objects/items/ego_weapons/non_abnormality/fullstop.dm
index e8230481fbbb..d7a9ea6f24a8 100644
--- a/code/game/objects/items/ego_weapons/non_abnormality/fullstop.dm
+++ b/code/game/objects/items/ego_weapons/non_abnormality/fullstop.dm
@@ -9,36 +9,7 @@
fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg'
special = "Use in hand to reload"
shotsleft = 10
- reloadtime = 3 SECONDS
-
-/obj/item/gun/ego_gun/city/fullstop/process_chamber()
- if(shotsleft)
- shotsleft-=1
- ..()
-
-/obj/item/gun/ego_gun/city/fullstop/can_shoot()
- ..()
- if(shotsleft)
- return TRUE
- visible_message(span_notice("The gun is out of ammo."))
- playsound(src, dry_fire_sound, 30, TRUE)
- return FALSE
-
-/obj/item/gun/ego_gun/city/fullstop/attack_self(mob/user)
- to_chat(user,span_notice("You start loading a new magazine."))
- playsound(src, 'sound/weapons/gun/general/slide_lock_1.ogg', 50, TRUE)
- if(do_after(user, reloadtime, src)) //gotta reload
- playsound(src, 'sound/weapons/gun/general/bolt_rack.ogg', 50, TRUE)
- shotsleft = initial(shotsleft)
-
-/obj/item/gun/ego_gun/city/fullstop/EgoAttackInfo(mob/user)
- if(chambered && chambered.BB)
- return span_notice("Its bullets deal [chambered.BB.damage*projectile_damage_multiplier] [chambered.BB.damage_type] damage.")
- return
-
-/obj/item/gun/ego_gun/city/fullstop/examine(mob/user)
- . = ..()
- . += "Ammo Counter: [shotsleft]/[initial(shotsleft)]."
+ reloadtime = 2 SECONDS
//The actual weapons
/obj/item/gun/ego_gun/city/fullstop/assault
@@ -64,7 +35,7 @@
inhand_icon_state = "fullstopsniper"
shotsleft = 17
fire_delay = 5
- reloadtime = 2 SECONDS
+ reloadtime = 1.3 SECONDS
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 60,
PRUDENCE_ATTRIBUTE = 60,
diff --git a/code/game/objects/items/ego_weapons/non_abnormality/thumb.dm b/code/game/objects/items/ego_weapons/non_abnormality/thumb.dm
index d4b0cdc4ee4f..2459396996d0 100644
--- a/code/game/objects/items/ego_weapons/non_abnormality/thumb.dm
+++ b/code/game/objects/items/ego_weapons/non_abnormality/thumb.dm
@@ -9,10 +9,10 @@
ammo_type = /obj/item/ammo_casing/caseless/fullstop //Does 10 damage
weapon_weight = WEAPON_HEAVY
fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg'
- special = "Use in hand to reload. Attack an enemy with your bayonet to reload."
+ special = "Attack an enemy with your bayonet to reload."
projectile_damage_multiplier = 3 //30 damage per bullet
fire_delay = 7
- shotsleft = 5 //Based off the Mas 36, That's what my Girlfirend things it looks like. Holds 5 bullets.
+ shotsleft = 5 //Based off the Mas 36, That's what my Girlfriend things it looks like. Holds 5 bullets.
reloadtime = 5 SECONDS
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 80,
@@ -21,42 +21,12 @@
JUSTICE_ATTRIBUTE = 60,
)
-
-/obj/item/gun/ego_gun/city/thumb/process_chamber()
- if(shotsleft)
- shotsleft-=1
- ..()
-
/obj/item/gun/ego_gun/city/thumb/attack(mob/living/target, mob/living/carbon/human/user)
..()
if(shotsleft < initial(shotsleft))
shotsleft += 1
user.changeNext_move(CLICK_CD_MELEE * attack_speed)
-/obj/item/gun/ego_gun/city/thumb/can_shoot()
- ..()
- if(shotsleft)
- return TRUE
- visible_message(span_notice("The gun is out of ammo."))
- playsound(src, dry_fire_sound, 30, TRUE)
- return FALSE
-
-/obj/item/gun/ego_gun/city/thumb/attack_self(mob/user)
- to_chat(user,span_notice("You start loading a new clip, one bullet at a time."))
- playsound(src, 'sound/weapons/gun/general/slide_lock_1.ogg', 50, TRUE)
- if(do_after(user, reloadtime, src)) //gotta reload
- playsound(src, 'sound/weapons/gun/general/bolt_rack.ogg', 50, TRUE)
- shotsleft = initial(shotsleft)
-
-/obj/item/gun/ego_gun/city/thumb/EgoAttackInfo(mob/user)
- if(chambered && chambered.BB)
- return span_notice("Its bullets deal [chambered.BB.damage*projectile_damage_multiplier] [chambered.BB.damage_type] damage.")
- return
-
-/obj/item/gun/ego_gun/city/thumb/examine(mob/user)
- . = ..()
- . += "Ammo Counter: [shotsleft]/[initial(shotsleft)]."
-
//Capo
/obj/item/gun/ego_gun/city/thumb/capo
name = "thumb capo rifle"
From c6226c5f3151be491b40f52f3dff48fbeba76fa0 Mon Sep 17 00:00:00 2001
From: Kirie Saito <77302679+Kitsunemitsu@users.noreply.github.com>
Date: Mon, 27 May 2024 11:54:44 -0400
Subject: [PATCH 7/7] Update he.dm
---
code/modules/projectiles/guns/ego_gun/he.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/projectiles/guns/ego_gun/he.dm b/code/modules/projectiles/guns/ego_gun/he.dm
index 937bba85d42f..ba02ee75668c 100644
--- a/code/modules/projectiles/guns/ego_gun/he.dm
+++ b/code/modules/projectiles/guns/ego_gun/he.dm
@@ -179,7 +179,7 @@
ammo_type = /obj/item/ammo_casing/caseless/ego_song
fire_sound = 'sound/weapons/gun/pistol/shot_alt.ogg'
weapon_weight = WEAPON_HEAVY
- shotsleft = 10
+ shotsleft = 32
reloadtime = 1.6 SECONDS
spread = 8
autofire = 0.15 SECONDS