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