From c7db4e8310015f199646ae1d0843ebe87828ee77 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Fri, 29 Dec 2017 04:12:43 -0600 Subject: [PATCH] also syncs a bunch of shit --- code/__DEFINES/antagonists.dm | 2 + code/datums/antagonists/monkey.dm | 34 ++++---- code/datums/diseases/_MobProcs.dm | 19 ++-- code/datums/diseases/_disease.dm | 11 ++- code/datums/diseases/transformation.dm | 24 ++++-- code/datums/emotes.dm | 13 +-- .../gamemodes/miniantags/monkey/monkey.dm | 86 +++++++++++-------- code/modules/projectiles/guns/beam_rifle.dm | 40 +-------- .../space_transition/space_transition.dm | 14 +-- code/modules/surgery/organs/heart.dm | 14 +++ .../objects/items/melee/eutactic_blades.dm | 2 +- 11 files changed, 133 insertions(+), 126 deletions(-) diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 17b6e60158..309489742c 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -16,3 +16,5 @@ #define ANTAG_DATUM_ABDUCTOR /datum/antagonist/abductor #define ANTAG_DATUM_ABDUCTOR_SCIENTIST /datum/antagonist/abductor/scientist #define ANTAG_DATUM_ABDUCTOR_AGENT /datum/antagonist/abductor/agent +#define ANTAG_DATUM_MONKEY /datum/antagonist/monkey +#define ANTAG_DATUM_MONKEY_LEADER /datum/antagonist/monkey/leader diff --git a/code/datums/antagonists/monkey.dm b/code/datums/antagonists/monkey.dm index 8d7462b567..b1c5642a39 100644 --- a/code/datums/antagonists/monkey.dm +++ b/code/datums/antagonists/monkey.dm @@ -7,14 +7,14 @@ name = "Monkey" job_rank = ROLE_MONKEY roundend_category = "monkeys" - var/datum/objective_team/monkey/monkey_team + var/datum/team/monkey/monkey_team /datum/antagonist/monkey/on_gain() . = ..() SSticker.mode.ape_infectees += owner owner.special_role = "Infected Monkey" - var/datum/disease/D = new /datum/disease/transformation/jungle_fever + var/datum/disease/D = new /datum/disease/transformation/jungle_fever/monkeymode if(!owner.current.HasDisease(D)) D.affected_mob = owner owner.current.viruses += D @@ -38,13 +38,13 @@ if(D) D.cure() -/datum/antagonist/monkey/create_team(datum/objective_team/monkey/new_team) +/datum/antagonist/monkey/create_team(datum/team/monkey/new_team) if(!new_team) for(var/datum/antagonist/monkey/N in get_antagonists(/datum/antagonist/monkey, TRUE)) if(N.monkey_team) monkey_team = N.monkey_team return - monkey_team = new /datum/objective_team/monkey + monkey_team = new /datum/team/monkey monkey_team.update_objectives() return if(!istype(new_team)) @@ -60,9 +60,6 @@ /datum/antagonist/monkey/leader/on_gain() . = ..() - var/datum/disease/D = (/datum/disease/transformation/jungle_fever in owner.current.viruses) - if(D) - D.visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC var/obj/item/organ/heart/freedom/F = new F.Insert(owner.current, drop_if_replaced = FALSE) SSticker.mode.ape_leaders += owner @@ -99,45 +96,45 @@ return TRUE return FALSE -/datum/objective_team/monkey +/datum/team/monkey name = "Monkeys" -/datum/objective_team/monkey/proc/update_objectives() +/datum/team/monkey/proc/update_objectives() objectives = list() var/datum/objective/monkey/O = new /datum/objective/monkey() O.team = src objectives += O return -/datum/objective_team/monkey/proc/infected_monkeys_alive() +/datum/team/monkey/proc/infected_monkeys_alive() var/datum/disease/D = new /datum/disease/transformation/jungle_fever() for(var/mob/living/carbon/monkey/M in GLOB.alive_mob_list) if(M.HasDisease(D)) return TRUE return FALSE -/datum/objective_team/monkey/proc/infected_monkeys_escaped() +/datum/team/monkey/proc/infected_monkeys_escaped() var/datum/disease/D = new /datum/disease/transformation/jungle_fever() for(var/mob/living/carbon/monkey/M in GLOB.alive_mob_list) if(M.HasDisease(D) && (M.onCentCom() || M.onSyndieBase())) return TRUE return FALSE -/datum/objective_team/monkey/proc/infected_humans_escaped() +/datum/team/monkey/proc/infected_humans_escaped() var/datum/disease/D = new /datum/disease/transformation/jungle_fever() for(var/mob/living/carbon/human/M in GLOB.alive_mob_list) if(M.HasDisease(D) && (M.onCentCom() || M.onSyndieBase())) return TRUE return FALSE -/datum/objective_team/monkey/proc/infected_humans_alive() +/datum/team/monkey/proc/infected_humans_alive() var/datum/disease/D = new /datum/disease/transformation/jungle_fever() for(var/mob/living/carbon/human/M in GLOB.alive_mob_list) if(M.HasDisease(D)) return TRUE return FALSE -/datum/objective_team/monkey/proc/get_result() +/datum/team/monkey/proc/get_result() if(infected_monkeys_escaped()) return MONKEYS_ESCAPED if(infected_monkeys_alive()) @@ -146,7 +143,7 @@ return DISEASE_LIVED return MONKEYS_DIED -/datum/objective_team/monkey/roundend_report() +/datum/team/monkey/roundend_report() var/list/parts = list() switch(get_result()) if(MONKEYS_ESCAPED) @@ -161,10 +158,13 @@ if(MONKEYS_DIED) parts += "Monkey Major Defeat!" parts += "All the monkeys died, and Jungle Fever was wiped out!" - if(LAZYLEN(SSticker.mode.ape_leaders)) + var/list/leaders = get_antagonists(/datum/antagonist/monkey/leader, TRUE) + var/list/monkeys = get_antagonists(/datum/antagonist/monkey, TRUE) + + if(LAZYLEN(leaders)) parts += "The monkey leaders were:" parts += printplayerlist(SSticker.mode.ape_leaders) - if(LAZYLEN(SSticker.mode.ape_infectees)) + if(LAZYLEN(monkeys)) parts += "The monkeys were:" parts += printplayerlist(SSticker.mode.ape_infectees) return "
[parts.Join("
")]
" \ No newline at end of file diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index 7c08a3908f..ffc20cc9cb 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -3,29 +3,29 @@ for(var/thing in viruses) var/datum/disease/DD = thing if(D.IsSame(DD)) - return 1 - return 0 + return TRUE + return FALSE /mob/proc/CanContractDisease(datum/disease/D) if(stat == DEAD) - return 0 + return FALSE if(D.GetDiseaseID() in resistances) - return 0 + return FALSE if(HasDisease(D)) - return 0 + return FALSE if(!(type in D.viable_mobtypes)) - return 0 + return FALSE - return 1 + return TRUE /mob/proc/ContactContractDisease(datum/disease/D) if(!CanContractDisease(D)) - return 0 + return FALSE AddDisease(D) @@ -53,12 +53,13 @@ else DD.vars[V] = D.vars[V] + DD.after_add() DD.affected_mob.med_hud_set_status() /mob/living/carbon/ContactContractDisease(datum/disease/D, target_zone) if(!CanContractDisease(D)) - return 0 + return FALSE var/obj/item/clothing/Cl = null var/passed = TRUE diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 951edece23..5d49d7a523 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -60,14 +60,14 @@ /datum/disease/proc/has_cure() if(!(disease_flags & CURABLE)) - return 0 + return FALSE . = cures.len for(var/C_id in cures) if(!affected_mob.reagents.has_reagent(C_id)) .-- if(!. || (needs_all_cures && . < cures.len)) - return 0 + return FALSE //Airborne spreading /datum/disease/proc/spread(force_spread = 0) @@ -111,8 +111,8 @@ /datum/disease/proc/IsSame(datum/disease/D) if(istype(src, D.type)) - return 1 - return 0 + return TRUE + return FALSE /datum/disease/proc/Copy() @@ -120,6 +120,9 @@ D.strain_data = strain_data.Copy() return D +/datum/disease/proc/after_add() + return + /datum/disease/proc/GetDiseaseID() return "[type]" diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 60622f61cb..8bce15cf3c 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -65,8 +65,8 @@ /datum/disease/transformation/jungle_fever name = "Jungle Fever" - cure_text = "Bananas" - cures = list("banana") + cure_text = "Death." + cures = list("adminordrazine") spread_text = "Monkey Bites" spread_flags = VIRUS_SPREAD_SPECIAL viable_mobtypes = list(/mob/living/carbon/monkey, /mob/living/carbon/human) @@ -88,9 +88,12 @@ stage5 = list("You feel like monkeying around.") /datum/disease/transformation/jungle_fever/do_disease_transformation(mob/living/carbon/affected_mob) - if(!ismonkey(affected_mob)) - SSticker.mode.add_monkey(affected_mob.mind) - affected_mob.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) + if(affected_mob.mind && !is_monkey(affected_mob)) + add_monkey(affected_mob.mind) + if(ishuman(affected_mob)) + var/mob/living/carbon/monkey/M = affected_mob.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) + M.ventcrawler = VENTCRAWLER_ALWAYS + /datum/disease/transformation/jungle_fever/stage_act() ..() @@ -107,9 +110,18 @@ affected_mob.say(pick("Eeek, ook ook!", "Eee-eeek!", "Eeee!", "Ungh, ungh.")) /datum/disease/transformation/jungle_fever/cure() - SSticker.mode.remove_monkey(affected_mob.mind) + remove_monkey(affected_mob.mind) ..() +/datum/disease/transformation/jungle_fever/monkeymode + visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC + disease_flags = CAN_CARRY //no vaccines! no cure! + +/datum/disease/transformation/jungle_fever/monkeymode/after_add() + if(affected_mob && !is_monkey_leader(affected_mob.mind)) + visibility_flags = NONE + + /datum/disease/transformation/robot diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 2e5bd580bf..b452eff382 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -16,8 +16,9 @@ var/emote_type = EMOTE_VISIBLE //Whether the emote is visible or audible var/restraint_check = FALSE //Checks if the mob is restrained before performing the emote var/muzzle_ignore = FALSE //Will only work if the emote is EMOTE_AUDIBLE - var/list/mob_type_allowed_typecache //Types that are allowed to use that emote + var/list/mob_type_allowed_typecache = list(/mob) //Types that are allowed to use that emote var/list/mob_type_blacklist_typecache //Types that are NOT allowed to use that emote + var/list/mob_type_ignore_stat_typecache var/stat_allowed = CONSCIOUS var/static/list/emote_list = list() @@ -26,6 +27,7 @@ emote_list[key_third_person] = src mob_type_allowed_typecache = typecacheof(mob_type_allowed_typecache) mob_type_blacklist_typecache = typecacheof(mob_type_blacklist_typecache) + mob_type_ignore_stat_typecache = typecacheof(mob_type_ignore_stat_typecache) /datum/emote/proc/run_emote(mob/user, params, type_override) . = TRUE @@ -37,9 +39,10 @@ msg = replace_pronoun(user, msg) - var/mob/living/L = user - for(var/obj/item/implant/I in L.implants) - I.trigger(key, L) + if(isliving(user)) + var/mob/living/L = user + for(var/obj/item/implant/I in L.implants) + I.trigger(key, L) if(!msg) return @@ -97,7 +100,7 @@ return FALSE if(is_type_in_typecache(user, mob_type_blacklist_typecache)) return FALSE - if(status_check) + if(status_check && !is_type_in_typecache(user, mob_type_ignore_stat_typecache)) if(user.stat > stat_allowed || (user.status_flags & FAKEDEATH)) to_chat(user, "You cannot [key] while unconscious.") return FALSE diff --git a/code/game/gamemodes/miniantags/monkey/monkey.dm b/code/game/gamemodes/miniantags/monkey/monkey.dm index 8e02d41441..7e6d92d927 100644 --- a/code/game/gamemodes/miniantags/monkey/monkey.dm +++ b/code/game/gamemodes/miniantags/monkey/monkey.dm @@ -1,5 +1,6 @@ /datum/game_mode var/list/ape_infectees = list() + var/list/ape_leaders = list() /datum/game_mode/monkey name = "monkey" @@ -21,6 +22,9 @@ var/players_per_carrier = 30 + var/datum/team/monkey/monkey_team + + /datum/game_mode/monkey/pre_setup() carriers_to_make = max(round(num_players()/players_per_carrier, 1), 1) @@ -30,79 +34,59 @@ break var/datum/mind/carrier = pick(antag_candidates) carriers += carrier - carrier.special_role = "monkey" + carrier.special_role = "Monkey Leader" carrier.restricted_roles = restricted_jobs log_game("[carrier.key] (ckey) has been selected as a Jungle Fever carrier") antag_candidates -= carrier if(!carriers.len) - return 0 - return 1 + return FALSE + return TRUE /datum/game_mode/monkey/announce() to_chat(world, "The current game mode is - Monkey!") to_chat(world, "One or more crewmembers have been infected with Jungle Fever! Crew: Contain the outbreak. None of the infected monkeys may escape alive to CentCom. Monkeys: Ensure that your kind lives on! Rise up against your captors!") - -/datum/game_mode/monkey/proc/greet_carrier(datum/mind/carrier) - to_chat(carrier.current, "You are the Jungle Fever patient zero!!") - to_chat(carrier.current, "You have been planted onto this station by the Animal Rights Consortium.") - to_chat(carrier.current, "Soon the disease will transform you into an ape. Afterwards, you will be able spread the infection to others with a bite.") - to_chat(carrier.current, "While your infection strain is undetectable by scanners, any other infectees will show up on medical equipment.") - to_chat(carrier.current, "Your mission will be deemed a success if any of the live infected monkeys reach CentCom.") - carrier.current.playsound_local(get_turf(carrier.current), 'sound/ambience/antag/monkey.ogg', 100, FALSE, pressure_affected = FALSE) - return - /datum/game_mode/monkey/post_setup() for(var/datum/mind/carriermind in carriers) - greet_carrier(carriermind) - ape_infectees += carriermind - - var/datum/disease/D = new /datum/disease/transformation/jungle_fever - D.visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC - D.affected_mob = carriermind.current - carriermind.current.viruses += D - ..() + var/datum/antagonist/monkey/M = add_monkey_leader(carriermind, monkey_team) + if(M) + monkey_team = M.monkey_team + return ..() /datum/game_mode/monkey/check_finished() if((SSshuttle.emergency.mode == SHUTTLE_ENDGAME) || station_was_nuked) - return 1 + return TRUE if(!round_converted) for(var/datum/mind/monkey_mind in ape_infectees) - continuous_sanity_checked = 1 + continuous_sanity_checked = TRUE if(monkey_mind.current && monkey_mind.current.stat != DEAD) - return 0 + return FALSE var/datum/disease/D = new /datum/disease/transformation/jungle_fever() //ugly but unfortunately needed for(var/mob/living/carbon/human/H in GLOB.alive_mob_list) - if(H.mind && H.stat != DEAD) + if(!(H.z in GLOB.station_z_levels)) + continue + if(H.mind && H.client && H.stat != DEAD) if(H.HasDisease(D)) - return 0 + return FALSE - ..() + return ..() /datum/game_mode/monkey/proc/check_monkey_victory() if(SSshuttle.emergency.mode != SHUTTLE_ENDGAME) - return 0 + return FALSE var/datum/disease/D = new /datum/disease/transformation/jungle_fever() for(var/mob/living/carbon/monkey/M in GLOB.alive_mob_list) if (M.HasDisease(D)) if(M.onCentCom() || M.onSyndieBase()) escaped_monkeys++ if(escaped_monkeys >= monkeys_to_win) - return 1 + return TRUE else - return 0 - -/datum/game_mode/proc/add_monkey(datum/mind/monkey_mind) - ape_infectees |= monkey_mind - monkey_mind.special_role = "Infected Monkey" - -/datum/game_mode/proc/remove_monkey(datum/mind/monkey_mind) - ape_infectees.Remove(monkey_mind) - monkey_mind.special_role = null + return FALSE /datum/game_mode/monkey/set_round_result() @@ -120,3 +104,29 @@ /datum/game_mode/monkey/generate_report() return "Reports of an ancient [pick("retrovirus", "flesh eating bacteria", "disease", "magical curse blamed on viruses", "banana blight")] outbreak that turn humans into monkeys has been reported in your quadrant. Any such infections may be treated with banana juice. If an outbreak occurs, ensure the station is quarantined to prevent a largescale outbreak at CentCom." + +/proc/add_monkey_leader(datum/mind/monkey_mind) + if(is_monkey_leader(monkey_mind)) + return FALSE + var/datum/antagonist/monkey/leader/M = monkey_mind.add_antag_datum(ANTAG_DATUM_MONKEY_LEADER) + return M + +/proc/add_monkey(datum/mind/monkey_mind) + if(is_monkey(monkey_mind)) + return FALSE + var/datum/antagonist/monkey/M = monkey_mind.add_antag_datum(ANTAG_DATUM_MONKEY) + return M + +/proc/remove_monkey(datum/mind/monkey_mind) + if(!is_monkey(monkey_mind)) + return FALSE + var/datum/antagonist/monkey/M = monkey_mind.has_antag_datum(ANTAG_DATUM_MONKEY) + M.on_removal() + return TRUE + +/proc/is_monkey_leader(datum/mind/monkey_mind) + return monkey_mind && monkey_mind.has_antag_datum(ANTAG_DATUM_MONKEY_LEADER) + +/proc/is_monkey(datum/mind/monkey_mind) + return monkey_mind && (monkey_mind.has_antag_datum(ANTAG_DATUM_MONKEY) || is_monkey_leader(monkey_mind)) + diff --git a/code/modules/projectiles/guns/beam_rifle.dm b/code/modules/projectiles/guns/beam_rifle.dm index ee8036bf44..3b2a7cff08 100644 --- a/code/modules/projectiles/guns/beam_rifle.dm +++ b/code/modules/projectiles/guns/beam_rifle.dm @@ -63,7 +63,7 @@ var/projectile_setting_pierce = TRUE var/delay = 65 var/lastfire = 0 - + var/lastprocess = 0 //ZOOMING @@ -716,44 +716,6 @@ flags_1 = ABSTRACT_1 appearance_flags = 0 -/obj/effect/projectile_beam/proc/scale_to(nx,ny,override=TRUE) - var/matrix/M - if(!override) - M = transform - else - M = new - M.Scale(nx,ny) - transform = M - -/obj/effect/projectile_beam/proc/turn_to(angle,override=TRUE) - var/matrix/M - if(!override) - M = transform - else - M = new - M.Turn(angle) - transform = M - -/obj/effect/projectile_beam/New(angle_override, p_x, p_y, color_override, scaling = 1) - if(angle_override && p_x && p_y && color_override && scaling) - apply_vars(angle_override, p_x, p_y, color_override, scaling) - return ..() - -/obj/effect/projectile_beam/proc/apply_vars(angle_override, p_x, p_y, color_override, scaling = 1, new_loc, increment = 0) - var/mutable_appearance/look = new(src) - look.pixel_x = p_x - look.pixel_y = p_y - if(color_override) - look.color = color_override - appearance = look - scale_to(1,scaling, FALSE) - turn_to(angle_override, FALSE) - if(!isnull(new_loc)) //If you want to null it just delete it... - forceMove(new_loc) - for(var/i in 1 to increment) - pixel_x += round((sin(angle_override)+16*sin(angle_override)*2), 1) - pixel_y += round((cos(angle_override)+16*cos(angle_override)*2), 1) - /obj/effect/projectile_beam/tracer icon_state = "tracer_beam" diff --git a/code/modules/space_transition/space_transition.dm b/code/modules/space_transition/space_transition.dm index ec5920eba7..edcad9b620 100644 --- a/code/modules/space_transition/space_transition.dm +++ b/code/modules/space_transition/space_transition.dm @@ -19,7 +19,7 @@ GLOBAL_LIST_EMPTY(z_levels_list) neigbours[A] = src /datum/space_level/proc/set_neigbours(list/L) - for(var/datum/point/P in L) + for(var/datum/space_transition_point/P in L) if(P.x == xi) if(P.y == yi+1) neigbours[TEXT_NORTH] = P.spl @@ -35,13 +35,13 @@ GLOBAL_LIST_EMPTY(z_levels_list) neigbours[TEXT_WEST] = P.spl P.spl.neigbours[TEXT_EAST] = src -/datum/space_transition //this is explicitly utilitarian datum type made specially for the space map generation and are absolutely unusable for anything else +/datum/space_transition_point //this is explicitly utilitarian datum type made specially for the space map generation and are absolutely unusable for anything else var/list/neigbours = list() var/x var/y var/datum/space_level/spl -/datum/point/New(nx, ny, list/point_grid) +/datum/space_transition_point/New(nx, ny, list/point_grid) if(!point_grid) qdel(src) return @@ -55,7 +55,7 @@ GLOBAL_LIST_EMPTY(z_levels_list) return point_grid[x][y] = src -/datum/point/proc/set_neigbours(list/grid) +/datum/space_transition_point/proc/set_neigbours(list/grid) var/max_X = grid.len var/list/max_Y = grid[1] max_Y = max_Y.len @@ -86,13 +86,13 @@ GLOBAL_LIST_EMPTY(z_levels_list) k++ var/list/point_grid[conf_set_len*2+1][conf_set_len*2+1] var/list/grid = list() - var/datum/point/P + var/datum/space_transition_point/P for(var/i = 1, i<=conf_set_len*2+1, i++) for(var/j = 1, j<=conf_set_len*2+1, j++) - P = new/datum/point(i,j, point_grid) + P = new/datum/space_transition_point(i,j, point_grid) point_grid[i][j] = P grid.Add(P) - for(var/datum/point/pnt in grid) + for(var/datum/space_transition_point/pnt in grid) pnt.set_neigbours(point_grid) P = point_grid[conf_set_len+1][conf_set_len+1] var/list/possible_points = list() diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 21d15fb609..5da89f125f 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -152,3 +152,17 @@ /obj/item/organ/heart/cybernetic/emp_act() Stop() + +/obj/item/organ/heart/freedom + name = "heart of freedom" + desc = "This heart pumps with the passion to give... something freedom." + var/min_next_adrenaline = 0 + +/obj/item/organ/heart/freedom/on_life() + . = ..() + if(owner.health < 5 && world.time > min_next_adrenaline) + min_next_adrenaline = world.time + rand(250, 600) //anywhere from 4.5 to 10 minutes + to_chat(owner, "You feel yourself dying, but you refuse to give up!") + owner.heal_overall_damage(15, 15) + if(owner.reagents.get_reagent_amount("ephedrine") < 20) + owner.reagents.add_reagent("ephedrine", 10) \ No newline at end of file diff --git a/modular_citadel/code/game/objects/items/melee/eutactic_blades.dm b/modular_citadel/code/game/objects/items/melee/eutactic_blades.dm index d324c95511..385e9cd9d4 100644 --- a/modular_citadel/code/game/objects/items/melee/eutactic_blades.dm +++ b/modular_citadel/code/game/objects/items/melee/eutactic_blades.dm @@ -317,7 +317,7 @@ unwield() return ..() - if(user.disabilities & CLUMSY && (wielded) && prob(40)) + if(user.has_disability(DISABILITY_CLUMSY) && (wielded) && prob(40)) impale(user) return