diff --git a/code/__defines/footsteps.dm b/code/__defines/footsteps.dm index b952da958b2..3ad6b23bb65 100644 --- a/code/__defines/footsteps.dm +++ b/code/__defines/footsteps.dm @@ -236,10 +236,19 @@ GLOBAL_LIST_INIT(lightclawfootstep, list( )) //heavy footsteps list -GLOBAL_LIST_INIT(heavyfootstep, list( +GLOBAL_LIST_INIT(heavyaltfootstep, list( + FOOTSTEP_WOOD_BAREFOOT = list(list( + 'sound/effects/footstep/heavy1.ogg', + 'sound/effects/footstep/heavy2.ogg'), 50, 2), + FOOTSTEP_HARD_BAREFOOT = list(list( + 'sound/effects/footstep/heavy1.ogg', + 'sound/effects/footstep/heavy2.ogg'), 50, 2), + FOOTSTEP_CARPET_BAREFOOT = list(list( + 'sound/effects/footstep/heavy1.ogg', + 'sound/effects/footstep/heavy2.ogg'), 50, 2), FOOTSTEP_GENERIC_HEAVY = list(list( 'sound/effects/footstep/heavy1.ogg', - 'sound/effects/footstep/heavy2.ogg'), 100, 2), + 'sound/effects/footstep/heavy2.ogg'), 50, 2), FOOTSTEP_WATER = list(list( 'sound/effects/footstep/water1.ogg', 'sound/effects/footstep/water2.ogg', @@ -253,8 +262,8 @@ GLOBAL_LIST_INIT(heavyfootstep, list( 'sound/effects/meatslap.ogg'), 100, 0), )) -//heavy alt footsteps list -GLOBAL_LIST_INIT(heavyaltfootstep, list( +//heavy footsteps list +GLOBAL_LIST_INIT(heavyfootstep, list( FOOTSTEP_WOOD_BAREFOOT = list(list( 'sound/mob/footstep_large.ogg', 'sound/mob/footstep_large2.ogg'), 90, 1), @@ -310,13 +319,25 @@ GLOBAL_LIST_INIT(mechfootstep, list( //slime footsteps list GLOBAL_LIST_INIT(slimefootstep, list( FOOTSTEP_WOOD_BAREFOOT = list(list( - 'sound/effects/footstep/slime1.ogg'), 90, 1), + 'sound/effects/footstep/slime1.ogg', + 'sound/effects/footstep/slime2.ogg', + 'sound/effects/footstep/slime3.ogg' + ), 25, 1), FOOTSTEP_HARD_BAREFOOT = list(list( - 'sound/effects/footstep/slime1.ogg'), 90, 1), + 'sound/effects/footstep/slime1.ogg', + 'sound/effects/footstep/slime2.ogg', + 'sound/effects/footstep/slime3.ogg' + ), 25, 1), FOOTSTEP_CARPET_BAREFOOT = list(list( - 'sound/effects/footstep/slime1.ogg'), 75, -2), + 'sound/effects/footstep/slime1.ogg', + 'sound/effects/footstep/slime2.ogg', + 'sound/effects/footstep/slime3.ogg' + ), 25, -2), FOOTSTEP_GRASS = list(list( - 'sound/effects/footstep/slime1.ogg'), 75, 0), + 'sound/effects/footstep/slime1.ogg', + 'sound/effects/footstep/slime2.ogg', + 'sound/effects/footstep/slime3.ogg' + ), 25, 0), FOOTSTEP_WATER = list(list( 'sound/effects/footstep/water1.ogg', 'sound/effects/footstep/water2.ogg', diff --git a/code/__defines/species_flags.dm b/code/__defines/species_flags.dm index 1cb97f1012f..4e062c54909 100644 --- a/code/__defines/species_flags.dm +++ b/code/__defines/species_flags.dm @@ -13,6 +13,7 @@ #define NO_DEFIB 0x800 // Don't allow them to be defibbed #define NO_DNA 0x1000 // Cannot have mutations or have their dna changed by genetics/radiation/genome-stolen. #define THICK_SKIN 0x2000 // Needles have a chain to fail when attempted to be used on them. +#define SHOCK_ABSORB 0x4000 // Absorbs shock and converts it into energy that can be used on later attacks. // unused: 0x8000 - higher than this will overflow // Species EMP vuln for carbons diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index f923a3bd2c4..a80bb6df6cd 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -347,7 +347,10 @@ GLOBAL_LIST_INIT(selectable_footstep, list( "Light Claw" = FOOTSTEP_MOB_TESHARI, "Slither" = FOOTSTEP_MOB_SLITHER, "Mech" = FOOTSTEP_MOB_MECHY, - "Heavy" = FOOTSTEP_MOB_HEAVY_ALT + "Heavy" = FOOTSTEP_MOB_HEAVY, + "Heavy Alt" = FOOTSTEP_MOB_HEAVY_ALT, + "Slime" = FOOTSTEP_MOB_SLIME, + )) // Put any artifact effects that are duplicates, unique, or otherwise unwated in here! This prevents them from spawning via RNG. diff --git a/code/datums/elements/footstep.dm b/code/datums/elements/footstep.dm index 57c58ddc7b0..9dd3e94a1c4 100644 --- a/code/datums/elements/footstep.dm +++ b/code/datums/elements/footstep.dm @@ -43,16 +43,16 @@ footstep_ret = GLOB.lightclawfootstep if(FOOTSTEP_MOB_CLAW) footstep_ret = GLOB.clawfootstep - if(FOOTSTEP_MOB_HEAVY) - footstep_ret = GLOB.heavyfootstep + if(FOOTSTEP_MOB_HEAVY_ALT) + footstep_ret = GLOB.heavyaltfootstep if(FOOTSTEP_MOB_SHOE) footstep_ret = GLOB.footstep if(FOOTSTEP_MOB_SLIME) footstep_ret = GLOB.slimefootstep if(FOOTSTEP_MOB_SLITHER) footstep_ret = GLOB.slitherfootstep - if(FOOTSTEP_MOB_HEAVY_ALT) - footstep_ret = GLOB.heavyaltfootstep + if(FOOTSTEP_MOB_HEAVY) + footstep_ret = GLOB.heavyfootstep if(FOOTSTEP_MOB_MECHY) footstep_ret = GLOB.mechfootstep else diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 7d1e28aef3e..90c551c00e7 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -48,6 +48,9 @@ /obj/item/flash/Initialize(mapload) . = ..() power_supply = new cell_type(src) + if(can_repair) + description_info = "If the device 'clicks' it has either been used too much recently or is out of charge - requiring a recharger. If the bulb is burnt out or broken, it needs to be repaired using a screwdriver." + /obj/item/flash/attackby(obj/item/W, mob/user) if(W.has_tool_quality(TOOL_SCREWDRIVER) && broken) @@ -58,8 +61,9 @@ broken = FALSE update_icon() playsound(src, W.usesound, 50, 1) - else user.visible_message(span_infoplain(span_bold("\The [user]") + " fails to repair \the [src].")) + else + user.visible_message(span_infoplain(span_bold("\The [user]") + " stops attempting to repair \the [src].")) else ..() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2982cf65b5a..11e744dbf86 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -387,7 +387,7 @@ if (!def_zone) def_zone = pick(BP_L_HAND, BP_R_HAND) - if(species.siemens_coefficient == -1) + if(species.siemens_coefficient <= 0 && (species.flags & SHOCK_ABSORB)) if(GLOB.stored_shock_by_ref["\ref[src]"]) GLOB.stored_shock_by_ref["\ref[src]"] += shock_damage else diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index f272e4f766c..6756a6b135a 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -316,7 +316,7 @@ var/limb_path = organ_data["path"] var/obj/item/organ/O = new limb_path(src) organ_data["descriptor"] = O.name - to_chat(src, span_notice("You feel a slithering sensation as your [O.name] reform.")) + to_chat(src, span_notice("You feel a slithering sensation as your [O.name] reforms.")) var/agony_to_apply = round(0.66 * O.max_damage) // 66% of the limb's health is converted into pain. src.apply_damage(agony_to_apply, HALLOSS) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 0bc5f0d4fa9..2a674c69602 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -99,7 +99,6 @@ var/death_volume = 50 // Self-explanatory, define this separately on your species if the sound files are louder. // var/species_sounds_herm // If you want a custom sound played for other genders, just add them like so - var/footstep = FOOTSTEP_MOB_HUMAN var/list/special_step_sounds = null // Combat/health/chem/etc. vars. @@ -403,8 +402,6 @@ update_sort_hint() -/datum/species/proc/get_footsep_sounds() - return footstep /datum/species/proc/update_sort_hint() if(spawn_flags & SPECIES_IS_RESTRICTED) diff --git a/code/modules/mob/living/carbon/human/species/species_helpers.dm b/code/modules/mob/living/carbon/human/species/species_helpers.dm index b62d98b9fa0..3b3532197f4 100644 --- a/code/modules/mob/living/carbon/human/species/species_helpers.dm +++ b/code/modules/mob/living/carbon/human/species/species_helpers.dm @@ -2,5 +2,12 @@ GLOBAL_LIST_EMPTY(stored_shock_by_ref) /mob/living/proc/apply_stored_shock_to(mob/living/target) if(GLOB.stored_shock_by_ref["\ref[src]"]) - target.electrocute_act(GLOB.stored_shock_by_ref["\ref[src]"]*0.9, src) + if(GLOB.stored_shock_by_ref["\ref[src]"] > 200) + GLOB.stored_shock_by_ref["\ref[src]"] = 200 + target.stun_effect_act(agony_amount = GLOB.stored_shock_by_ref["\ref[src]"]*0.40, electric = TRUE) GLOB.stored_shock_by_ref["\ref[src]"] = 0 + /* //TODO: Clean up spark system and make it so colors can be set on sparks. + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, target) + s.start() + */ diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm index d4fe1f53bd4..8ae89cefbd9 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm @@ -23,7 +23,7 @@ mob_size = MOB_MEDIUM push_flags = ~HEAVY swap_flags = ~HEAVY - flags = NO_DNA | NO_SLEEVE | NO_SLIP | NO_MINOR_CUT | NO_HALLUCINATION | NO_INFECT | NO_DEFIB + flags = NO_DNA | NO_SLEEVE | NO_SLIP | NO_MINOR_CUT | NO_HALLUCINATION | NO_INFECT | NO_DEFIB | SHOCK_ABSORB appearance_flags = HAS_SKIN_COLOR | HAS_EYE_COLOR | HAS_HAIR_COLOR | RADIATION_GLOWS | HAS_UNDERWEAR spawn_flags = SPECIES_CAN_JOIN health_hud_intensity = 2 @@ -74,7 +74,7 @@ body_temperature = T20C // Room temperature rarity_value = 5 - siemens_coefficient = 0.8 + siemens_coefficient = 0 water_resistance = 0 water_damage_mod = 0 @@ -135,8 +135,6 @@ /datum/decl/emote/visible/vibrate ) - footstep = FOOTSTEP_MOB_SLIME - /datum/species/shapeshifter/promethean/equip_survival_gear(mob/living/carbon/human/H) var/boxtype = pick(list(/obj/item/storage/toolbox/lunchbox, /obj/item/storage/toolbox/lunchbox/heart, diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index a1188e62d7d..0f4110c43c1 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -196,8 +196,6 @@ /datum/decl/emote/human/stopsway ) - footstep = FOOTSTEP_MOB_CLAW - inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair) wikilink="https://wiki.vore-station.net/Unathi" @@ -1231,8 +1229,6 @@ /datum/decl/emote/audible/teshtrill ) - footstep = FOOTSTEP_MOB_TESHARI - /datum/species/teshari/equip_survival_gear(mob/living/carbon/human/H) ..() if(!(H.client?.prefs?.shoe_hater)) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index a9c1abb5c2a..ce85c7f8526 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -306,11 +306,12 @@ PN.trigger_warning(5) if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.species.siemens_coefficient <= 0) + if(H.species.siemens_coefficient <= 0 && !(H.species.flags & SHOCK_ABSORB)) //If we're shock immune, don't try the shock. If we absorb shock, shock us! return - if(H.gloves) + else if(H.gloves) var/obj/item/clothing/gloves/G = H.gloves - if(G.siemens_coefficient == 0) return 0 //to avoid spamming with insulated glvoes on + if(G.siemens_coefficient == 0) + return 0 //to avoid spamming with insulated glvoes on //Checks again. If we are still here subject will be shocked, trigger standard 20 tick warning //Since this one is longer it will override the original one. diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 243162a77bf..aef7be2d54a 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -55,7 +55,6 @@ var/burst = 1 var/fire_delay = 6 //delay after shooting before the gun can be used again var/burst_delay = 2 //delay between shots, if firing in bursts - var/move_delay = 1 var/fire_sound = null // This is handled by projectile.dm's fire_sound var now, but you can override the projectile's fire_sound with this one if you want to. var/fire_sound_text = "gunshot" var/fire_anim = null @@ -72,7 +71,6 @@ var/wielded_item_state var/one_handed_penalty = 0 // Penalty applied if someone fires a two-handed gun with one hand. var/atom/movable/screen/auto_target/auto_target - var/shooting = 0 var/next_fire_time = 0 var/sel_mode = 1 //index of the currently selected mode @@ -275,7 +273,7 @@ */ /obj/item/gun/attack(mob/living/A, mob/living/user, target_zone, attack_modifier) - if (A == user && user.zone_sel.selecting == O_MOUTH && !mouthshoot) + if (A == user && user.zone_sel.selecting == O_MOUTH) handle_suicide(user) return ITEM_INTERACT_SUCCESS else if(user.a_intent == I_HURT) //point blank shooting @@ -712,19 +710,14 @@ else playsound(src, shot_sound, 50, 1) -//Suicide handling. -/obj/item/gun/var/mouthshoot = 0 //To stop people from suiciding twice... >.> - /obj/item/gun/proc/handle_suicide(mob/living/user) if(!ishuman(user)) return var/mob/living/carbon/human/M = user - mouthshoot = 1 M.visible_message(span_red("[user] sticks their gun in their mouth, ready to pull the trigger...")) if(!do_after(user, 4 SECONDS, target = src)) M.visible_message(span_blue("[user] decided life was worth living")) - mouthshoot = 0 return var/obj/item/projectile/in_chamber = consume_next_projectile() if (istype(in_chamber)) @@ -732,7 +725,6 @@ play_fire_sound(M, in_chamber) if(istype(in_chamber, /obj/item/projectile/beam/lasertag)) user.show_message(span_warning("You feel rather silly, trying to commit suicide with a toy.")) - mouthshoot = 0 return in_chamber.on_hit(M) @@ -744,11 +736,9 @@ to_chat(user, span_notice("Ow...")) user.apply_effect(110,AGONY,0) qdel(in_chamber) - mouthshoot = 0 return else handle_click_empty(user) - mouthshoot = 0 return /obj/item/gun/proc/toggle_scope(zoom_amount=2.0) diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 20f01ae38b8..c7059bc5f86 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -60,9 +60,9 @@ firemodes = list( list(mode_name="stun", burst=1, projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="energystun", charge_cost = 100), - list(mode_name="stun burst", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,0,0), dispersion=list(0.0, 0.2, 0.5), projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="energystun"), + list(mode_name="stun burst", burst=3, fire_delay=null, burst_accuracy=list(0,0,0), dispersion=list(0.0, 0.2, 0.5), projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="energystun"), list(mode_name="lethal", burst=1, projectile_type=/obj/item/projectile/beam/burstlaser, modifystate="energykill", charge_cost = 200), - list(mode_name="lethal burst", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,0,0), dispersion=list(0.0, 0.2, 0.5), projectile_type=/obj/item/projectile/beam/burstlaser, modifystate="energykill"), + list(mode_name="lethal burst", burst=3, fire_delay=null, burst_accuracy=list(0,0,0), dispersion=list(0.0, 0.2, 0.5), projectile_type=/obj/item/projectile/beam/burstlaser, modifystate="energykill"), ) /* @@ -86,7 +86,7 @@ firemodes = list( list(mode_name="lethal", burst=1, projectile_type=/obj/item/projectile/beam/burstlaser, charge_cost = 200), - list(mode_name="lethal burst", burst=4, fire_delay=null, move_delay=4, burst_accuracy=list(0,0,0), dispersion=list(0.0, 0.2, 0.5), projectile_type=/obj/item/projectile/beam/burstlaser), + list(mode_name="lethal burst", burst=4, fire_delay=null, burst_accuracy=list(0,0,0), dispersion=list(0.0, 0.2, 0.5), projectile_type=/obj/item/projectile/beam/burstlaser), ) /* diff --git a/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm b/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm index 167d3110183..ed12d108e96 100644 --- a/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm +++ b/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm @@ -66,9 +66,9 @@ w_class = ITEMSIZE_NO_CONTAINER firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, one_handed_penalty=15, burst_accuracy=null, dispersion=null), - list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_handed_penalty=30, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), - list(mode_name="long bursts", burst=6, fire_delay=null, move_delay=10, one_handed_penalty=30, burst_accuracy=list(0,-15,-15,-15,-30), dispersion=list(0.6, 0.6, 1.0, 1.0, 1.2)), + list(mode_name="semiauto", burst=1, fire_delay=0.1, one_handed_penalty=15, burst_accuracy=null, dispersion=null), + list(mode_name="short bursts", burst=3, fire_delay=null, one_handed_penalty=30, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), + list(mode_name="long bursts", burst=6, fire_delay=null, one_handed_penalty=30, burst_accuracy=list(0,-15,-15,-15,-30), dispersion=list(0.6, 0.6, 1.0, 1.0, 1.2)), ) /obj/item/gun/magnetic/railgun/automatic/examine(mob/user) @@ -100,8 +100,8 @@ empty_sound = 'sound/weapons/smg_empty_alarm.ogg' firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, one_handed_penalty=15, burst_accuracy=null, dispersion=null), - list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_handed_penalty=30, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), + list(mode_name="semiauto", burst=1, fire_delay=0.1, one_handed_penalty=15, burst_accuracy=null, dispersion=null), + list(mode_name="short bursts", burst=3, fire_delay=null, one_handed_penalty=30, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), ) /obj/item/gun/magnetic/railgun/flechette/pistol @@ -132,8 +132,8 @@ empty_sound = 'sound/weapons/smg_empty_alarm.ogg' firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, one_handed_penalty=15, burst_accuracy=null, dispersion=null), - list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_handed_penalty=30, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), + list(mode_name="semiauto", burst=1, fire_delay=0.1, one_handed_penalty=15, burst_accuracy=null, dispersion=null), + list(mode_name="short bursts", burst=3, fire_delay=null, one_handed_penalty=30, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), ) /obj/item/gun/magnetic/railgun/heater @@ -163,8 +163,8 @@ empty_sound = 'sound/weapons/smg_empty_alarm.ogg' firemodes = list( - list(mode_name="high power", power_cost = 400, projectile_type = /obj/item/projectile/bullet/magnetic/heated, burst=1, fire_delay=8, move_delay=null, one_handed_penalty=15), - list(mode_name="low power", power_cost = 150, projectile_type = /obj/item/projectile/bullet/magnetic/heated/weak, burst=1, fire_delay=5, move_delay=null, one_handed_penalty=15), + list(mode_name="high power", power_cost = 400, projectile_type = /obj/item/projectile/bullet/magnetic/heated, burst=1, fire_delay=8, one_handed_penalty=15), + list(mode_name="low power", power_cost = 150, projectile_type = /obj/item/projectile/bullet/magnetic/heated/weak, burst=1, fire_delay=5, one_handed_penalty=15), ) /obj/item/gun/magnetic/railgun/heater/pistol @@ -185,8 +185,8 @@ slot_flags = SLOT_BELT|SLOT_HOLSTER firemodes = list( - list(mode_name="lethal", power_cost = 500, projectile_type = /obj/item/projectile/bullet/magnetic/heated, burst=1, fire_delay=10, move_delay=null, one_handed_penalty=0), - list(mode_name="stun", power_cost = 350, projectile_type = /obj/item/projectile/energy/electrode/strong, burst=1, fire_delay=7, move_delay=null, one_handed_penalty=0), + list(mode_name="lethal", power_cost = 500, projectile_type = /obj/item/projectile/bullet/magnetic/heated, burst=1, fire_delay=10, one_handed_penalty=0), + list(mode_name="stun", power_cost = 350, projectile_type = /obj/item/projectile/energy/electrode/strong, burst=1, fire_delay=7, one_handed_penalty=0), ) /obj/item/gun/magnetic/railgun/heater/pistol/hos @@ -197,8 +197,8 @@ description_antag = "This weapon starts with a DNA locking chip attached. Using an EMAG on the weapon will disarm it, and allow you to use the chip as your own." firemodes = list( - list(mode_name="lethal", power_cost = 400, projectile_type = /obj/item/projectile/bullet/magnetic/heated, burst=1, fire_delay=8, move_delay=null, one_handed_penalty=0), - list(mode_name="stun", power_cost = 300, projectile_type = /obj/item/projectile/energy/electrode/strong, burst=1, fire_delay=5, move_delay=null, one_handed_penalty=0), + list(mode_name="lethal", power_cost = 400, projectile_type = /obj/item/projectile/bullet/magnetic/heated, burst=1, fire_delay=8, one_handed_penalty=0), + list(mode_name="stun", power_cost = 300, projectile_type = /obj/item/projectile/energy/electrode/strong, burst=1, fire_delay=5, one_handed_penalty=0), ) /obj/item/gun/magnetic/railgun/flechette/sif @@ -220,6 +220,6 @@ empty_sound = 'sound/weapons/smg_empty_alarm.ogg' firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, one_handed_penalty=15, burst_accuracy=null, dispersion=null), - list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_handed_penalty=30, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), + list(mode_name="semiauto", burst=1, fire_delay=0.1, one_handed_penalty=15, burst_accuracy=null, dispersion=null), + list(mode_name="short bursts", burst=3, fire_delay=null, one_handed_penalty=30, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), ) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index a6c3f32b895..74a81014fc7 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -13,8 +13,8 @@ //Burst accuracy is the accuracy of each bullet fired in the burst. Dispersion is how much the bullets will 'spread' away from where you aimed. firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, burst_accuracy=null, dispersion=null), - list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0))) + list(mode_name="semiauto", burst=1, fire_delay=0.1, burst_accuracy=null, dispersion=null), + list(mode_name="3-round bursts", burst=3, fire_delay=null, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0))) /* * Advanced SMG @@ -32,8 +32,8 @@ allowed_magazines = list(/obj/item/ammo_magazine/m9mmAdvanced, /obj/item/ammo_magazine/m9mm) firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, burst_accuracy=null, dispersion=null), - list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-10,-10), dispersion=list(0.0, 0.3, 0.6)) + list(mode_name="semiauto", burst=1, fire_delay=0.1, burst_accuracy=null, dispersion=null), + list(mode_name="3-round bursts", burst=3, fire_delay=null, burst_accuracy=list(0,-10,-10), dispersion=list(0.0, 0.3, 0.6)) ) /obj/item/gun/projectile/automatic/advanced_smg/update_icon() @@ -106,8 +106,8 @@ one_handed_penalty = 30 firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, burst_accuracy=null, dispersion=null), - list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=6, burst_accuracy=list(0,-15,-30), dispersion=list(0.0, 0.6, 0.6)) + list(mode_name="semiauto", burst=1, fire_delay=0.1, burst_accuracy=null, dispersion=null), + list(mode_name="3-round bursts", burst=3, fire_delay=null, burst_accuracy=list(0,-15,-30), dispersion=list(0.0, 0.6, 0.6)) ) /obj/item/gun/projectile/automatic/sts35/update_icon(ignore_inhands) @@ -135,8 +135,8 @@ allowed_magazines = list(/obj/item/ammo_magazine/m9mmAdvanced) firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, burst_accuracy=null, dispersion=null), - list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=6, burst_accuracy=list(0,-15,-30), dispersion=list(0.0, 0.6, 0.6)) + list(mode_name="semiauto", burst=1, fire_delay=0.1, burst_accuracy=null, dispersion=null), + list(mode_name="3-round bursts", burst=3, fire_delay=null, burst_accuracy=list(0,-15,-30), dispersion=list(0.0, 0.6, 0.6)) ) /obj/item/gun/projectile/automatic/pdw/update_icon(ignore_inhands) @@ -200,9 +200,9 @@ burst_delay = 4 firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, use_launcher=null, burst_accuracy=null, dispersion=null), - list(mode_name="2-round bursts", burst=2, fire_delay=null, move_delay=6, use_launcher=null, burst_accuracy=list(0,-15), dispersion=list(0.0, 0.6)), - list(mode_name="fire grenades", burst=null, fire_delay=null, move_delay=null, use_launcher=1, burst_accuracy=null, dispersion=null) + list(mode_name="semiauto", burst=1, fire_delay=0.1, use_launcher=null, burst_accuracy=null, dispersion=null), + list(mode_name="2-round bursts", burst=2, fire_delay=null, use_launcher=null, burst_accuracy=list(0,-15), dispersion=list(0.0, 0.6)), + list(mode_name="fire grenades", burst=null, fire_delay=null, use_launcher=1, burst_accuracy=null, dispersion=null) ) var/use_launcher = 0 @@ -277,9 +277,9 @@ var/cover_open = 0 firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, burst_accuracy=null, dispersion=null), - list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), - list(mode_name="short bursts", burst=5, move_delay=6, burst_accuracy = list(0,-15,-15,-30,-30), dispersion = list(0.6, 1.0, 1.0, 1.0, 1.2)) + list(mode_name="semiauto", burst=1, fire_delay=0.1, burst_accuracy=null, dispersion=null), + list(mode_name="3-round bursts", burst=3, fire_delay=null, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), + list(mode_name="short bursts", burst=5, burst_accuracy = list(0,-15,-15,-30,-30), dispersion = list(0.6, 1.0, 1.0, 1.0, 1.2)) ) special_weapon_handling = TRUE @@ -357,7 +357,7 @@ firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0.1), - list(mode_name="3-round bursts", burst=3, move_delay=6, burst_accuracy = list(0,-15,-15,-30,-30), dispersion = list(0.0, 0.6, 0.6)) + list(mode_name="3-round bursts", burst=3, burst_accuracy = list(0,-15,-15,-30,-30), dispersion = list(0.0, 0.6, 0.6)) ) /obj/item/gun/projectile/automatic/as24/update_icon() @@ -386,7 +386,7 @@ firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0.1), - list(mode_name="3-round bursts", burst=3, burst_delay=1, fire_delay=4, move_delay=4, burst_accuracy = list(0,-15,-15,-30,-30), dispersion = list(0.6, 1.0, 1.0)) + list(mode_name="3-round bursts", burst=3, burst_delay=1, fire_delay=4, burst_accuracy = list(0,-15,-15,-30,-30), dispersion = list(0.6, 1.0, 1.0)) ) /obj/item/gun/projectile/automatic/mini_uzi/update_icon() @@ -414,7 +414,7 @@ firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0.1), - list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)) + list(mode_name="3-round bursts", burst=3, fire_delay=null, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)) ) /obj/item/gun/projectile/automatic/p90/update_icon() @@ -438,7 +438,7 @@ firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0.1), - list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)) + list(mode_name="3-round bursts", burst=3, fire_delay=null, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)) ) /obj/item/gun/projectile/automatic/tommygun/update_icon() @@ -471,8 +471,8 @@ one_handed_penalty = 45 firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, burst_accuracy=null, dispersion=null), - list(mode_name="2-round bursts", burst=2, fire_delay=null, move_delay=6, burst_accuracy=list(0,-15), dispersion=list(0.0, 0.6)) + list(mode_name="semiauto", burst=1, fire_delay=0.1, burst_accuracy=null, dispersion=null), + list(mode_name="2-round bursts", burst=2, fire_delay=null, burst_accuracy=list(0,-15), dispersion=list(0.0, 0.6)) ) /obj/item/gun/projectile/automatic/bullpup/update_icon(ignore_inhands) @@ -504,7 +504,7 @@ firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0.1), - list(mode_name="3-round bursts", burst=3, burst_delay=1, fire_delay=4, move_delay=4, burst_accuracy=list(0,-15,-30), dispersion=list(0.0, 0.6, 0.6)) + list(mode_name="3-round bursts", burst=3, burst_delay=1, fire_delay=4, burst_accuracy=list(0,-15,-30), dispersion=list(0.0, 0.6, 0.6)) ) /obj/item/gun/projectile/automatic/combatsmg/update_icon() diff --git a/code/modules/projectiles/guns/projectile/automatic_vr.dm b/code/modules/projectiles/guns/projectile/automatic_vr.dm index 6fb9baf3c43..c081a984aad 100644 --- a/code/modules/projectiles/guns/projectile/automatic_vr.dm +++ b/code/modules/projectiles/guns/projectile/automatic_vr.dm @@ -58,8 +58,8 @@ multi_aim = 1 burst_delay = 2 firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, burst_accuracy=null, dispersion=null), - list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), + list(mode_name="semiauto", burst=1, fire_delay=0.1, burst_accuracy=null, dispersion=null), + list(mode_name="3-round bursts", burst=3, fire_delay=null, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), ) /obj/item/gun/projectile/automatic/sol/proc/update_charge() diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index a195ad0d7e2..1d6f1206ea6 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -447,8 +447,8 @@ icon_state = "olivawcivil" item_state = "giskardcivil" firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=1.2, move_delay=null, burst_accuracy=null, dispersion=null), - list(mode_name="2-round bursts", burst=2, fire_delay=0.2, move_delay=4, burst_accuracy=list(0,-15), dispersion=list(1.2, 1.8)), + list(mode_name="semiauto", burst=1, fire_delay=1.2, burst_accuracy=null, dispersion=null), + list(mode_name="2-round bursts", burst=2, fire_delay=0.2, burst_accuracy=list(0,-15), dispersion=list(1.2, 1.8)), ) /obj/item/gun/projectile/giskard/olivaw/update_icon() diff --git a/code/modules/projectiles/guns/toy.dm b/code/modules/projectiles/guns/toy.dm index a23fbb8a259..3038e6fc3df 100644 --- a/code/modules/projectiles/guns/toy.dm +++ b/code/modules/projectiles/guns/toy.dm @@ -195,8 +195,8 @@ recoil = null //it's a toy firemodes = list( - list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, burst_accuracy=null, dispersion=null), - list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=2, burst_accuracy=list(0,-2,-2), dispersion=null) + list(mode_name="semiauto", burst=1, fire_delay=0.1, burst_accuracy=null, dispersion=null), + list(mode_name="3-round bursts", burst=3, fire_delay=null, burst_accuracy=list(0,-2,-2), dispersion=null) ) /obj/item/gun/projectile/automatic/toy/riot diff --git a/code/modules/projectiles/guns/vox.dm b/code/modules/projectiles/guns/vox.dm index 6a1b53fedd0..9cf1d9992d2 100644 --- a/code/modules/projectiles/guns/vox.dm +++ b/code/modules/projectiles/guns/vox.dm @@ -64,9 +64,9 @@ accuracy = 30 firemodes = list( - list(mode_name="stunning", burst=1, fire_delay=null, move_delay=null, burst_accuracy=list(30), dispersion=null, projectile_type=/obj/item/projectile/beam/stun/darkmatter, charge_cost = 300), - list(mode_name="focused", burst=1, fire_delay=null, move_delay=null, burst_accuracy=list(30), dispersion=null, projectile_type=/obj/item/projectile/beam/darkmatter, charge_cost = 400), - list(mode_name="scatter burst", burst=8, fire_delay=null, move_delay=4, burst_accuracy=list(0, 0, 0, 0, 0, 0, 0, 0), dispersion=list(3, 3, 3, 3, 3, 3, 3, 3, 3), projectile_type=/obj/item/projectile/energy/darkmatter, charge_cost = 300), + list(mode_name="stunning", burst=1, fire_delay=null, burst_accuracy=list(30), dispersion=null, projectile_type=/obj/item/projectile/beam/stun/darkmatter, charge_cost = 300), + list(mode_name="focused", burst=1, fire_delay=null, burst_accuracy=list(30), dispersion=null, projectile_type=/obj/item/projectile/beam/darkmatter, charge_cost = 400), + list(mode_name="scatter burst", burst=8, fire_delay=null, burst_accuracy=list(0, 0, 0, 0, 0, 0, 0, 0), dispersion=list(3, 3, 3, 3, 3, 3, 3, 3, 3), projectile_type=/obj/item/projectile/energy/darkmatter, charge_cost = 300), ) /obj/item/projectile/beam/stun/darkmatter diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index c826c7ba144..8b244774172 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -21,7 +21,7 @@ hitsound_wall = null damage = 5 range = 15 //if the shell hasn't hit anything after travelling this far it just explodes. - var/flash_range = 0 + var/flash_range = 1 var/brightness = 7 var/light_colour = "#ffffff" hud_state = "grenade_dummy" @@ -59,7 +59,7 @@ /obj/item/projectile/energy/flash/flare fire_sound = 'sound/weapons/grenade_launcher.ogg' damage = 10 - flash_range = 1 + flash_range = 2 brightness = 15 flash_strength = 20 hud_state = "grenade_dummy" @@ -84,10 +84,6 @@ hud_state = "taser" //Damage will be handled on the MOB side, to prevent window shattering. -/obj/item/projectile/energy/electrode/strong - agony = 55 - hud_state = "taser" - /obj/item/projectile/energy/electrode/stunshot name = "stunshot" damage = 5 @@ -315,10 +311,6 @@ flash_strength = 10 hud_state = "taser" -/obj/item/projectile/energy/flash - flash_range = 1 - hud_state = "grenade_dummy" - /obj/item/projectile/energy/flash/strong name = "chemical shell" icon_state = "bullet" @@ -328,10 +320,6 @@ brightness = 15 hud_state = "grenade_dummy" -/obj/item/projectile/energy/flash/flare - flash_range = 2 - hud_state = "grenade_dummy" - /obj/item/projectile/energy/anomaly name = "anomaly emitter projectile" light_color = "#be008f" diff --git a/sound/effects/footstep/slime2.ogg b/sound/effects/footstep/slime2.ogg new file mode 100644 index 00000000000..c87fa94cd4d Binary files /dev/null and b/sound/effects/footstep/slime2.ogg differ diff --git a/sound/effects/footstep/slime3.ogg b/sound/effects/footstep/slime3.ogg new file mode 100644 index 00000000000..424fe1bac73 Binary files /dev/null and b/sound/effects/footstep/slime3.ogg differ