diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index e0a87e2aec..3ae5ceeef3 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -63,7 +63,7 @@ require only minor tweaks. #define ZTRAITS_SPACE list(ZTRAIT_SPACE_RUINS = TRUE) #define ZTRAITS_LAVALAND list(ZTRAIT_MINING = TRUE, ZTRAIT_LAVA_RUINS = TRUE, ZTRAIT_BOMBCAP_MULTIPLIER = 2) #define ZTRAITS_REEBE list(ZTRAIT_REEBE = TRUE, ZTRAIT_BOMBCAP_MULTIPLIER = 0.5) -#define ZTRAITS_SHIPS list(ZTRAIT_STATION = TRUE, ZTRAIT_BOMBCAP_MULTIPLIER = 0.5) +#define ZTRAITS_SHIPS list(ZTRAIT_STATION = TRUE) diff --git a/code/modules/mob/skills.dm b/code/modules/mob/skills.dm index cd29778812..5c32b93657 100644 --- a/code/modules/mob/skills.dm +++ b/code/modules/mob/skills.dm @@ -110,3 +110,6 @@ /datum/skill/piloting name = "piloting" + +/datum/skill/aiming + name = "aiming" \ No newline at end of file diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 18a60c55e6..6e60c891b8 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -29,11 +29,11 @@ var/sawn_desc = null //description change if weapon is sawn-off var/sawn_off = FALSE var/burst_size = 1 //how large a burst is - var/fire_delay = 0 //rate of fire for burst firing and semi auto + var/fire_delay = 2 //rate of fire for burst firing and semi auto var/firing_burst = 0 //Prevent the weapon from firing again while already firing var/semicd = 0 //cooldown handler var/weapon_weight = WEAPON_LIGHT - var/spread = 0 //Spread induced by the gun itself. + var/spread = 25 //Spread induced by the gun itself. var/randomspread = 1 //Set to 0 for shotguns. This is used for weapons that don't fire all their bullets at once. lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' @@ -251,8 +251,9 @@ var/sprd = 0 var/randomized_gun_spread = 0 var/rand_spr = rand() - if(spread) - randomized_gun_spread = rand(0,spread) + var/datum/skill/S = user.skills.getskill("aiming") + if(spread && S.value > 0) + randomized_gun_spread = (rand(1,spread) / S.value) if(user.has_trait(TRAIT_POOR_AIM)) //nice shootin' tex bonus_spread += 25 var/randomized_bonus_spread = rand(0, bonus_spread) @@ -268,6 +269,7 @@ to_chat(user, " [src] is lethally chambered! You don't want to risk harming anyone...") return sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread)) + log_world("[sprd]") if(!chambered.fire_casing(target, user, params, , suppressed, zone_override, sprd)) shoot_with_empty_chamber(user) return @@ -282,7 +284,7 @@ process_chamber() update_icon() semicd = TRUE - addtimer(CALLBACK(src, .proc/reset_semicd), fire_delay) + addtimer(CALLBACK(src, .proc/reset_semicd), fire_delay SECONDS) if(user) user.update_inv_hands()