diff --git a/code/__DEFINES/_globals.dm b/code/__DEFINES/_globals.dm index cc3e385f9f..874223a612 100644 --- a/code/__DEFINES/_globals.dm +++ b/code/__DEFINES/_globals.dm @@ -41,12 +41,6 @@ //Create a list global that is initialized as an empty list #define GLOBAL_LIST_EMPTY(X) GLOBAL_LIST_INIT(X, list()) -// Create a typed list global with an initializer expression -#define GLOBAL_LIST_INIT_TYPED(X, Typepath, InitValue) GLOBAL_RAW(/list##Typepath/X); GLOBAL_MANAGED(X, InitValue) - -// Create a typed list global that is initialized as an empty list -#define GLOBAL_LIST_EMPTY_TYPED(X, Typepath) GLOBAL_LIST_INIT_TYPED(X, Typepath, list()) - //Create a typed global with an initializer expression #define GLOBAL_DATUM_INIT(X, Typepath, InitValue) GLOBAL_RAW(Typepath/##X); GLOBAL_MANAGED(X, InitValue) diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index f5ea8d835f..632e4adef9 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -4,9 +4,9 @@ #define WEIGHT_CLASS_TINY 1 //Usually items smaller then a human hand, ex: Playing Cards, Lighter, Scalpel, Coins/Money #define WEIGHT_CLASS_SMALL 2 //Pockets can hold small and tiny items, ex: Flashlight, Multitool, Grenades, GPS Device #define WEIGHT_CLASS_NORMAL 3 //Standard backpacks can carry tiny, small & normal items, ex: Fire extinguisher, Stunbaton, Gas Mask, Metal Sheets -#define WEIGHT_CLASS_BULKY 4 //Items that can be weilded or equipped but not stored in a normal bag, ex: Defibrillator, Backpack, Space Suits -#define WEIGHT_CLASS_HUGE 5 //Usually represents objects that require two hands to operate, ex: Shotgun, Two Handed Melee Weapons - Can not fit in Boh -#define WEIGHT_CLASS_GIGANTIC 6 //Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe - Can not fit in Boh +#define WEIGHT_CLASS_BULKY 4 //Items that can be weilded or equipped but not stored in an inventory, ex: Defibrillator, Backpack, Space Suits +#define WEIGHT_CLASS_HUGE 5 //Usually represents objects that require two hands to operate, ex: Shotgun, Two Handed Melee Weapons +#define WEIGHT_CLASS_GIGANTIC 6 //Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe //Inventory depth: limits how many nested storage items you can access directly. //1: stuff in mob, 2: stuff in backpack, 3: stuff in box in backpack, etc diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index c0501b4e41..37f36a7e0d 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -84,9 +84,3 @@ GLOBAL_VAR_INIT(cmp_field, "name") /proc/cmp_job_display_asc(datum/job/A, datum/job/B) return A.display_order - B.display_order - -/proc/cmp_numbered_displays_name_asc(datum/numbered_display/A, datum/numbered_display/B) - return sorttext(A.sample_object.name, B.sample_object.name) - -/proc/cmp_numbered_displays_name_dsc(datum/numbered_display/A, datum/numbered_display/B) - return sorttext(B.sample_object.name, A.sample_object.name) \ No newline at end of file diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 0ac8a61183..a2135b93b2 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -7,15 +7,15 @@ GLOBAL_LIST_EMPTY(facial_hair_styles_list) //stores /datum/sprite_accessory/faci GLOBAL_LIST_EMPTY(facial_hair_styles_male_list) //stores only hair names GLOBAL_LIST_EMPTY(facial_hair_styles_female_list) //stores only hair names //Underwear -GLOBAL_LIST_EMPTY_TYPED(underwear_list, /datum/sprite_accessory/underwear/bottom) //stores bottoms indexed by name +GLOBAL_LIST_EMPTY(underwear_list) //stores /datum/sprite_accessory/underwear/bottom indexed by name GLOBAL_LIST_EMPTY(underwear_m) //stores only underwear name GLOBAL_LIST_EMPTY(underwear_f) //stores only underwear name //Undershirts -GLOBAL_LIST_EMPTY_TYPED(undershirt_list, /datum/sprite_accessory/underwear/top) //stores tops indexed by name +GLOBAL_LIST_EMPTY(undershirt_list) //stores /datum/sprite_accessory/underwear/top indexed by name GLOBAL_LIST_EMPTY(undershirt_m) //stores only undershirt name GLOBAL_LIST_EMPTY(undershirt_f) //stores only undershirt name //Socks -GLOBAL_LIST_EMPTY_TYPED(socks_list, /datum/sprite_accessory/underwear/socks) //stores socks indexed by name +GLOBAL_LIST_EMPTY(socks_list) //stores /datum/sprite_accessory/underwear/socks indexed by name //Lizard Bits (all datum lists indexed by name) GLOBAL_LIST_EMPTY(body_markings_list) GLOBAL_LIST_EMPTY(tails_list_lizard) diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index 6b8d91acf9..f0479cd8aa 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -45,6 +45,6 @@ GLOBAL_LIST_EMPTY(vr_spawnpoints) //used by jump-to-area etc. Updated by area/updateName() GLOBAL_LIST_EMPTY(sortedAreas) /// An association from typepath to area instance. Only includes areas with `unique` set. -GLOBAL_LIST_EMPTY_TYPED(areas_by_type, /area) +GLOBAL_LIST_EMPTY(areas_by_type) GLOBAL_LIST_EMPTY(all_abstract_markers) diff --git a/code/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm index 3a026d2aa5..626bba9fc3 100644 --- a/code/_globalvars/lists/poll_ignore.dm +++ b/code/_globalvars/lists/poll_ignore.dm @@ -13,8 +13,6 @@ #define POLL_IGNORE_GOLEM "golem" #define POLL_IGNORE_SWARMER "swarmer" #define POLL_IGNORE_DRONE "drone" -#define POLL_IGNORE_DEMON "demon" -#define POLL_IGNORE_WIZARD "wizard" #define POLL_IGNORE_CLONE "clone" GLOBAL_LIST_INIT(poll_ignore_desc, list( @@ -31,8 +29,6 @@ GLOBAL_LIST_INIT(poll_ignore_desc, list( POLL_IGNORE_GOLEM = "Golems", POLL_IGNORE_SWARMER = "Swarmer shells", POLL_IGNORE_DRONE = "Drone shells", - POLL_IGNORE_DEMON = "Demons", - POLL_IGNORE_WIZARD = "Wizards", POLL_IGNORE_CLONE = "Defective/SDGF clones" )) GLOBAL_LIST_INIT(poll_ignore, init_poll_ignore()) diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index c3db8552c6..1b7cade71f 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -12,7 +12,6 @@ SUBSYSTEM_DEF(persistence) var/list/obj/structure/chisel_message/chisel_messages = list() var/list/saved_messages = list() var/list/saved_modes = list(1,2,3) - var/list/saved_threat_levels = list(1,1,1) var/list/saved_maps var/list/saved_trophies = list() var/list/spawned_objects = list() @@ -28,7 +27,6 @@ SUBSYSTEM_DEF(persistence) LoadChiselMessages() LoadTrophies() LoadRecentModes() - LoadRecentThreats() LoadRecentMaps() LoadPhotoPersistence() if(CONFIG_GET(flag/use_antag_rep)) @@ -168,15 +166,6 @@ SUBSYSTEM_DEF(persistence) return saved_modes = json["data"] -/datum/controller/subsystem/persistence/proc/LoadRecentThreats() - var/json_file = file("data/RecentThreatLevels.json") - if(!fexists(json_file)) - return - var/list/json = json_decode(file2text(json_file)) - if(!json) - return - saved_threat_levels = json["data"] - /datum/controller/subsystem/persistence/proc/LoadRecentMaps() var/json_file = file("data/RecentMaps.json") if(!fexists(json_file)) @@ -227,7 +216,6 @@ SUBSYSTEM_DEF(persistence) CollectSecretSatchels() CollectTrophies() CollectRoundtype() - CollectThreatLevel() RecordMaps() SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION. if(CONFIG_GET(flag/use_antag_rep)) @@ -384,18 +372,6 @@ SUBSYSTEM_DEF(persistence) fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) -/datum/controller/subsystem/persistence/proc/CollectThreatLevel() - if(istype(SSticker.mode, /datum/game_mode/dynamic)) - var/datum/game_mode/dynamic/mode = SSticker.mode - saved_threat_levels[3] = saved_threat_levels[2] - saved_threat_levels[2] = saved_threat_levels [1] - saved_threat_levels[1] = mode.threat_level - var/json_file = file("data/RecentThreatLevels.json") - var/list/file_data = list() - file_data["data"] = saved_threat_levels - fdel(json_file) - WRITE_FILE(json_file, json_encode(file_data)) - /datum/controller/subsystem/persistence/proc/RecordMaps() saved_maps = saved_maps?.len ? list("[SSmapping.config.map_name]") | saved_maps : list("[SSmapping.config.map_name]") var/json_file = file("data/RecentMaps.json") diff --git a/code/controllers/subsystem/vis_overlays.dm b/code/controllers/subsystem/vis_overlays.dm index 0635709074..107d65a558 100644 --- a/code/controllers/subsystem/vis_overlays.dm +++ b/code/controllers/subsystem/vis_overlays.dm @@ -29,8 +29,8 @@ SUBSYSTEM_DEF(vis_overlays) return //the "thing" var can be anything with vis_contents which includes images -/datum/controller/subsystem/vis_overlays/proc/add_vis_overlay(atom/movable/thing, icon, iconstate, layer, plane, dir, alpha = 255, add_appearance_flags = NONE) - . = "[icon]|[iconstate]|[layer]|[plane]|[dir]|[alpha]|[add_appearance_flags]" +/datum/controller/subsystem/vis_overlays/proc/add_vis_overlay(atom/movable/thing, icon, iconstate, layer, plane, dir, alpha=255) + . = "[icon]|[iconstate]|[layer]|[plane]|[dir]|[alpha]" var/obj/effect/overlay/vis/overlay = vis_overlay_cache[.] if(!overlay) overlay = new @@ -40,7 +40,6 @@ SUBSYSTEM_DEF(vis_overlays) overlay.plane = plane overlay.dir = dir overlay.alpha = alpha - overlay.appearance_flags |= add_appearance_flags vis_overlay_cache[.] = overlay else overlay.unused = 0 @@ -65,12 +64,10 @@ SUBSYSTEM_DEF(vis_overlays) UnregisterSignal(thing, COMSIG_ATOM_DIR_CHANGE) /datum/controller/subsystem/vis_overlays/proc/rotate_vis_overlay(atom/thing, old_dir, new_dir) - if(old_dir == new_dir) - return var/rotation = dir2angle(old_dir) - dir2angle(new_dir) var/list/overlays_to_remove = list() for(var/i in thing.managed_vis_overlays) var/obj/effect/overlay/vis/overlay = i - add_vis_overlay(thing, overlay.icon, overlay.icon_state, overlay.layer, overlay.plane, turn(overlay.dir, rotation), overlay.alpha, overlay.appearance_flags) + add_vis_overlay(thing, overlay.icon, overlay.icon_state, overlay.layer, overlay.plane, turn(overlay.dir, rotation)) overlays_to_remove += overlay remove_vis_overlay(thing, overlays_to_remove) diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index dee10e4998..50be61f91d 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -153,10 +153,6 @@ SUBSYSTEM_DEF(vote) if(SSticker.current_state > GAME_STATE_PREGAME)//Don't change the mode if the round already started. return message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.") GLOB.master_mode = "dynamic" - if("extended" in choices) - if(. == "extended") - GLOB.dynamic_forced_extended = TRUE // we still do the rest of the stuff - choices[PEACE] += choices["extended"] var/mean = 0 var/voters = 0 for(var/client/c in GLOB.clients) @@ -257,11 +253,7 @@ SUBSYSTEM_DEF(vote) if("roundtype") //CIT CHANGE - adds the roundstart secret/extended vote choices.Add("secret", "extended") if("dynamic") - var/saved_threats = SSpersistence.saved_threat_levels - if((saved_threats[1]+saved_threats[2]+saved_threats[3])>150) - choices.Add("extended",PEACE,CHAOS) - else - choices.Add(PEACE,CHAOS) + choices.Add(PEACE,CHAOS) if("custom") question = stripped_input(usr,"What is the vote for?") if(!question) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index dd189137a5..a92ae9e629 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -309,7 +309,6 @@ else var/datum/numbered_display/ND = .[I.type] ND.number++ - . = sortTim(., /proc/cmp_numbered_displays_name_asc, associative = TRUE) //This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. /datum/component/storage/proc/orient2hud(mob/user, maxcolumns) diff --git a/code/datums/martial.dm b/code/datums/martial.dm index 26a709590c..d119759efc 100644 --- a/code/datums/martial.dm +++ b/code/datums/martial.dm @@ -11,7 +11,6 @@ var/restraining = 0 //used in cqc's disarm_act to check if the disarmed is being restrained and so whether they should be put in a chokehold or not var/help_verb var/no_guns = FALSE - var/pacifism_check = TRUE //are the martial arts combos/attacks unable to be used by pacifist. var/allow_temp_override = TRUE //if this martial art can be overridden by temporary martial arts /datum/martial_art/proc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index b98bc4f951..7399528e1c 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -1,7 +1,6 @@ /datum/martial_art/boxing name = "Boxing" id = MARTIALART_BOXING - pacifism_check = FALSE //Let's pretend pacifists can boxe the heck out of other people, it only deals stamina damage right now. /datum/martial_art/boxing/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) to_chat(A, "Can't disarm while boxing!") @@ -17,15 +16,14 @@ var/atk_verb = pick("left hook","right hook","straight punch") - var/damage = rand(10, 13) - var/extra_damage = rand(A.dna.species.punchdamagelow, A.dna.species.punchdamagehigh) - if(extra_damage == A.dna.species.punchdamagelow) + var/damage = rand(5, 8) + A.dna.species.punchdamagelow + if(!damage) playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) D.visible_message("[A] has attempted to [atk_verb] [D]!", \ "[A] has attempted to [atk_verb] [D]!", null, COMBAT_MESSAGE_RANGE) log_combat(A, D, "attempted to hit", atk_verb) - return TRUE - damage += extra_damage + return 0 + var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected)) var/armor_block = D.run_armor_check(affecting, "melee") diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm index 73173a4a9a..c7644997ee 100644 --- a/code/datums/martial/cqc.dm +++ b/code/datums/martial/cqc.dm @@ -124,8 +124,6 @@ add_to_streak("G",D) if(check_streak(A,D)) return TRUE - if(A == D) // no self grab. - return FALSE if(A.grab_state >= GRAB_AGGRESSIVE) D.grabbedby(A, 1) else diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index 4e8dacaef9..6379d481ca 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -19,9 +19,6 @@ owner.visible_message("[owner] assumes a neutral stance.", "Your next attack is cleared.") H.mind.martial_art.streak = "" else - if(HAS_TRAIT(H, TRAIT_PACIFISM)) - to_chat(H, "You don't want to harm other people!") - return owner.visible_message("[owner] assumes the Neck Chop stance!", "Your next attack will be a Neck Chop.") H.mind.martial_art.streak = "neck_chop" @@ -39,9 +36,6 @@ owner.visible_message("[owner] assumes a neutral stance.", "Your next attack is cleared.") H.mind.martial_art.streak = "" else - if(HAS_TRAIT(H, TRAIT_PACIFISM)) - to_chat(H, "You don't want to harm other people!") - return owner.visible_message("[owner] assumes the Leg Sweep stance!", "Your next attack will be a Leg Sweep.") H.mind.martial_art.streak = "leg_sweep" @@ -59,9 +53,6 @@ owner.visible_message("[owner] assumes a neutral stance.", "Your next attack is cleared.") H.mind.martial_art.streak = "" else - if(HAS_TRAIT(H, TRAIT_PACIFISM)) - to_chat(H, "You don't want to harm other people!") - return owner.visible_message("[owner] assumes the Lung Punch stance!", "Your next attack will be a Lung Punch.") H.mind.martial_art.streak = "quick_choke"//internal name for lung punch @@ -154,6 +145,8 @@ return 1 /datum/martial_art/krav_maga/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + if(check_streak(A,D)) + return 1 var/obj/item/I = null if(prob(60)) I = D.get_active_held_item() diff --git a/code/datums/martial/psychotic_brawl.dm b/code/datums/martial/psychotic_brawl.dm index 45d73353f9..34301516dc 100644 --- a/code/datums/martial/psychotic_brawl.dm +++ b/code/datums/martial/psychotic_brawl.dm @@ -1,7 +1,6 @@ /datum/martial_art/psychotic_brawling name = "Psychotic Brawling" id = MARTIALART_PSYCHOBRAWL - pacifism_check = FALSE //Quite uncontrollable and unpredictable, people will still end up harming others with it. /datum/martial_art/psychotic_brawling/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) return psycho_attack(A,D) diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index f89374dc2a..801e8c8c7a 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -105,8 +105,6 @@ add_to_streak("G",D) if(check_streak(A,D)) return 1 - if(A == D) //no self grab stun - return FALSE if(A.grab_state >= GRAB_AGGRESSIVE) D.grabbedby(A, 1) else diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index c967779d03..81ec0bf977 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -49,9 +49,6 @@ if(owner.incapacitated()) to_chat(owner, "You can't WRESTLE while you're OUT FOR THE COUNT.") return - if(HAS_TRAIT(owner, TRAIT_PACIFISM)) - to_chat(owner, "You are too HIPPIE to WRESTLE other living beings!") - return owner.visible_message("[owner] prepares to BODY SLAM!", "Your next attack will be a BODY SLAM.") var/mob/living/carbon/human/H = owner H.mind.martial_art.streak = "slam" @@ -64,9 +61,6 @@ if(owner.incapacitated()) to_chat(owner, "You can't WRESTLE while you're OUT FOR THE COUNT.") return - if(HAS_TRAIT(owner, TRAIT_PACIFISM)) - to_chat(owner, "You are too HIPPIE to WRESTLE other living beings!") - return owner.visible_message("[owner] prepares to THROW!", "Your next attack will be a THROW.") var/mob/living/carbon/human/H = owner H.mind.martial_art.streak = "throw" @@ -79,9 +73,6 @@ if(owner.incapacitated()) to_chat(owner, "You can't WRESTLE while you're OUT FOR THE COUNT.") return - if(HAS_TRAIT(owner, TRAIT_PACIFISM)) - to_chat(owner, "You are too HIPPIE to WRESTLE other living beings!") - return owner.visible_message("[owner] prepares to KICK!", "Your next attack will be a KICK.") var/mob/living/carbon/human/H = owner H.mind.martial_art.streak = "kick" @@ -94,9 +85,6 @@ if(owner.incapacitated()) to_chat(owner, "You can't WRESTLE while you're OUT FOR THE COUNT.") return - if(HAS_TRAIT(owner, TRAIT_PACIFISM)) - to_chat(owner, "You are too HIPPIE to WRESTLE other living beings!") - return owner.visible_message("[owner] prepares to STRIKE!", "Your next attack will be a STRIKE.") var/mob/living/carbon/human/H = owner H.mind.martial_art.streak = "strike" @@ -109,9 +97,6 @@ if(owner.incapacitated()) to_chat(owner, "You can't WRESTLE while you're OUT FOR THE COUNT.") return - if(HAS_TRAIT(owner, TRAIT_PACIFISM)) - to_chat(owner, "You are too HIPPIE to WRESTLE other living beings!") - return owner.visible_message("[owner] prepares to LEG DROP!", "Your next attack will be a LEG DROP.") var/mob/living/carbon/human/H = owner H.mind.martial_art.streak = "drop" @@ -448,8 +433,8 @@ /datum/martial_art/wrestling/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) if(check_streak(A,D)) return 1 - if(A.pulling == D || A == D) // don't stun grab yoursel - return FALSE + if(A.pulling == D) + return 1 A.start_pulling(D) D.visible_message("[A] gets [D] in a cinch!", \ "[A] gets [D] in a cinch!") diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index da379b9851..8386b59d97 100755 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -28,16 +28,16 @@ var/can_be_admin_equipped = TRUE // Set to FALSE if your outfit requires runtime parameters var/list/chameleon_extras //extra types for chameleon outfit changes, mostly guns -/datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) //to be overridden for customization depending on client prefs,species etc return -/datum/outfit/proc/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/proc/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) //to be overridden for toggling internals, id binding, access etc return -/datum/outfit/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) - pre_equip(H, visualsOnly, preference_source) +/datum/outfit/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE) + pre_equip(H, visualsOnly) //Start with uniform,suit,backpack for additional slots if(uniform) @@ -103,7 +103,7 @@ var/obj/item/clothing/suit/space/hardsuit/HS = H.wear_suit HS.ToggleHelmet() - post_equip(H, visualsOnly, preference_source) + post_equip(H, visualsOnly) if(!visualsOnly) apply_fingerprints(H) diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index 30e53cdee8..76e6268977 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -339,6 +339,10 @@ Credit where due: CLOCKCULTCHANGELOG\ \
\ +
  • Zelus oil: A new reagent. It can be used to heal the faithful to Ratvar, or kill heretics and moreso stun blood cultists,\ + or splashed onto metal sheets to make brass. This chemical can be found in minimal quantities by grinding brass sheets.\ +
  • Brass Flasks:Intended to store Zelus Oil in, but can also be used as fragile single use throwing weapons in a pinch! \ + These are crafted with a single sheet of brass and fit in the Clockwork Cuirass' suit storage.\ Good luck!" /obj/item/paper/servant_primer/Initialize() diff --git a/code/game/gamemodes/clown_ops/clown_ops.dm b/code/game/gamemodes/clown_ops/clown_ops.dm index 49a336e16a..66de72bad2 100644 --- a/code/game/gamemodes/clown_ops/clown_ops.dm +++ b/code/game/gamemodes/clown_ops/clown_ops.dm @@ -53,7 +53,7 @@ /datum/outfit/syndicate/clownop/no_crystals tc = 0 -/datum/outfit/syndicate/clownop/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/syndicate/clownop/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) return diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 25edd0c68b..83a3debfdc 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -409,7 +409,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) message_admins("Drafting players for forced ruleset [rule.name].") log_game("DYNAMIC: Drafting players for forced ruleset [rule.name].") rule.mode = src - rule.acceptable(roundstart_pop_ready, threat_level) // Assigns some vars in the modes, running it here for consistency + rule.acceptable(GLOB.player_list.len, threat_level) // Assigns some vars in the modes, running it here for consistency rule.candidates = candidates.Copy() rule.trim_candidates() if (rule.ready(TRUE)) @@ -421,7 +421,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) return TRUE var/list/drafted_rules = list() for (var/datum/dynamic_ruleset/roundstart/rule in roundstart_rules) - if (rule.acceptable(roundstart_pop_ready, threat_level) && threat >= rule.cost) // If we got the population and threat required + if (rule.acceptable(GLOB.player_list.len, threat_level) && threat >= rule.cost) // If we got the population and threat required rule.candidates = candidates.Copy() rule.trim_candidates() if (rule.ready() && rule.candidates.len > 0) @@ -429,12 +429,12 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) if(!drafted_rules.len) message_admins("Not enough threat level for roundstart antags!") log_game("DYNAMIC: Not enough threat level for roundstart antags!") - var/indice_pop = min(10,round(roundstart_pop_ready/pop_per_requirement)+1) + var/indice_pop = min(10,round(GLOB.player_list.len/pop_per_requirement)+1) extra_rulesets_amount = 0 if (GLOB.dynamic_classic_secret) extra_rulesets_amount = 0 else - if (roundstart_pop_ready > GLOB.dynamic_high_pop_limit) + if (GLOB.player_list.len > GLOB.dynamic_high_pop_limit) message_admins("High Population Override is in effect! Threat Level will have more impact on which roles will appear, and player population less.") log_game("DYNAMIC: High Population Override is in effect! Threat Level will have more impact on which roles will appear, and player population less.") if (threat_level > high_pop_second_rule_req) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm index 4ac8cc91d3..a20022cb71 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm @@ -143,6 +143,7 @@ repeatable_weight_decrease = 2 requirements = list(60,50,40,30,30,30,30,30,30,30) high_population_requirement = 30 + repeatable = TRUE /datum/dynamic_ruleset/event/meteor_wave/ready() if(mode.threat_level > 40 && mode.threat >= 25 && prob(20)) @@ -269,7 +270,7 @@ repeatable = TRUE /datum/dynamic_ruleset/event/processor_overload - name = "Processor Overload" + name = "Processer Overload" config_tag = "processor_overload" typepath = /datum/round_event/processor_overload cost = 4 diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 41de85f7ee..550ef043a0 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -107,11 +107,11 @@ candidates = pollGhostCandidates("The mode is looking for volunteers to become a [name]", antag_flag, SSticker.mode, antag_flag, poll_time = 300) - if(!candidates || candidates.len <= required_candidates) - message_admins("The ruleset [name] did not receive enough applications.") - log_game("DYNAMIC: The ruleset [name] did not receive enough applications.") + if(!candidates || candidates.len <= 0) + message_admins("The ruleset [name] received no applications.") + log_game("DYNAMIC: The ruleset [name] received no applications.") mode.refund_threat(cost) - mode.log_threat("Rule [name] refunded [cost] (not receive enough applications)",verbose=TRUE) + mode.log_threat("Rule [name] refunded [cost] (no applications)",verbose=TRUE) mode.executed_rules -= src return @@ -150,7 +150,7 @@ finish_setup(new_character, i) assigned += applicant - notify_ghosts("[new_character] has been picked for the ruleset [name]!", source = new_character, action = NOTIFY_ORBIT) + notify_ghosts("[new_character] has been picked for the ruleset [name]!", source = new_character, action = NOTIFY_ORBIT, header="Something Interesting!") /datum/dynamic_ruleset/midround/from_ghosts/proc/generate_ruleset_body(mob/applicant) var/mob/living/carbon/human/new_character = makeBody(applicant) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index 56b02a1364..16e48ada4a 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -281,7 +281,7 @@ requirements = list(100,90,80,70,60,50,50,50,50,50) high_population_requirement = 50 flags = HIGHLANDER_RULESET - antag_cap = list(1,1,2,3,4,5,5,5,5,5) + antag_cap = list(2,2,2,3,3,3,4,4,5,5) var/datum/team/nuclear/nuke_team /datum/dynamic_ruleset/roundstart/nuclear/ready(forced = FALSE) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 632d59c84d..1767d468ec 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -144,7 +144,7 @@ /datum/outfit/syndicate/no_crystals tc = 0 -/datum/outfit/syndicate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/syndicate/post_equip(mob/living/carbon/human/H) var/obj/item/radio/R = H.ears R.set_frequency(FREQ_SYNDICATE) R.freqlock = TRUE diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 1bafa73aaa..11935e2bfc 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -17,7 +17,13 @@ network += lowertext(i) /obj/machinery/computer/security/check_eye(mob/user) - if(!can_interact(user) || !(user in watchers) || !watchers[user]) + if(CHECK_BITFIELD(stat, NOPOWER|BROKEN) || is_blind(user) || !in_view_range(user, src) || !user.canUseTopic(src, !issilicon(user), FALSE)) + user.unset_machine() + return + if(!(user in watchers)) + user.unset_machine() + return + if(!watchers[user]) user.unset_machine() return var/obj/machinery/camera/C = watchers[user] @@ -35,50 +41,55 @@ M.unset_machine() //to properly reset the view of the users if the console is deleted. return ..() -/obj/machinery/computer/security/can_interact(mob/user) - if((!issilicon(user) && !Adjacent(user)) || is_blind(user) || !in_view_range(user, src)) - return FALSE - return ..() - -/obj/machinery/computer/security/interact(mob/user, special_state) +/obj/machinery/computer/security/attack_hand(mob/user) . = ..() - if (ismob(user) && !isliving(user)) // ghosts don't need cameras + if(.) + return + if(stat) return if (!network) - CRASH("No camera network") + throw EXCEPTION("No camera network") user.unset_machine() - return FALSE + return if (!(islist(network))) - CRASH("Camera network is not a list") + throw EXCEPTION("Camera network is not a list") user.unset_machine() - return FALSE + return + if(..()) + user.unset_machine() + return var/list/camera_list = get_available_cameras() if(!(user in watchers)) for(var/Num in camera_list) var/obj/machinery/camera/CAM = camera_list[Num] - if(istype(CAM) && CAM.can_use()) - watchers[user] = CAM //let's give the user the first usable camera, and then let him change to the camera he wants. - break + if(istype(CAM)) + if(CAM.can_use()) + watchers[user] = CAM //let's give the user the first usable camera, and then let him change to the camera he wants. + break if(!(user in watchers)) user.unset_machine() // no usable camera on the network, we disconnect the user from the computer. - return FALSE + return playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) use_camera_console(user) /obj/machinery/computer/security/proc/use_camera_console(mob/user) var/list/camera_list = get_available_cameras() var/t = input(user, "Which camera should you change to?") as null|anything in camera_list - if(!src || user.machine != src) //while we were choosing we got disconnected from our computer or are using another machine. + if(user.machine != src) //while we were choosing we got disconnected from our computer or are using another machine. return - if(!t || t == "Cancel") + if(!t) user.unset_machine() playsound(src, 'sound/machines/terminal_off.ogg', 25, 0) return var/obj/machinery/camera/C = camera_list[t] - if(!C || !C.can_use() || !can_interact(user)) + if(t == "Cancel") + user.unset_machine() + playsound(src, 'sound/machines/terminal_off.ogg', 25, 0) + return + if(!C || !C.can_use() || CHECK_BITFIELD(stat, NOPOWER|BROKEN) || is_blind(user) || !in_view_range(user, src) || !user.canUseTopic(src, !issilicon(user), FALSE)) user.unset_machine() return FALSE diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 19cd5d66c4..8d02c98d24 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -163,6 +163,8 @@ RLD var/use_one_access = 0 //If the airlock should require ALL or only ONE of the listed accesses. var/delay_mod = 1 var/canRturf = FALSE //Variable for R walls to deconstruct them + var/adjacency_check = TRUE //Wheter it checks if the tool has to be in our hands or not. Wsed for the aux base construction drone's internal RCD + /obj/item/construction/rcd/suicide_act(mob/user) user.visible_message("[user] sets the RCD to 'Wall' and points it down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide..") @@ -225,10 +227,11 @@ RLD t1 += "

    Close

    \n" - var/datum/browser/popup = new(user, "rcd_access", "Access Control", 900, 500, src) + var/datum/browser/popup = new(user, "rcd_access", "Access Control", 900, 500) popup.set_content(t1) popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() + onclose(user, "rcd_access") /obj/item/construction/rcd/Topic(href, href_list) ..() @@ -272,7 +275,7 @@ RLD /obj/item/construction/rcd/proc/check_menu(mob/living/user) if(!istype(user)) return FALSE - if(user.incapacitated() || !user.Adjacent(src)) + if(user.incapacitated() || (adjacency_check && !user.Adjacent(src))) return FALSE return TRUE @@ -285,7 +288,7 @@ RLD "SOUTH" = image(icon = 'icons/mob/radial.dmi', icon_state = "csouth"), "WEST" = image(icon = 'icons/mob/radial.dmi', icon_state = "cwest") ) - var/computerdirs = show_radial_menu(user, src, computer_dirs, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/computerdirs = show_radial_menu(user, src, computer_dirs, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = adjacency_check, tooltips = TRUE) if(!check_menu(user)) return switch(computerdirs) @@ -344,13 +347,13 @@ RLD "External Maintenance" = get_airlock_image(/obj/machinery/door/airlock/maintenance/external/glass) ) - var/airlockcat = show_radial_menu(user, src, solid_or_glass_choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE) + var/airlockcat = show_radial_menu(user, src, solid_or_glass_choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = adjacency_check) if(!check_menu(user)) return switch(airlockcat) if("Solid") if(advanced_airlock_setting == 1) - var/airlockpaint = show_radial_menu(user, src, solid_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE) + var/airlockpaint = show_radial_menu(user, src, solid_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = adjacency_check) if(!check_menu(user)) return switch(airlockpaint) @@ -395,7 +398,7 @@ RLD if("Glass") if(advanced_airlock_setting == 1) - var/airlockpaint = show_radial_menu(user, src , glass_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE) + var/airlockpaint = show_radial_menu(user, src , glass_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = adjacency_check) if(!check_menu(user)) return switch(airlockpaint) diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 0ff54d884f..d86354f195 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -112,11 +112,11 @@ throw_range = 7 attack_verb = list("HONKED") var/moodlet = "honk" //used to define which kind of moodlet is added to the honked target - var/list/honksounds = list('sound/items/bikehorn.ogg' = 1) + var/honksound = 'sound/items/bikehorn.ogg' -/obj/item/bikehorn/ComponentInitialize() +/obj/item/bikehorn/Initialize() . = ..() - AddComponent(/datum/component/squeak, honksounds, 50) + AddComponent(/datum/component/squeak, list(honksound=1), 50) /obj/item/bikehorn/attack(mob/living/carbon/M, mob/living/carbon/user) SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, moodlet, /datum/mood_event/honk) @@ -124,7 +124,7 @@ /obj/item/bikehorn/suicide_act(mob/user) user.visible_message("[user] solemnly points the horn at [user.p_their()] temple! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(src, pickweight(honksounds), 50, 1) + playsound(src, 'sound/items/bikehorn.ogg', 50, 1) return (BRUTELOSS) //air horn @@ -132,7 +132,7 @@ name = "air horn" desc = "Damn son, where'd you find this?" icon_state = "air_horn" - honksounds = list('sound/items/airhorn2.ogg' = 1) + honksound = 'sound/items/airhorn2.ogg' //golden bikehorn /obj/item/bikehorn/golden diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 246dba9cb9..0c9ac4bb60 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -162,33 +162,31 @@ GLOBAL_LIST_EMPTY(PDAs) /obj/item/pda/equipped(mob/user, slot) . = ..() - if(equipped || !user.client) + if(equipped) return - update_style(user.client) - -/obj/item/pda/proc/update_style(client/C) - background_color = C.prefs.pda_color - switch(C.prefs.pda_style) - if(MONO) - font_index = MODE_MONO - font_mode = FONT_MONO - if(SHARE) - font_index = MODE_SHARE - font_mode = FONT_SHARE - if(ORBITRON) - font_index = MODE_ORBITRON - font_mode = FONT_ORBITRON - if(VT) - font_index = MODE_VT - font_mode = FONT_VT - else - font_index = MODE_MONO - font_mode = FONT_MONO - var/pref_skin = GLOB.pda_reskins[C.prefs.pda_skin] - if(icon != pref_skin) - icon = pref_skin - update_icon(FALSE, TRUE) - equipped = TRUE + if(user.client) + background_color = user.client.prefs.pda_color + switch(user.client.prefs.pda_style) + if(MONO) + font_index = MODE_MONO + font_mode = FONT_MONO + if(SHARE) + font_index = MODE_SHARE + font_mode = FONT_SHARE + if(ORBITRON) + font_index = MODE_ORBITRON + font_mode = FONT_ORBITRON + if(VT) + font_index = MODE_VT + font_mode = FONT_VT + else + font_index = MODE_MONO + font_mode = FONT_MONO + var/pref_skin = GLOB.pda_reskins[user.client.prefs.pda_skin] + if(icon != pref_skin) + icon = pref_skin + update_icon(FALSE, TRUE) + equipped = TRUE /obj/item/pda/proc/update_label() name = "PDA-[owner] ([ownjob])" //Name generalisation diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index f6e169a4d5..a79eb299da 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -60,7 +60,7 @@ . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.allow_big_nesting = TRUE - STR.max_w_class = WEIGHT_CLASS_BULKY + STR.max_w_class = WEIGHT_CLASS_GIGANTIC STR.max_combined_w_class = 35 /obj/item/storage/backpack/holding/suicide_act(mob/living/user) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 1e37de2581..ca7f7fe31a 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -239,8 +239,8 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) /obj/item/storage/toolbox/gold_real name = "golden toolbox" desc = "A larger then normal toolbox made of gold plated plastitanium." + item_state = "gold" icon_state = "gold" - item_state = "toolbox_gold" has_latches = FALSE force = 16 // Less then a spear throwforce = 14 @@ -266,7 +266,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "golden toolbox" desc = "A gold plated toolbox, fancy and harmless due to the gold plating being on cardboard!" icon_state = "gold" - item_state = "toolbox_gold" + item_state = "gold" has_latches = FALSE force = 0 throwforce = 0 diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 223c8e9cf6..84ebc28afa 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -381,13 +381,3 @@ new /obj/item/gun/ballistic/automatic/pistol/m1911/kitchengun(src) new /obj/item/ammo_box/magazine/m45/kitchengun(src) new /obj/item/ammo_box/magazine/m45/kitchengun(src) - - -/obj/item/storage/box/strange_seeds_10pack - -/obj/item/storage/box/strange_seeds_10pack/PopulateContents() - for(var/i in 1 to 10) - new /obj/item/seeds/random(src) - - if(prob(50)) - new /obj/item/seeds/random(src) //oops, an additional packet might have slipped its way into the box \ No newline at end of file diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index d16453e02f..fec17cfa69 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -216,7 +216,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK force = 40 throwforce = 10 - w_class = WEIGHT_CLASS_BULKY + w_class = WEIGHT_CLASS_HUGE hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") block_chance = 50 @@ -427,7 +427,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' item_flags = ABSTRACT | DROPDEL - w_class = WEIGHT_CLASS_BULKY + w_class = WEIGHT_CLASS_HUGE force = 24 throwforce = 0 throw_range = 0 @@ -512,7 +512,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 10 throwforce = 12 attack_verb = list("beat", "smacked") - w_class = WEIGHT_CLASS_BULKY + w_class = WEIGHT_CLASS_HUGE var/homerun_ready = 0 var/homerun_able = 0 total_mass = 2.7 //a regular wooden major league baseball bat weighs somewhere between 2 to 3.4 pounds, according to google diff --git a/code/game/objects/structures/crates_lockers/closets/fitness.dm b/code/game/objects/structures/crates_lockers/closets/fitness.dm index 0adfe77853..ad493dd6f5 100644 --- a/code/game/objects/structures/crates_lockers/closets/fitness.dm +++ b/code/game/objects/structures/crates_lockers/closets/fitness.dm @@ -12,9 +12,6 @@ new /obj/item/clothing/under/shorts/blue(src) new /obj/item/clothing/under/shorts/green(src) new /obj/item/clothing/under/jabroni(src) - new /obj/item/clothing/under/polychromic/shortpants(src) - new /obj/item/clothing/under/polychromic/shortpants(src) - new /obj/item/clothing/under/polychromic/shortpants(src) /obj/structure/closet/boxinggloves diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 9deca71269..b49d0a77d5 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -352,7 +352,6 @@ icon_door = "black" /obj/structure/closet/wardrobe/curator/PopulateContents() - new /obj/item/clothing/accessory/pocketprotector/full(src) new /obj/item/clothing/head/fedora/curator(src) new /obj/item/clothing/suit/curator(src) new /obj/item/clothing/under/rank/curator/treasure_hunter(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index b06073812a..18928424c0 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -11,7 +11,7 @@ new /obj/item/clothing/under/rank/cargo(src) new /obj/item/clothing/under/rank/cargo/skirt(src) new /obj/item/clothing/shoes/sneakers/brown(src) - new /obj/item/radio/headset/heads/qm(src) + new /obj/item/radio/headset/headset_cargo(src) new /obj/item/clothing/suit/fire/firefighter(src) new /obj/item/clothing/gloves/fingerless(src) new /obj/item/megaphone/cargo(src) @@ -23,4 +23,3 @@ new /obj/item/circuitboard/machine/techfab/department/cargo(src) new /obj/item/storage/photo_album/QM(src) new /obj/item/circuitboard/machine/ore_silo(src) - new /obj/item/clothing/suit/hooded/wintercoat/qm(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 9abd81b787..f173ac0662 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -34,7 +34,6 @@ new /obj/item/storage/photo_album/CE(src) new /obj/item/storage/lockbox/medal/engineering(src) new /obj/item/construction/rcd/loaded/upgraded(src) - new /obj/item/clothing/suit/hooded/wintercoat/ce(src) /obj/structure/closet/secure_closet/engineering_electrical name = "electrical supplies locker" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 9c4b58cd20..0f810225b3 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -71,7 +71,7 @@ new /obj/item/storage/belt/medical(src) new /obj/item/healthanalyzer/advanced(src) new /obj/item/assembly/flash/handheld(src) - new /obj/item/storage/hypospraykit/cmo(src) +// new /obj/item/reagent_containers/hypospray/CMO(src) // CITADEL EDIT comments out the hypospray mk I. the MK II kit is modularized new /obj/item/autosurgeon/cmo(src) new /obj/item/door_remote/chief_medical_officer(src) new /obj/item/clothing/neck/petcollar(src) @@ -81,7 +81,6 @@ new /obj/item/circuitboard/machine/techfab/department/medical(src) new /obj/item/storage/photo_album/CMO(src) new /obj/item/storage/lockbox/medal/medical(src) - new /obj/item/clothing/suit/hooded/wintercoat/cmo(src) /obj/structure/closet/secure_closet/animal name = "animal control" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 97c0c8f3e2..efcc2aa7ca 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -30,4 +30,3 @@ new /obj/item/door_remote/research_director(src) new /obj/item/circuitboard/machine/techfab/department/science(src) new /obj/item/storage/photo_album/RD(src) - new /obj/item/clothing/suit/hooded/wintercoat/rd(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index e87cb22f31..3cb8ceb22b 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -61,7 +61,6 @@ new /obj/item/door_remote/civillian(src) new /obj/item/circuitboard/machine/techfab/department/service(src) new /obj/item/storage/photo_album/HoP(src) - new /obj/item/clothing/suit/hooded/wintercoat/hop(src) /obj/structure/closet/secure_closet/hos name = "\proper head of security's locker" req_access = list(ACCESS_HOS) @@ -95,7 +94,6 @@ new /obj/item/pinpointer/nuke(src) new /obj/item/circuitboard/machine/techfab/department/security(src) new /obj/item/storage/photo_album/HoS(src) - new /obj/item/clothing/suit/hooded/wintercoat/hos(src) /obj/structure/closet/secure_closet/warden name = "\proper warden's locker" req_access = list(ACCESS_ARMORY) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index 9d554181eb..d83922d708 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -142,21 +142,28 @@ new /obj/item/clothing/suit/jacket(src) if(prob(40)) new /obj/item/clothing/suit/jacket(src) - new /obj/item/clothing/under/polychromic/jumpsuit(src) - new /obj/item/clothing/under/polychromic/jumpsuit(src) - new /obj/item/clothing/under/polychromic/jumpsuit(src) - new /obj/item/clothing/under/polychromic/shirt(src) - new /obj/item/clothing/under/polychromic/shirt(src) - new /obj/item/clothing/under/polychromic/shirt(src) - new /obj/item/clothing/under/polychromic/kilt(src) - new /obj/item/clothing/under/polychromic/kilt(src) - new /obj/item/clothing/under/polychromic/kilt(src) - new /obj/item/clothing/under/polychromic/skirt(src) - new /obj/item/clothing/under/polychromic/skirt(src) - new /obj/item/clothing/under/polychromic/skirt(src) - new /obj/item/clothing/under/polychromic/shorts(src) - new /obj/item/clothing/under/polychromic/shorts(src) - new /obj/item/clothing/under/polychromic/shorts(src) + new /obj/item/clothing/under/color/white(src) + new /obj/item/clothing/under/skirt/color/white(src) + new /obj/item/clothing/under/color/blue(src) + new /obj/item/clothing/under/skirt/color/blue(src) + new /obj/item/clothing/under/color/yellow(src) + new /obj/item/clothing/under/skirt/color/yellow(src) + new /obj/item/clothing/under/color/green(src) + new /obj/item/clothing/under/skirt/color/green(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/under/skirt/color/orange(src) + new /obj/item/clothing/under/color/pink(src) + new /obj/item/clothing/under/skirt/color/pink(src) + new /obj/item/clothing/under/color/red(src) + new /obj/item/clothing/under/skirt/color/red(src) + new /obj/item/clothing/under/color/darkblue(src) + new /obj/item/clothing/under/skirt/color/darkblue(src) + new /obj/item/clothing/under/color/teal(src) + new /obj/item/clothing/under/skirt/color/teal(src) + new /obj/item/clothing/under/color/lightpurple(src) + new /obj/item/clothing/under/skirt/color/lightpurple(src) + new /obj/item/clothing/under/color/green(src) + new /obj/item/clothing/under/skirt/color/green(src) new /obj/item/clothing/mask/bandana/red(src) new /obj/item/clothing/mask/bandana/red(src) new /obj/item/clothing/mask/bandana/blue(src) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index e3585b601e..10f1f30e13 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -422,7 +422,7 @@ implants = list(/obj/item/implant/weapons_auth) id = /obj/item/card/id/syndicate -/datum/outfit/syndicate_empty/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/syndicate_empty/post_equip(mob/living/carbon/human/H) H.faction |= ROLE_SYNDICATE /obj/effect/mob_spawn/human/syndicate/battlecruiser diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 4d56b1ef6f..609384cdda 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -9,13 +9,11 @@ armor = list("melee" = 0, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20) var/obj/item/holosign_creator/projector -/obj/structure/holosign/Initialize(mapload, source_projector) - . = ..() +/obj/structure/holosign/New(loc, source_projector) if(source_projector) projector = source_projector projector.signs += src - alpha = 0 - SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, plane, dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it + ..() /obj/structure/holosign/Destroy() if(projector) @@ -73,8 +71,10 @@ desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects from passing through, gas is kept out." icon_state = "holo_firelock" density = FALSE + layer = ABOVE_MOB_LAYER anchored = TRUE CanAtmosPass = ATMOS_PASS_NO + layer = ABOVE_MOB_LAYER alpha = 150 /obj/structure/holosign/barrier/atmos/Initialize() @@ -100,6 +100,7 @@ desc = "A holobarrier that uses biometrics to detect human viruses. Denies passing to personnel with easily-detected, malicious viruses. Good for quarantines." icon_state = "holo_medical" alpha = 125 //lazy :) + layer = ABOVE_MOB_LAYER var/force_allaccess = FALSE var/buzzcd = 0 diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index fd4f3abf15..e3862ed924 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -6,16 +6,12 @@ armor = list("melee" = 100, "bullet" = 80, "laser" = 80, "energy" = 100, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 50, "acid" = 50) density = FALSE anchored = TRUE + layer = ABOVE_MOB_LAYER CanAtmosPass = ATMOS_PASS_NO /obj/structure/plasticflaps/opaque opacity = TRUE -/obj/structure/plasticflaps/Initialize() - . = ..() - alpha = 0 - SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, plane, dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it - /obj/structure/plasticflaps/examine(mob/user) . = ..() if(anchored) diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index 3723b99f4e..6eaa4320ca 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -56,7 +56,7 @@ if(used) to_chat(H, "You already used this contract!") return - var/list/candidates = pollCandidatesForMob("Do you want to play as a wizard's [href_list["school"]] apprentice?", ROLE_WIZARD, null, ROLE_WIZARD, 150, src, ignore_category = POLL_IGNORE_WIZARD) + var/list/candidates = pollCandidatesForMob("Do you want to play as a wizard's [href_list["school"]] apprentice?", ROLE_WIZARD, null, ROLE_WIZARD, 150, src) if(LAZYLEN(candidates)) if(QDELETED(src)) return @@ -241,7 +241,7 @@ return if(used) return - var/list/candidates = pollCandidatesForMob("Do you want to play as a [initial(demon_type.name)]?", ROLE_ALIEN, null, ROLE_ALIEN, 50, src, ignore_category = POLL_IGNORE_DEMON) + var/list/candidates = pollCandidatesForMob("Do you want to play as a [initial(demon_type.name)]?", ROLE_ALIEN, null, ROLE_ALIEN, 50, src) if(LAZYLEN(candidates)) if(used || QDELETED(src)) return diff --git a/code/modules/antagonists/abductor/equipment/abduction_outfits.dm b/code/modules/antagonists/abductor/equipment/abduction_outfits.dm index 7bfadf6f3b..7e03bbf57a 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_outfits.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_outfits.dm @@ -24,7 +24,7 @@ for(var/obj/item/abductor/gizmo/G in B.contents) console.AddGizmo(G) -/datum/outfit/abductor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/abductor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(!visualsOnly) link_to_console(H) @@ -49,7 +49,7 @@ /obj/item/abductor/gizmo = 1 ) -/datum/outfit/abductor/scientist/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/abductor/scientist/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(!visualsOnly) var/obj/item/implant/abductor/beamplant = new diff --git a/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm b/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm index 2f0db73bfc..ebfb219c9a 100644 --- a/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm +++ b/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm @@ -113,7 +113,7 @@ "You start tenderly lifting [skewee] off of [src]...") if(!do_after(user, 60, target = skewee)) skewee.visible_message("[skewee] painfully slides back down [src].") - skewee.say("Oof, ouch owwie!!", forced = "fail brass skewer removal") + skewee.emote("moan") return skewee.visible_message("[skewee] comes free of [src] with a squelching pop!", \ "You come free of [src]!") diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 9b2532c71b..89324f0691 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -165,7 +165,7 @@ owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball(null)) to_chat(owner, "Your service has not gone unrewarded, however. Studying under [master.current.real_name], you have learned powerful, destructive spells. You are able to cast magic missile and fireball.") if(APPRENTICE_BLUESPACE) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) to_chat(owner, "Your service has not gone unrewarded, however. Studying under [master.current.real_name], you have learned reality bending mobility spells. You are able to cast teleport and ethereal jaunt.") if(APPRENTICE_HEALING) diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index bd4e716357..84f08197b4 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -487,7 +487,7 @@ r_pocket = /obj/item/ammo_box/magazine/recharge/ctf r_hand = /obj/item/gun/ballistic/automatic/laser/ctf -/datum/outfit/ctf/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/ctf/post_equip(mob/living/carbon/human/H, visualsOnly=FALSE) if(visualsOnly) return var/list/no_drops = list() @@ -529,7 +529,7 @@ r_hand = /obj/item/gun/energy/laser/instakill/blue shoes = /obj/item/clothing/shoes/jackboots/fast -/datum/outfit/ctf/red/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/ctf/red/post_equip(mob/living/carbon/human/H) ..() var/obj/item/radio/R = H.ears R.set_frequency(FREQ_CTF_RED) @@ -537,7 +537,7 @@ R.independent = TRUE H.dna.species.stunmod = 0 -/datum/outfit/ctf/blue/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/ctf/blue/post_equip(mob/living/carbon/human/H) ..() var/obj/item/radio/R = H.ears R.set_frequency(FREQ_CTF_BLUE) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 0d5fa6bc8a..a0b917a87b 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -440,7 +440,7 @@ uniform = /obj/item/clothing/under/pants/youngfolksjeans id = /obj/item/card/id -/datum/outfit/beachbum/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/beachbum/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) return diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index e91d379ddd..5aaf589393 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2299,6 +2299,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.shirt_color = shirt_color character.socks_color = socks_color + + character.backbag = backbag + character.jumpsuit_style = jumpsuit_style + var/datum/species/chosen_species if(!roundstart_checks || (pref_species.id in GLOB.roundstart_races)) chosen_species = pref_species.type diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 2e643cc05d..90c692c60e 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -49,7 +49,7 @@ if(!(damagetype & (BRUTELOSS | FIRELOSS | TOXLOSS | OXYLOSS) )) adjustOxyLoss(max(200 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) - death(FALSE) + death(FALSE, penalize = TRUE) return diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index ac491c2bc5..6b674c8595 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -14,7 +14,7 @@ /obj/item/clothing/gloves/ComponentInitialize() . = ..() - RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, /atom.proc/clean_blood) + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, /obj/item/clothing/gloves/clean_blood) /obj/item/clothing/gloves/clean_blood(datum/source, strength) . = ..() diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index 1532f50808..88cc7123fd 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -6,7 +6,7 @@ gloves = /obj/item/clothing/gloves/combat ears = /obj/item/radio/headset/headset_cent/alt -/datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -35,7 +35,7 @@ /obj/item/gun/energy/e_gun=1) l_pocket = /obj/item/switchblade -/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) @@ -46,7 +46,7 @@ /datum/outfit/ert/commander/alert name = "ERT Commander - Amber Alert" - + suit = /obj/item/clothing/suit/space/hardsuit/ert/alert glasses = /obj/item/clothing/glasses/thermal/eyepatch backpack_contents = list(/obj/item/storage/box/engineer=1,\ @@ -76,7 +76,7 @@ /obj/item/gun/energy/e_gun/stun=1,\ /obj/item/melee/baton/loaded=1) -/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) @@ -88,7 +88,7 @@ /datum/outfit/ert/security/alert name = "ERT Security - Amber Alert" - + suit = /obj/item/clothing/suit/space/hardsuit/ert/alert/sec backpack_contents = list(/obj/item/storage/box/engineer=1,\ /obj/item/storage/box/handcuffs=1,\ @@ -120,7 +120,7 @@ /obj/item/reagent_containers/hypospray/combat=1,\ /obj/item/gun/medbeam=1) -/datum/outfit/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) @@ -166,7 +166,7 @@ /obj/item/gun/energy/e_gun=1,\ /obj/item/construction/rcd/loaded=1) -/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) @@ -214,7 +214,7 @@ l_hand = /obj/item/storage/toolbox/plastitanium gloves = /obj/item/clothing/gloves/color/yellow -/datum/outfit/ert/greybois/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/ert/greybois/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return var/obj/item/card/id/W = H.wear_id @@ -238,7 +238,7 @@ l_hand = /obj/item/clipboard id = /obj/item/card/id -/datum/outfit/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -288,7 +288,7 @@ /obj/item/reagent_containers/hypospray/combat/heresypurge=1, /obj/item/gun/medbeam=1) -/datum/outfit/ert/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/ert/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) diff --git a/code/modules/clothing/outfits/event.dm b/code/modules/clothing/outfits/event.dm index 0ca2a11c50..347fc5c2d7 100644 --- a/code/modules/clothing/outfits/event.dm +++ b/code/modules/clothing/outfits/event.dm @@ -12,7 +12,7 @@ belt = /obj/item/tank/internals/emergency_oxygen/double id = /obj/item/card/id/gold -/datum/outfit/santa/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/santa/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return H.fully_replace_character_name(H.real_name, "Santa Claus") diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 29fd06dcaf..6c961dc250 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -48,7 +48,7 @@ l_pocket = /obj/item/grenade/chem_grenade/cleaner backpack_contents = list(/obj/item/stack/tile/plasteel=6) -/datum/outfit/tournament/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/tournament/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -97,7 +97,7 @@ /datum/outfit/pirate/space/captain head = /obj/item/clothing/head/helmet/space/pirate -/datum/outfit/pirate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/pirate/post_equip(mob/living/carbon/human/H) H.faction |= "pirate" var/obj/item/radio/R = H.ears @@ -125,7 +125,7 @@ id = /obj/item/card/id r_hand = /obj/item/twohanded/fireaxe -/datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -150,7 +150,7 @@ r_pocket = /obj/item/scalpel r_hand = /obj/item/twohanded/fireaxe -/datum/outfit/psycho/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/psycho/post_equip(mob/living/carbon/human/H) for(var/obj/item/carried_item in H.get_equipped_items(TRUE)) carried_item.add_mob_blood(H)//Oh yes, there will be blood... for(var/obj/item/I in H.held_items) @@ -170,7 +170,7 @@ id = /obj/item/card/id/syndicate belt = /obj/item/pda/heads -/datum/outfit/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) var/obj/item/clothing/under/U = H.w_uniform U.attach_accessory(new /obj/item/clothing/accessory/waistcoat(H)) @@ -216,7 +216,7 @@ back = /obj/item/storage/backpack/satchel/leather id = /obj/item/card/id -/datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -244,7 +244,7 @@ back = /obj/item/storage/backpack/satchel/leather id = /obj/item/card/id -/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -283,7 +283,7 @@ back = /obj/item/storage/backpack backpack_contents = list(/obj/item/storage/box=1) -/datum/outfit/wizard/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/wizard/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -325,7 +325,7 @@ id = /obj/item/card/id -/datum/outfit/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -349,7 +349,7 @@ r_hand = /obj/item/gun/ballistic/automatic/tommygun id = /obj/item/card/id -/datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -391,7 +391,7 @@ /obj/item/flashlight=1,\ /obj/item/grenade/plastic/x4=1) -/datum/outfit/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return diff --git a/code/modules/clothing/outfits/vr.dm b/code/modules/clothing/outfits/vr.dm index ee350e3891..cd8115ac7d 100644 --- a/code/modules/clothing/outfits/vr.dm +++ b/code/modules/clothing/outfits/vr.dm @@ -5,10 +5,10 @@ ears = /obj/item/radio/headset id = /obj/item/card/id -/datum/outfit/vr/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/vr/pre_equip(mob/living/carbon/human/H) H.dna.species.before_equip_job(null, H) -/datum/outfit/vr/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/vr/post_equip(mob/living/carbon/human/H) var/obj/item/card/id/id = H.wear_id if (istype(id)) id.access |= get_all_accesses() @@ -25,10 +25,9 @@ backpack_contents = list(/obj/item/storage/box/syndie=1,\ /obj/item/kitchen/knife/combat/survival) -/datum/outfit/vr/syndicate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/vr/syndicate/post_equip(mob/living/carbon/human/H) . = ..() - var/key = H.key ? H.key : preference_source ? preference_source.key : null - var/obj/item/uplink/U = new /obj/item/uplink/nuclear_restricted(H, key, 80) + var/obj/item/uplink/U = new /obj/item/uplink/nuclear_restricted(H, H.key, 80) H.equip_to_slot_or_del(U, SLOT_IN_BACKPACK) var/obj/item/implant/weapons_auth/W = new W.implant(H) diff --git a/code/modules/clothing/outfits/vv_outfit.dm b/code/modules/clothing/outfits/vv_outfit.dm index 0bc8c87a45..103a152ec8 100644 --- a/code/modules/clothing/outfits/vv_outfit.dm +++ b/code/modules/clothing/outfits/vv_outfit.dm @@ -4,7 +4,7 @@ var/list/vv_values var/list/stored_access -/datum/outfit/varedit/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/varedit/pre_equip(mob/living/carbon/human/H, visualsOnly) H.delete_equipment() //Applying VV to wrong objects is not reccomended. . = ..() @@ -120,7 +120,7 @@ GLOB.custom_outfits += O to_chat(usr,"Outfit registered, use select equipment to equip it.") -/datum/outfit/varedit/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/varedit/post_equip(mob/living/carbon/human/H, visualsOnly) . = ..() //Apply VV for(var/slot in vv_values) diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 91d8d51801..37ab2b2bf4 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -23,7 +23,7 @@ /obj/item/clothing/shoes/ComponentInitialize() . = ..() - RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, /atom.proc/clean_blood) + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, /obj/item/clothing/shoes/clean_blood) /obj/item/clothing/shoes/suicide_act(mob/living/carbon/user) if(rand(2)>1) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 53800615e9..2a8d762ec0 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -519,16 +519,6 @@ /obj/item/clothing/head/hooded/winterhood/captain icon_state = "winterhood_captain" -/obj/item/clothing/suit/hooded/wintercoat/hop - name = "head of personnel's winter coat" - icon_state = "coathop" - item_state = "coathop" - armor = list("melee" = 5, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 5, "bio" = 5, "rad" = 0, "fire" = 0, "acid" = 5) - hoodtype = /obj/item/clothing/head/hooded/winterhood/hop - -/obj/item/clothing/head/hooded/winterhood/hop - icon_state = "winterhood_hop" - /obj/item/clothing/suit/hooded/wintercoat/security name = "security winter coat" icon_state = "coatsecurity" @@ -543,20 +533,6 @@ /obj/item/clothing/head/hooded/winterhood/security icon_state = "winterhood_security" -/obj/item/clothing/suit/hooded/wintercoat/hos - name = "head of security's winter coat" - icon_state = "coathos" - item_state = "coathos" - armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 15, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 55) - hoodtype = /obj/item/clothing/head/hooded/winterhood/hos - -/obj/item/clothing/suit/hooded/wintercoat/hos/Initialize() - . = ..() - allowed = GLOB.security_wintercoat_allowed - -/obj/item/clothing/head/hooded/winterhood/hos - icon_state = "winterhood_hos" - /obj/item/clothing/suit/hooded/wintercoat/medical name = "medical winter coat" icon_state = "coatmedical" @@ -568,39 +544,6 @@ /obj/item/clothing/head/hooded/winterhood/medical icon_state = "winterhood_medical" -/obj/item/clothing/suit/hooded/wintercoat/cmo - name = "chief medical officer's winter coat" - icon_state = "coatcmo" - item_state = "coatcmo" - allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) - armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 0) - hoodtype = /obj/item/clothing/head/hooded/winterhood/cmo - -/obj/item/clothing/head/hooded/winterhood/cmo - icon_state = "winterhood_cmo" - -/obj/item/clothing/suit/hooded/wintercoat/chemistry - name = "chemistry winter coat" - icon_state = "coatchemistry" - item_state = "coatchemistry" - allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 30, "acid" = 45) - hoodtype = /obj/item/clothing/head/hooded/winterhood/chemistry - -/obj/item/clothing/head/hooded/winterhood/chemistry - icon_state = "winterhood_chemistry" - -/obj/item/clothing/suit/hooded/wintercoat/viro - name = "virology winter coat" - icon_state = "coatviro" - item_state = "coatviro" - allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = 0) - hoodtype = /obj/item/clothing/head/hooded/winterhood/viro - -/obj/item/clothing/head/hooded/winterhood/viro - icon_state = "winterhood_viro" - /obj/item/clothing/suit/hooded/wintercoat/science name = "science winter coat" icon_state = "coatscience" @@ -612,49 +555,6 @@ /obj/item/clothing/head/hooded/winterhood/science icon_state = "winterhood_science" -/obj/item/clothing/suit/hooded/wintercoat/robotics - name = "robotics winter coat" - icon_state = "coatrobotics" - item_state = "coatrobotics" - allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/screwdriver, /obj/item/crowbar, /obj/item/wrench, /obj/item/stack/cable_coil, /obj/item/weldingtool, /obj/item/multitool) - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - hoodtype = /obj/item/clothing/head/hooded/winterhood/robotics - -/obj/item/clothing/head/hooded/winterhood/robotics - icon_state = "winterhood_robotics" - -/obj/item/clothing/suit/hooded/wintercoat/genetics - name = "genetics winter coat" - icon_state = "coatgenetics" - item_state = "coatgenetics" - allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) - hoodtype = /obj/item/clothing/head/hooded/winterhood/genetics - -/obj/item/clothing/head/hooded/winterhood/genetics - icon_state = "winterhood_genetics" - -/obj/item/clothing/suit/hooded/wintercoat/rd - name = "research director's winter coat" - icon_state = "coatrd" - item_state = "coatrd" - allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) - armor = list("melee" = 0, "bullet" = 0, "laser" = 5,"energy" = 0, "bomb" = 15, "bio" = 5, "rad" = 5, "fire" = 0, "acid" = 0) - hoodtype = /obj/item/clothing/head/hooded/winterhood/rd - -/obj/item/clothing/head/hooded/winterhood/rd - icon_state = "winterhood_rd" - -/obj/item/clothing/suit/hooded/wintercoat/ce - name = "chief engineer's winter coat" - icon_state = "coatce" - item_state = "coatce" - armor = list("melee" = 0, "bullet" = 0, "laser" = 5, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 30, "fire" = 35, "acid" = 45) - allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) - hoodtype = /obj/item/clothing/head/hooded/winterhood/ce - -/obj/item/clothing/head/hooded/winterhood/ce - icon_state = "winterhood_ce" - /obj/item/clothing/suit/hooded/wintercoat/engineering name = "engineering winter coat" icon_state = "coatengineer" @@ -685,26 +585,6 @@ /obj/item/clothing/head/hooded/winterhood/hydro icon_state = "winterhood_hydro" -/obj/item/clothing/suit/hooded/wintercoat/cosmic - name = "cosmic winter coat" - icon_state = "coatcosmic" - item_state = "coatcosmic" - allowed = list(/obj/item/flashlight) - hoodtype = /obj/item/clothing/head/hooded/winterhood/cosmic - -/obj/item/clothing/head/hooded/winterhood/cosmic - icon_state = "winterhood_cosmic" - -/obj/item/clothing/suit/hooded/wintercoat/janitor - name = "janitors winter coat" - icon_state = "coatjanitor" - item_state = "coatjanitor" - allowed = list(/obj/item/toy, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/storage/fancy/cigarettes, /obj/item/lighter,/obj/item/grenade/chem_grenade,/obj/item/lightreplacer,/obj/item/flashlight,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/spray,/obj/item/soap,/obj/item/holosign_creator,/obj/item/key/janitor,/obj/item/melee/flyswatter,/obj/item/paint/paint_remover,/obj/item/storage/bag/trash,/obj/item/reagent_containers/glass/bucket) - hoodtype = /obj/item/clothing/head/hooded/winterhood/janitor - -/obj/item/clothing/head/hooded/winterhood/janitor - icon_state = "winterhood_janitor" - /obj/item/clothing/suit/hooded/wintercoat/cargo name = "cargo winter coat" icon_state = "coatcargo" @@ -714,15 +594,6 @@ /obj/item/clothing/head/hooded/winterhood/cargo icon_state = "winterhood_cargo" -/obj/item/clothing/suit/hooded/wintercoat/qm - name = "quartermaster's winter coat" - icon_state = "coatqm" - item_state = "coatqm" - hoodtype = /obj/item/clothing/head/hooded/winterhood/qm - -/obj/item/clothing/head/hooded/winterhood/qm - icon_state = "winterhood_qm" - /obj/item/clothing/suit/hooded/wintercoat/miner name = "mining winter coat" icon_state = "coatminer" diff --git a/code/modules/crafting/recipes/recipes_clothing.dm b/code/modules/crafting/recipes/recipes_clothing.dm index 4f06a44811..f48ee87316 100644 --- a/code/modules/crafting/recipes/recipes_clothing.dm +++ b/code/modules/crafting/recipes/recipes_clothing.dm @@ -158,31 +158,3 @@ time = 50 always_availible = TRUE category = CAT_CLOTHING - -/datum/crafting_recipe/wintercoat_cosmic - name = "Cosmic Winter Coat" - result = /obj/item/clothing/suit/hooded/wintercoat/cosmic - reqs = list(/obj/item/clothing/suit/hooded/wintercoat = 1, - /obj/item/clothing/suit/hooded/wintercoat/captain = 1, - /obj/item/clothing/suit/hooded/wintercoat/hop = 1, - /obj/item/clothing/suit/hooded/wintercoat/hos = 1, - /obj/item/clothing/suit/hooded/wintercoat/rd = 1, - /obj/item/clothing/suit/hooded/wintercoat/ce = 1, - /obj/item/clothing/suit/hooded/wintercoat/cmo = 1, - /obj/item/clothing/suit/hooded/wintercoat/qm = 1, - /obj/item/clothing/suit/hooded/wintercoat/robotics = 1, - /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos = 1, - /obj/item/clothing/suit/hooded/wintercoat/engineering = 1, - /obj/item/clothing/suit/hooded/wintercoat/science = 1, - /obj/item/clothing/suit/hooded/wintercoat/genetics = 1, - /obj/item/clothing/suit/hooded/wintercoat/chemistry = 1, - /obj/item/clothing/suit/hooded/wintercoat/medical = 1, - /obj/item/clothing/suit/hooded/wintercoat/viro = 1, - /obj/item/clothing/suit/hooded/wintercoat/janitor = 1, - /obj/item/clothing/suit/hooded/wintercoat/security = 1, - /obj/item/clothing/suit/hooded/wintercoat/cargo = 1, - /obj/item/clothing/suit/hooded/wintercoat/hydro = 1, - /obj/item/clothing/suit/hooded/wintercoat/miner = 1) - time = 60 - always_availible = TRUE - category = CAT_CLOTHING diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index e2125964e4..815f640fde 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -57,7 +57,7 @@ /datum/round_event_control/wizard/canSpawnEvent(var/players_amt, var/gamemode) if(istype(SSticker.mode, /datum/game_mode/dynamic)) - var/datum/game_mode/dynamic/mode = SSticker.mode + var/var/datum/game_mode/dynamic/mode = SSticker.mode if (locate(/datum/dynamic_ruleset/midround/from_ghosts/wizard) in mode.executed_rules) return can_be_midround_wizard && ..() return ..() diff --git a/code/modules/events/major_dust.dm b/code/modules/events/major_dust.dm index c594d7b3c0..d7d8f1aec8 100644 --- a/code/modules/events/major_dust.dm +++ b/code/modules/events/major_dust.dm @@ -2,7 +2,6 @@ name = "Major Space Dust" typepath = /datum/round_event/meteor_wave/major_dust weight = 8 - gamemode_blacklist = list("dynamic") /datum/round_event/meteor_wave/major_dust wave_name = "space dust" diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm index 26591547c0..31ea9dcb03 100644 --- a/code/modules/events/meteor_wave.dm +++ b/code/modules/events/meteor_wave.dm @@ -10,7 +10,6 @@ min_players = 15 max_occurrences = 3 earliest_start = 25 MINUTES - gamemode_blacklist = list("dynamic") /datum/round_event/meteor_wave startWhen = 6 diff --git a/code/modules/events/processor_overload.dm b/code/modules/events/processor_overload.dm index 67848bf941..74d9bb273e 100644 --- a/code/modules/events/processor_overload.dm +++ b/code/modules/events/processor_overload.dm @@ -3,7 +3,6 @@ typepath = /datum/round_event/processor_overload weight = 15 min_players = 20 - gamemode_blacklist = list("dynamic") /datum/round_event/processor_overload announceWhen = 1 diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index 9dd016c235..9d075857a7 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -546,10 +546,3 @@ Since Ramadan is an entire month that lasts 29.5 days on average, the start and /datum/holiday/easter/getStationPrefix() return pick("Fluffy","Bunny","Easter","Egg") - -//Random citadel thing for halloween species -/proc/force_enable_halloween_species() - var/list/oldlist = SSevents.holidays - SSevents.holidays = list(HALLOWEEN = new /datum/holiday/halloween) - generate_selectable_species(FALSE) - SSevents.holidays = oldlist diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 507c8a5026..a52b8589c3 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -101,9 +101,8 @@ //Equip the rest of the gear H.dna.species.before_equip_job(src, H, visualsOnly) - var/datum/outfit/job/O = outfit_override || outfit - if(O) - H.equipOutfit(O, visualsOnly, preference_source) //mob doesn't have a client yet. + if(outfit_override || outfit) + H.equipOutfit(outfit_override ? outfit_override : outfit, visualsOnly) H.dna.species.after_equip_job(src, H, visualsOnly) @@ -178,8 +177,8 @@ var/pda_slot = SLOT_BELT -/datum/outfit/job/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) - switch(preference_source?.prefs.backbag) +/datum/outfit/job/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + switch(H.backbag) if(GBACKPACK) back = /obj/item/storage/backpack //Grey backpack if(GSATCHEL) @@ -197,7 +196,7 @@ //converts the uniform string into the path we'll wear, whether it's the skirt or regular variant var/holder - if(preference_source && preference_source.prefs.jumpsuit_style == PREF_SKIRT) + if(H.jumpsuit_style == PREF_SKIRT) holder = "[uniform]/skirt" if(!text2path(holder)) holder = "[uniform]" @@ -205,7 +204,7 @@ holder = "[uniform]" uniform = text2path(holder) -/datum/outfit/job/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/job/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) return @@ -233,8 +232,6 @@ PDA.owner = H.real_name PDA.ownjob = J.title PDA.update_label() - if(preference_source && !PDA.equipped) //PDA's screen color, font style and look depend on client preferences. - PDA.update_style(preference_source) /datum/outfit/job/get_chameleon_disguise_info() var/list/types = ..() diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index ce2dce9053..da8c2aa3b9 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -28,16 +28,15 @@ Assistant name = "Assistant" jobtype = /datum/job/assistant -/datum/outfit/job/assistant/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/job/assistant/pre_equip(mob/living/carbon/human/H) ..() - var/suited = !preference_source || preference_source.prefs.jumpsuit_style == PREF_SUIT if (CONFIG_GET(flag/grey_assistants)) - if(suited) + if(H.jumpsuit_style == PREF_SUIT) uniform = /obj/item/clothing/under/color/grey else uniform = /obj/item/clothing/under/skirt/color/grey else - if(suited) + if(H.jumpsuit_style == PREF_SUIT) uniform = /obj/item/clothing/under/color/random else uniform = /obj/item/clothing/under/skirt/color/random diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm index 922b335a39..d8b88ae871 100644 --- a/code/modules/jobs/job_types/clown.dm +++ b/code/modules/jobs/job_types/clown.dm @@ -16,6 +16,11 @@ display_order = JOB_DISPLAY_ORDER_CLOWN + +/datum/job/clown/after_spawn(mob/living/carbon/human/H, mob/M) + . = ..() + H.apply_pref_name("clown", M.client) + /datum/outfit/job/clown name = "Clown" jobtype = /datum/job/clown @@ -43,15 +48,11 @@ chameleon_extras = /obj/item/stamp/clown -/datum/outfit/job/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/job/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) return - var/client/C = H.client || preference_source - if(C) - H.apply_pref_name("clown", C) //rename the mob AFTER they're equipped so their ID gets updated properly. - else - H.fully_replace_character_name(H.real_name, pick(GLOB.clown_names)) + H.fully_replace_character_name(H.real_name, pick(GLOB.clown_names)) //rename the mob AFTER they're equipped so their ID gets updated properly. H.dna.add_mutation(CLOWNMUT) H.dna.add_mutation(SMILE) diff --git a/code/modules/jobs/job_types/cook.dm b/code/modules/jobs/job_types/cook.dm index b5def54061..c213d4dffc 100644 --- a/code/modules/jobs/job_types/cook.dm +++ b/code/modules/jobs/job_types/cook.dm @@ -29,7 +29,7 @@ mask = /obj/item/clothing/mask/fakemoustache/italian backpack_contents = list(/obj/item/sharpener = 1) -/datum/outfit/job/cook/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/job/cook/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() var/datum/job/cook/J = SSjob.GetJobType(jobtype) if(J) // Fix for runtime caused by invalid job being passed @@ -39,7 +39,7 @@ if(!visualsOnly) J.cooks++ -/datum/outfit/job/cook/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/job/cook/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) return diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm index 0c762637ac..35fa8483d5 100644 --- a/code/modules/jobs/job_types/curator.dm +++ b/code/modules/jobs/job_types/curator.dm @@ -34,7 +34,7 @@ /obj/item/barcodescanner = 1 ) -/datum/outfit/job/curator/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/job/curator/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm index 13cb5e01e3..27a54fbd1f 100644 --- a/code/modules/jobs/job_types/detective.dm +++ b/code/modules/jobs/job_types/detective.dm @@ -46,7 +46,7 @@ chameleon_extras = list(/obj/item/gun/ballistic/revolver/detective, /obj/item/clothing/glasses/sunglasses) -/datum/outfit/job/detective/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/job/detective/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() var/obj/item/clothing/mask/cigarette/cig = H.wear_mask if(istype(cig)) //Some species specfic changes can mess this up (plasmamen) diff --git a/code/modules/jobs/job_types/lawyer.dm b/code/modules/jobs/job_types/lawyer.dm index 654af6a05d..0b8be52116 100644 --- a/code/modules/jobs/job_types/lawyer.dm +++ b/code/modules/jobs/job_types/lawyer.dm @@ -35,7 +35,7 @@ chameleon_extras = /obj/item/stamp/law -/datum/outfit/job/lawyer/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/job/lawyer/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) return diff --git a/code/modules/jobs/job_types/mime.dm b/code/modules/jobs/job_types/mime.dm index 4e6e982fb9..1347da7125 100644 --- a/code/modules/jobs/job_types/mime.dm +++ b/code/modules/jobs/job_types/mime.dm @@ -36,7 +36,7 @@ satchel = /obj/item/storage/backpack/mime -/datum/outfit/job/mime/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/job/mime/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) @@ -47,9 +47,3 @@ H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mime/speak(null)) H.mind.miming = 1 - var/client/C = H.client || preference_source - if(C) - H.apply_pref_name("mime", C) - else - H.fully_replace_character_name(H.real_name, pick(GLOB.mime_names)) - diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 915e9d1cea..771fc02862 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -64,7 +64,7 @@ /obj/item/gun/energy/kinetic_accelerator=1,\ /obj/item/stack/marker_beacon/ten=1) -/datum/outfit/job/miner/equipped/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/job/miner/equipped/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) return diff --git a/code/modules/mining/aux_base_camera.dm b/code/modules/mining/aux_base_camera.dm index d461523744..d901e1eb0c 100644 --- a/code/modules/mining/aux_base_camera.dm +++ b/code/modules/mining/aux_base_camera.dm @@ -25,6 +25,7 @@ max_matter = 600 //Bigger container and faster speeds due to being specialized and stationary. no_ammo_message = "Internal matter exhausted. Please add additional materials." delay_mod = 0.5 + adjacency_check = FALSE upgrade = TRUE var/obj/machinery/computer/camera_advanced/base_construction/console @@ -206,14 +207,19 @@ to_chat(owner, "Build mode is now [buildmode].") /datum/action/innate/aux_base/airlock_type - name = "Select Airlock Type" + name = "Change Airlock Settings" button_icon_state = "airlock_select" /datum/action/innate/aux_base/airlock_type/Activate() if(..()) return - B.RCD.change_airlock_access(usr) + var/mode = alert("Modify Type or Access?", "Airlock Settings", "Type", "Access", "None") + switch(mode) + if("Type") + B.RCD.change_airlock_setting(usr) + if("Access") + B.RCD.change_airlock_access(usr) /datum/action/innate/aux_base/window_type diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index 4429c8426f..d6e99f7361 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -59,7 +59,6 @@ to_chat(owner, "[src] breaks down as it tries to activate.") else owner.revive(full_heal = 1) - owner.log_message("[owner] used an implanted [src] to heal themselves! Keep fighting, it's just a flesh wound!", LOG_ATTACK, color="green") //Logging for implanted legion core use qdel(src) /obj/item/organ/regenerative_core/on_life() @@ -86,21 +85,6 @@ SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self")) H.revive(full_heal = 1) qdel(src) - user.log_message("[user] used [src] to heal [H]! Wake the fuck up, Samurai!", LOG_ATTACK, color="green") //Logging for 'old' style legion core use, when clicking on a sprite of yourself or another. - -/obj/item/organ/regenerative_core/attack_self(mob/user) //Knouli's first hack! Allows for the use of the core in hand rather than needing to click on the target, yourself, to selfheal. Its a rip of the proc just above - but skips on distance check and only uses 'user' rather than 'target' - if(ishuman(user)) //Check if user is human, no need for distance check as it's self heal - var/mob/living/carbon/human/H = user //Set H to user rather than target - if(inert) //Inert cores are useless - to_chat(user, "[src] has decayed and can no longer be used to heal.") - return - else //Skip on check if the target to be healed is dead as, if you are dead, you're not going to be able to use it on yourself! - to_chat(user, "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.") - SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self")) - H.revive(full_heal = 1) - qdel(src) - H.log_message("[H] used [src] to heal themselves! Making use of Knouli's sexy and intelligent use-in-hand proc!", LOG_ATTACK, color="green") //Logging for 'new' style legion core use, when using the core in-hand. - /obj/item/organ/regenerative_core/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) . = ..() diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 950ae7dda1..8de5f76a56 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -37,9 +37,6 @@ new /obj/item/clothing/gloves/color/black(src) new /obj/item/clothing/gloves/color/black(src) new /obj/item/clothing/gloves/color/black(src) - new /obj/item/clothing/suit/hooded/wintercoat/miner(src) //yes, even both mining locker types - new /obj/item/clothing/suit/hooded/wintercoat/miner(src) - new /obj/item/clothing/suit/hooded/wintercoat/miner(src) /obj/structure/closet/secure_closet/miner name = "miner's equipment" @@ -64,7 +61,6 @@ new /obj/item/clothing/glasses/meson(src) new /obj/item/survivalcapsule(src) new /obj/item/assault_pod/mining(src) - new /obj/item/clothing/suit/hooded/wintercoat/miner(src) //because you know you want it /**********************Shuttle Computer**************************/ diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index d789fc6f5a..4d253a4693 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -473,7 +473,10 @@ var/free_space = 0 for(var/list/category in list(GLOB.command_positions) + list(GLOB.supply_positions) + list(GLOB.engineering_positions) + list(GLOB.nonhuman_positions - "pAI") + list(GLOB.civilian_positions) + list(GLOB.medical_positions) + list(GLOB.science_positions) + list(GLOB.security_positions)) var/cat_color = "fff" //random default - cat_color = SSjob.name_occupations[category[1]].selection_color //use the color of the first job in the category (the department head) as the category color + if(SSjob.name_occupations && SSjob.name_occupations[category[1]]) + cat_color = SSjob.name_occupations[category[1]].selection_color //use the color of the first job in the category (the department head) as the category color + else + cat_color = SSjob.occupations[category[1]].selection_color dat += "
    " dat += "[SSjob.name_occupations[category[1]].exp_type_department]" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 42277e925b..8ea295c6c4 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -264,7 +264,6 @@ Works together with spawning an observer, noted above. */ /mob/proc/ghostize(can_reenter_corpse = TRUE, special = FALSE, penalize = FALSE) - penalize = suiciding || penalize // suicide squad. if(!key || cmptext(copytext(key,1,2),"@") || (!special && SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, can_reenter_corpse) & COMPONENT_BLOCK_GHOSTING)) return //mob has no key, is an aghost or some component hijacked. stop_sound_channel(CHANNEL_HEARTBEAT) //Stop heartbeat sounds because You Are A Ghost Now diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 23ccc665b6..f2b02b81fb 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -170,7 +170,6 @@ stop_pulling() if(HAS_TRAIT(src, TRAIT_PACIFISM)) to_chat(src, "You gently let go of [throwable_mob].") - return adjustStaminaLossBuffered(25)//CIT CHANGE - throwing an entire person shall be very tiring var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors var/turf/end_T = get_turf(target) diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index a8a69be0f1..7d1e5320fc 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -43,7 +43,7 @@ adjustStaminaLoss(damage_amount, forced = forced) //citadel code if(AROUSAL) - adjustArousalLoss(damage_amount) + adjustArousalLoss(damage_amount, forced = forced) return TRUE diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9eab9054f5..d460482d6f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -32,7 +32,7 @@ if(CONFIG_GET(flag/disable_stambuffer)) togglesprint() - RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, /atom.proc/clean_blood) + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, /mob/living/carbon/human/clean_blood) /mob/living/carbon/human/ComponentInitialize() diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 327ad6760c..2ab7c6d404 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -339,10 +339,8 @@ apply_damage(damage, BRUTE, affecting, armor_block) /mob/living/carbon/human/mech_melee_attack(obj/mecha/M) + if(M.occupant.a_intent == INTENT_HARM) - if(HAS_TRAIT(M.occupant, TRAIT_PACIFISM)) - to_chat(M.occupant, "You don't want to harm other living beings!") - return M.do_attack_animation(src) if(M.damtype == "brute") step_away(src,M,15) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 9ffa994066..b1f11f6463 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -34,6 +34,8 @@ var/shirt_color = "FFFFFF" var/socks = "Nude" //Which socks the player wants var/socks_color = "FFFFFF" + var/backbag = DBACKPACK //Which backpack type the player has chosen. + var/jumpsuit_style = PREF_SUIT //suit/skirt //Equipment slots var/obj/item/wear_suit = null diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 26703977d2..084dbd83ef 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -251,7 +251,7 @@ sec_hud_set_security_status() ..() -/mob/living/carbon/human/proc/equipOutfit(outfit, visualsOnly = FALSE, client/preference_source) +/mob/living/carbon/human/proc/equipOutfit(outfit, visualsOnly = FALSE) var/datum/outfit/O = null if(ispath(outfit)) @@ -263,7 +263,7 @@ if(!O) return 0 - return O.equip(src, visualsOnly, preference_source) + return O.equip(src, visualsOnly) //delete all equipment without dropping anything diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 7ff4f355d5..49ae178d8c 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -118,14 +118,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) ..() -/proc/generate_selectable_species(clear = FALSE) - if(clear) - GLOB.roundstart_races = list() - GLOB.roundstart_race_names = list() +/proc/generate_selectable_species() for(var/I in subtypesof(/datum/species)) var/datum/species/S = new I if(S.check_roundstart_eligible()) - GLOB.roundstart_races |= S.id + GLOB.roundstart_races += S.id GLOB.roundstart_race_names["[S.name]"] = S.id qdel(S) if(!GLOB.roundstart_races.len) @@ -1479,7 +1476,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/proc/harm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) - if(!attacker_style && HAS_TRAIT(user, TRAIT_PACIFISM)) + if(HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, "You don't want to harm [target]!") return FALSE if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) //CITADEL CHANGE - makes it impossible to punch while in stamina softcrit @@ -1681,8 +1678,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return if(M.mind) attacker_style = M.mind.martial_art - if(attacker_style?.pacifism_check && HAS_TRAIT(M, TRAIT_PACIFISM)) // most martial arts are quite harmful, alas. - attacker_style = null if((M != H) && M.a_intent != INTENT_HELP && H.check_shields(M, 0, M.name, attack_type = UNARMED_ATTACK)) log_combat(M, H, "attempted to touch") H.visible_message("[M] attempted to touch [H]!") diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index 02163eaaed..d264f11b73 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -1,8 +1,9 @@ /datum/species/insect name = "Anthromorphic Insect" id = "insect" + say_mod = "flutters" default_color = "00FF00" - species_traits = list(LIPS,EYECOLOR,HAIR,FACEHAIR,MUTCOLORS,HORNCOLOR,WINGCOLOR) + species_traits = list(LIPS,NOEYES,HAIR,FACEHAIR,MUTCOLORS,HORNCOLOR,WINGCOLOR) inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_BUG) mutant_bodyparts = list("mam_ears", "mam_snout", "mam_tail", "taur", "insect_wings", "mam_snouts", "insect_fluff","horns") default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_tail" = "None", "mam_ears" = "None", @@ -11,36 +12,54 @@ attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/insect - liked_food = MEAT | FRUIT - disliked_food = TOXIC + liked_food = VEGETABLES | DAIRY + disliked_food = FRUIT | GROSS + toxic_food = MEAT | RAW + mutanteyes = /obj/item/organ/eyes/insect should_draw_citadel = TRUE + exotic_bloodtype = "BUG" -/datum/species/insect/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - stop_wagging_tail(H) - -/datum/species/insect/spec_stun(mob/living/carbon/human/H,amount) - if(H) - stop_wagging_tail(H) +/datum/species/insect/on_species_gain(mob/living/carbon/C) . = ..() + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(!H.dna.features["insect_wings"]) + H.dna.features["insect_wings"] = "[(H.client && H.client.prefs && LAZYLEN(H.client.prefs.features) && H.client.prefs.features["insect_wings"]) ? H.client.prefs.features["insect_wings"] : "None"]" + handle_mutant_bodyparts(H) -/datum/species/insect/can_wag_tail(mob/living/carbon/human/H) - return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) +/datum/species/insect/random_name(gender,unique,lastname) + if(unique) + return random_unique_moth_name() -/datum/species/insect/is_wagging_tail(mob/living/carbon/human/H) - return ("mam_waggingtail" in mutant_bodyparts) + var/randname = moth_name() -/datum/species/insect/start_wagging_tail(mob/living/carbon/human/H) - if("mam_tail" in mutant_bodyparts) - mutant_bodyparts -= "mam_tail" - mutant_bodyparts |= "mam_waggingtail" - H.update_body() + if(lastname) + randname += " [lastname]" -/datum/species/insect/stop_wagging_tail(mob/living/carbon/human/H) - if("mam_waggingtail" in mutant_bodyparts) - mutant_bodyparts -= "mam_waggingtail" - mutant_bodyparts |= "mam_tail" - H.update_body() + return randname -/datum/species/insect/qualifies_for_rank(rank, list/features) - return TRUE \ No newline at end of file +/datum/species/insect/handle_fire(mob/living/carbon/human/H, no_protection = FALSE) + ..() + if(H.dna.features["insect_wings"] != "Burnt Off" && H.dna.features["insect_wings"] != "None" && H.bodytemperature >= 800 && H.fire_stacks > 0) //do not go into the extremely hot light. you will not survive + to_chat(H, "Your precious wings burn to a crisp!") + if(H.dna.features["insect_wings"] != "None") + H.dna.features["insect_wings"] = "Burnt Off" + handle_mutant_bodyparts(H) + +/datum/species/insect/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) + . = ..() + if(chem.id == "pestkiller") + H.adjustToxLoss(3) + H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + +/datum/species/insect/check_weakness(obj/item/weapon, mob/living/attacker) + if(istype(weapon, /obj/item/melee/flyswatter)) + return 9 //flyswatters deal 10x damage to insects + return 0 + +/datum/species/insect/space_move(mob/living/carbon/human/H) + . = ..() + if(H.loc && !isspaceturf(H.loc) && (H.dna.features["insect_wings"] != "Burnt Off" && H.dna.features["insect_wings"] != "None")) + var/datum/gas_mixture/current = H.loc.return_air() + if(current && (current.return_pressure() >= ONE_ATMOSPHERE*0.85)) //as long as there's reasonable pressure and no gravity, flight is possible + return TRUE diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 722c984309..93e64fd4cc 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -92,9 +92,6 @@ /mob/living/mech_melee_attack(obj/mecha/M) if(M.occupant.a_intent == INTENT_HARM) - if(HAS_TRAIT(M.occupant, TRAIT_PACIFISM)) - to_chat(M.occupant, "You don't want to harm other living beings!") - return M.do_attack_animation(src) if(M.damtype == "brute") step_away(src,M,15) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 371e92413b..0f8687397d 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -58,10 +58,7 @@ var/canholo = TRUE var/obj/item/card/id/access_card = null var/chassis = "repairbot" - var/list/possible_chassis = list("cat" = TRUE, "mouse" = TRUE, "monkey" = TRUE, "corgi" = FALSE, - "fox" = FALSE, "repairbot" = TRUE, "rabbit" = TRUE, "borgi" = FALSE , - "parrot" = FALSE, "bear" = FALSE , "mushroom" = FALSE, "crow" = FALSE , - "fairy" = FALSE , "spiderbot" = FALSE) //assoc value is whether it can be picked up. + var/list/possible_chassis = list("cat" = TRUE, "mouse" = TRUE, "monkey" = TRUE, "corgi" = FALSE, "fox" = FALSE, "repairbot" = TRUE, "rabbit" = TRUE) //assoc value is whether it can be picked up. var/static/item_head_icon = 'icons/mob/pai_item_head.dmi' var/static/item_lh_icon = 'icons/mob/pai_item_lh.dmi' var/static/item_rh_icon = 'icons/mob/pai_item_rh.dmi' diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 4f12250ef0..a5943aa0e6 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -37,7 +37,6 @@ var/obj/item/paicard/paicard // Inserted pai card. var/allow_pai = 1 // Are we even allowed to insert a pai card. var/bot_name - var/oil_spill_type = /obj/effect/decal/cleanable/oil var/list/player_access = list() //Additonal access the bots gets when player controlled var/emagged = FALSE @@ -217,9 +216,9 @@ to_chat(user, "[src] is in pristine condition.") /mob/living/simple_animal/bot/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + if(amount>0 && prob(10)) + new /obj/effect/decal/cleanable/oil(loc) . = ..() - if(. && prob(10)) - new oil_spill_type(loc) /mob/living/simple_animal/bot/updatehealth() ..() diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index 724abea214..1c19cd82a1 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -16,7 +16,6 @@ bot_core_type = /obj/machinery/bot_core/honkbot window_id = "autohonk" window_name = "Honkomatic Bike Horn Unit v1.0.7" - oil_spill_type = /obj/effect/decal/cleanable/oil/slippery //slip and slide fun for the whole family data_hud_type = DATA_HUD_SECURITY_BASIC // show jobs path_image_color = "#FF69B4" diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index fed770d0b0..50c331940a 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -440,7 +440,7 @@ var/reagent_id = null if(emagged == 2) //Emagged! Time to poison everybody. - reagent_id = HAS_TRAIT(C, TRAIT_TOXINLOVER)? "charcoal" : "toxin" + reagent_id = "toxin" else if(treat_virus) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index c18fc36e9a..550593e316 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -522,10 +522,10 @@ It's fairly easy to fix if dealing with single letters but not so much with comp //gets ID card object from special clothes slot or null. /mob/proc/get_idcard(hand_first = TRUE) var/obj/item/held_item = get_active_held_item() - . = held_item ? held_item.GetID() : null + . = held_item?.GetID() if(!.) //If so, then check the inactive hand held_item = get_inactive_held_item() - . = held_item ? held_item.GetID() : null + . = held_item?.GetID() /mob/proc/get_id_in_hand() var/obj/item/held_item = get_active_held_item() diff --git a/code/modules/ninja/outfit.dm b/code/modules/ninja/outfit.dm index 7ee71db1f1..ad63f55b90 100644 --- a/code/modules/ninja/outfit.dm +++ b/code/modules/ninja/outfit.dm @@ -16,7 +16,7 @@ implants = list(/obj/item/implant/explosive) -/datum/outfit/ninja/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/ninja/post_equip(mob/living/carbon/human/H) if(istype(H.wear_suit, suit)) var/obj/item/clothing/suit/space/space_ninja/S = H.wear_suit if(istype(H.belt, belt)) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index ceb9b7a0fc..e43eb5a3bc 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -69,12 +69,12 @@ /obj/item/projectile/beam/disabler name = "disabler beam" icon_state = "omnilaser" - damage = 28 // Citadel change for balance from 36 + damage = 24 // Citadel change for balance from 36 damage_type = STAMINA flag = "energy" hitsound = 'sound/weapons/tap.ogg' eyeblur = 0 - speed = 0.6 + speed = 0.7 impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_BLUE tracer_type = /obj/effect/projectile/tracer/disabler diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 3a20501832..1eb75e042b 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -382,10 +382,9 @@ /obj/machinery/chem_dispenser/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) if(beaker) - var/obj/item/reagent_containers/B = beaker - B.forceMove(drop_location()) + beaker.forceMove(drop_location()) if(user && Adjacent(user) && !issiliconoradminghost(user)) - user.put_in_hands(B) + user.put_in_hands(beaker) if(new_beaker) beaker = new_beaker else @@ -397,6 +396,7 @@ cell = null if(beaker) beaker.forceMove(drop_location()) + beaker = null return ..() /obj/machinery/chem_dispenser/proc/get_macro_resolution() diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index e91719504e..30d432ce55 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -515,7 +515,6 @@ ///Stronger kind of lube. Applies TURF_WET_SUPERLUBE. /datum/reagent/lube/superlube name = "Super Duper Lube" - id = "superlube" description = "This \[REDACTED\] has been outlawed after the incident on \[DATA EXPUNGED\]." lube_kind = TURF_WET_SUPERLUBE diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index ddbc6cf92b..b3f9ef8202 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -230,7 +230,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "clownflower" volume = 30 - list_reagents = list("superlube" = 30) + list_reagents = list(/datum/reagent/lube/superlube = 30) /obj/item/reagent_containers/spray/waterflower/cyborg reagent_flags = NONE diff --git a/code/modules/research/designs/machine_desings/machine_designs_service.dm b/code/modules/research/designs/machine_desings/machine_designs_service.dm index 5cbff1c66a..895ad032ba 100644 --- a/code/modules/research/designs/machine_desings/machine_designs_service.dm +++ b/code/modules/research/designs/machine_desings/machine_designs_service.dm @@ -41,14 +41,6 @@ category = list ("Misc. Machinery") departmental_flags = DEPARTMENTAL_FLAG_SERVICE -/datum/design/board/ayyplantgenes - name = "Machine Design (Alien Plant DNA Manipulator Board)" - desc = "The circuit board for an advanced plant DNA manipulator, utilizing alien technologies." - id = "ayyplantgenes" - build_path = /obj/item/circuitboard/machine/plantgenes/vault - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - /datum/design/board/deepfryer name = "Machine Design (Deep Fryer)" desc = "The circuit board for a Deep Fryer." diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 836b574f86..5f457a3cd7 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -84,9 +84,8 @@ investigate_log("[key_name(user)] built [amount] of [path] at [src]([type]).", INVESTIGATE_RESEARCH) message_admins("[ADMIN_LOOKUPFLW(user)] has built [amount] of [path] at a [src]([type]).") for(var/i in 1 to amount) - var/obj/O = new path(get_turf(src)) - if(efficient_with(O.type) && isitem(O)) - var/obj/item/I = O + var/obj/item/I = new path(get_turf(src)) + if(efficient_with(I.type)) I.materials = matlist.Copy() SSblackbox.record_feedback("nested tally", "item_printed", amount, list("[type]", "[path]")) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index a2482c49a8..5f286c4237 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -616,7 +616,7 @@ /datum/techweb_node/botany id = "botany" display_name = "Botanical Engineering" - description = "Botanical tools." + description = "Botanical tools" prereq_ids = list("adv_engi", "biotech") design_ids = list("diskplantgene", "portaseeder", "plantgenes", "flora_gun", "hydro_tray", "biogenerator", "seed_extractor") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) @@ -1047,14 +1047,14 @@ display_name = "Alien Biological Tools" description = "Advanced biological tools." prereq_ids = list("alientech", "advance_surgerytools") - design_ids = list("alien_scalpel", "alien_hemostat", "alien_retractor", "alien_saw", "alien_drill", "alien_cautery", "ayyplantgenes") + design_ids = list("alien_scalpel", "alien_hemostat", "alien_retractor", "alien_saw", "alien_drill", "alien_cautery") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) export_price = 10000 /datum/techweb_node/alien_engi id = "alien_engi" display_name = "Alien Engineering" - description = "Alien engineering tools." + description = "Alien engineering tools" prereq_ids = list("alientech", "exp_tools") design_ids = list("alien_wrench", "alien_wirecutters", "alien_screwdriver", "alien_crowbar", "alien_welder", "alien_multitool") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index d12195cc52..92a637ce43 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -135,7 +135,7 @@ id = /obj/item/card/id/syndicate/anyone implants = list(/obj/item/implant/weapons_auth) -/datum/outfit/lavaland_syndicate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) +/datum/outfit/lavaland_syndicate/post_equip(mob/living/carbon/human/H) H.faction |= ROLE_SYNDICATE /obj/effect/mob_spawn/human/lavaland_syndicate/comms diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 3fba237c23..9aa89dcaf5 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -354,7 +354,7 @@ if("legs" in S.default_features) if(body_zone == BODY_ZONE_L_LEG || body_zone == BODY_ZONE_R_LEG) if(DIGITIGRADE in S.species_traits) - digitigrade_type = lowertext(H.dna.features["legs"]) + digitigrade_type = lowertext(H.dna.features.["legs"]) else digitigrade_type = null @@ -363,9 +363,9 @@ Smark = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]] if(Smark) body_markings_icon = Smark.icon - if(H.dna.features["mam_body_markings"] != "None") - body_markings = lowertext(H.dna.features["mam_body_markings"]) - aux_marking = lowertext(H.dna.features["mam_body_markings"]) + if(H.dna.features.["mam_body_markings"] != "None") + body_markings = lowertext(H.dna.features.["mam_body_markings"]) + aux_marking = lowertext(H.dna.features.["mam_body_markings"]) else body_markings = "plain" aux_marking = "plain" diff --git a/code/modules/surgery/experimental_dissection.dm b/code/modules/surgery/experimental_dissection.dm index 40fe90a829..3172496146 100644 --- a/code/modules/surgery/experimental_dissection.dm +++ b/code/modules/surgery/experimental_dissection.dm @@ -110,4 +110,4 @@ requires_tech = TRUE replaced_by = null -#undef BASE_HUMAN_REWARD \ No newline at end of file +#undef EXPDIS_FAIL_MSG \ No newline at end of file diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 94512dc597..a9830f36df 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -212,6 +212,7 @@ obj/item/organ/heart/cybernetic/upgraded/on_life() ramount += regen_amount /obj/item/organ/heart/cybernetic/upgraded/proc/used_dose() + . = ..() addtimer(VARSET_CALLBACK(src, dose_available, TRUE), 5 MINUTES) ramount = 0 diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 466f618cf3..194a10f4c4 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -1,3 +1,6 @@ +#define STANDARD_ORGAN_THRESHOLD 100 +#define STANDARD_ORGAN_HEALING 0.001 + /obj/item/organ name = "organ" icon = 'icons/obj/surgery.dmi' diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index aef3b31895..01505a940f 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1804,21 +1804,6 @@ datum/uplink_item/stealthy_weapons/taeclowndo_shoes cost = 4 restricted_roles = list("Cook", "Botanist", "Clown", "Mime") -/datum/uplink_item/role_restricted/strange_seeds - name = "Pack of strange seeds" - desc = "Mysterious seeds as strange as their name implies. Spooky." - item = /obj/item/seeds/random - cost = 2 - restricted_roles = list("Botanist") - illegal_tech = FALSE - -/datum/uplink_item/role_restricted/strange_seeds_10pack - name = "Pack of strange seeds x10" - desc = "Mysterious seeds as strange as their name implies. Spooky. These come in bulk" - item = /obj/item/storage/box/strange_seeds_10pack - cost = 20 - restricted_roles = list("Botanist") - /datum/uplink_item/role_restricted/ez_clean_bundle name = "EZ Clean Grenade Bundle" desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. \ diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index adaa56fc6d..e64435accc 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -125,7 +125,6 @@ products = list(/obj/item/clothing/glasses/hud/diagnostic = 3, /obj/item/clothing/under/rank/roboticist = 3, /obj/item/clothing/under/rank/roboticist/skirt = 3, - /obj/item/clothing/suit/hooded/wintercoat/robotics = 3, /obj/item/clothing/suit/toggle/labcoat = 3, /obj/item/clothing/shoes/sneakers/black = 3, /obj/item/clothing/gloves/fingerless = 3, @@ -259,7 +258,6 @@ vend_reply = "Thank you for using the JaniDrobe!" products = list(/obj/item/clothing/under/rank/janitor = 2, /obj/item/clothing/under/rank/janitor/skirt = 2, - /obj/item/clothing/suit/hooded/wintercoat/janitor = 3, /obj/item/cartridge/janitor = 3, /obj/item/clothing/gloves/color/black = 2, /obj/item/clothing/head/soft/purple = 2, @@ -342,7 +340,6 @@ vend_reply = "Thank you for using the ChemDrobe!" products = list(/obj/item/clothing/under/rank/chemist = 3, /obj/item/clothing/under/rank/chemist/skirt = 3, - /obj/item/clothing/suit/hooded/wintercoat/chemistry = 3, /obj/item/clothing/shoes/sneakers/white = 3, /obj/item/clothing/suit/toggle/labcoat/chemist = 3, /obj/item/storage/backpack/chemistry = 3, @@ -362,7 +359,6 @@ vend_reply = "Thank you for using the GeneDrobe!" products = list(/obj/item/clothing/under/rank/geneticist = 3, /obj/item/clothing/under/rank/geneticist/skirt = 3, - /obj/item/clothing/suit/hooded/wintercoat/genetics = 3, /obj/item/clothing/shoes/sneakers/white = 3, /obj/item/clothing/suit/toggle/labcoat/genetics = 3, /obj/item/storage/backpack/genetics = 3, @@ -380,7 +376,6 @@ vend_reply = "Thank you for using the ViroDrobe" products = list(/obj/item/clothing/under/rank/virologist = 3, /obj/item/clothing/under/rank/virologist/skirt = 3, - /obj/item/clothing/suit/hooded/wintercoat/viro = 3, /obj/item/clothing/shoes/sneakers/white = 3, /obj/item/clothing/suit/toggle/labcoat/virologist = 3, /obj/item/clothing/mask/surgical = 3, diff --git a/html/changelogs/AutoChangeLog-pr-9323.yml b/html/changelogs/AutoChangeLog-pr-9323.yml deleted file mode 100644 index 19e91deaf5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9323.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kevinz000" -delete-after: True -changes: - - rscadd: "you can now choose never for this round for magical antags" diff --git a/html/changelogs/AutoChangeLog-pr-9518.yml b/html/changelogs/AutoChangeLog-pr-9518.yml deleted file mode 100644 index 67a2c25938..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9518.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie (original PR by nicbn and Menshin)" -delete-after: True -changes: - - bugfix: "You can click on things that are under flaps or holo barriers." diff --git a/html/changelogs/AutoChangeLog-pr-9530.yml b/html/changelogs/AutoChangeLog-pr-9530.yml deleted file mode 100644 index ace41e9e97..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9530.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "Fixed the little issue of PDA skins not updating on job equip." - - tweak: "Anomaly Crystals of the clowning type will now rename the victim to their clown name preference when triggered, instead of giving them a random clown name." diff --git a/html/changelogs/AutoChangeLog-pr-9681.yml b/html/changelogs/AutoChangeLog-pr-9681.yml deleted file mode 100644 index c4c289425b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9681.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kevinz000" -delete-after: True -changes: - - balance: "bluespace wizard apprentice now has blink instead of targeted area teleportation" diff --git a/html/changelogs/AutoChangeLog-pr-9703.yml b/html/changelogs/AutoChangeLog-pr-9703.yml deleted file mode 100644 index 312057c2c6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9703.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kevinz000" -delete-after: True -changes: - - balance: "Emagged medibots now charcoal toxinlovers." diff --git a/html/changelogs/AutoChangeLog-pr-9720.yml b/html/changelogs/AutoChangeLog-pr-9720.yml deleted file mode 100644 index f4c4aade36..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9720.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kevinz000" -delete-after: True -changes: - - balance: "disablers buffed 0.7 --> 0.6 speed 24 --> 28 damage" diff --git a/html/changelogs/AutoChangeLog-pr-9749.yml b/html/changelogs/AutoChangeLog-pr-9749.yml deleted file mode 100644 index 3113fa08c3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9749.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Trilbyspaceclone" -delete-after: True -changes: - - balance: "Boh cant hold WEIGHT_CLASS_GIGANTIC, just Bulky. Makes katana, chainsaw and base ball bat into bulky items so they may fit" diff --git a/html/changelogs/AutoChangeLog-pr-9812.yml b/html/changelogs/AutoChangeLog-pr-9812.yml deleted file mode 100644 index d669d20343..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9812.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "Fixed missing delivery packages sprites" diff --git a/html/changelogs/AutoChangeLog-pr-9823.yml b/html/changelogs/AutoChangeLog-pr-9823.yml deleted file mode 100644 index 3408f04171..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9823.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Seris02" -delete-after: True -changes: - - rscadd: "Added nine winter coats" - - imageadd: "added images for the winter coats" - - tweak: "adds the mining winter coat to mining wardrobes and mining lockers" diff --git a/html/changelogs/AutoChangeLog-pr-9828.yml b/html/changelogs/AutoChangeLog-pr-9828.yml deleted file mode 100644 index 53dbebba28..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9828.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - tweak: "Meteor wave is no longer repeatable in dynamic." diff --git a/html/changelogs/AutoChangeLog-pr-9831.yml b/html/changelogs/AutoChangeLog-pr-9831.yml deleted file mode 100644 index 569fd14f69..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9831.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - tweak: "tweaked nuke ops" diff --git a/html/changelogs/AutoChangeLog-pr-9864.yml b/html/changelogs/AutoChangeLog-pr-9864.yml deleted file mode 100644 index ff1f4f6508..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9864.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Knouli" -delete-after: True -changes: - - rscadd: "attack_self proc for the legion core which triggers a self-heal al la the previous 'afterattack' proc, as if clicking on the character's own sprite to self-heal" - - rscadd: "admin logging for all three use cases of legion core healing - afterattack, attack_self, and implanted ui_action_click" diff --git a/html/changelogs/AutoChangeLog-pr-9865.yml b/html/changelogs/AutoChangeLog-pr-9865.yml deleted file mode 100644 index 6bef9d6b5b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9865.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Useroth" -delete-after: True -changes: - - bugfix: "numbered storages now are sorted in a consistent way, instead of depending on ordering of their contents var" diff --git a/html/changelogs/AutoChangeLog-pr-9866.yml b/html/changelogs/AutoChangeLog-pr-9866.yml deleted file mode 100644 index 1e6e8d0e88..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9866.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Useroth" -delete-after: True -changes: - - rscadd: "strange seeds as a buyable traitor botanist item" diff --git a/html/changelogs/AutoChangeLog-pr-9868.yml b/html/changelogs/AutoChangeLog-pr-9868.yml deleted file mode 100644 index 18c4388dcd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9868.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "fixed superlube waterflower, my bad." diff --git a/html/changelogs/AutoChangeLog-pr-9869.yml b/html/changelogs/AutoChangeLog-pr-9869.yml deleted file mode 100644 index ecb3ac6cb7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9869.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - rscadd: "The seedvault/alien plant DNA manipulator can now be printed off with Alien Biotechnology." diff --git a/html/changelogs/AutoChangeLog-pr-9871.yml b/html/changelogs/AutoChangeLog-pr-9871.yml deleted file mode 100644 index 3940d256c2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9871.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "dzahlus" -delete-after: True -changes: - - soundadd: "added a new gun sounds" - - sounddel: "removed an old gun sounds" diff --git a/html/changelogs/AutoChangeLog-pr-9873.yml b/html/changelogs/AutoChangeLog-pr-9873.yml deleted file mode 100644 index b0568bad14..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9873.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "Fixed closing the aux base construction RCD's door access settings window throwing you out of camera mode when closed." - - rscdel: "Removed not functional aux base RCD's door type menu. Use airlock painters, maybe." diff --git a/html/changelogs/AutoChangeLog-pr-9874.yml b/html/changelogs/AutoChangeLog-pr-9874.yml deleted file mode 100644 index 2e932c458b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9874.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - rscadd: "Honkbot oil spills are of the slippery kind now. Honk." diff --git a/html/changelogs/AutoChangeLog-pr-9875.yml b/html/changelogs/AutoChangeLog-pr-9875.yml deleted file mode 100644 index 4e14a561e7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9875.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam" -delete-after: True -changes: - - bugfix: "From-ghosts dynamic rulesets now actually listen to \"required candidates\"" diff --git a/html/changelogs/AutoChangeLog-pr-9876.yml b/html/changelogs/AutoChangeLog-pr-9876.yml deleted file mode 100644 index 4bc0a19954..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9876.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - imageadd: "local code scavenger finds forgotten slighty improved apc sprites left buried in old dusty folders." diff --git a/html/changelogs/AutoChangeLog-pr-9877.yml b/html/changelogs/AutoChangeLog-pr-9877.yml deleted file mode 100644 index c84cb7aa92..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9877.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "Seven old and otherwordly pAI holochassis icons have crawled their way out of the modular citadel catacombs." diff --git a/html/changelogs/AutoChangeLog-pr-9880.yml b/html/changelogs/AutoChangeLog-pr-9880.yml deleted file mode 100644 index 0f9dfa58f3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9880.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam" -delete-after: True -changes: - - bugfix: "Every dynamic-triggered event is now blacklisted from being triggered by the random events system when dynamic can trigger them." diff --git a/html/changelogs/AutoChangeLog-pr-9881.yml b/html/changelogs/AutoChangeLog-pr-9881.yml deleted file mode 100644 index 3ff9081e66..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9881.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam" -delete-after: True -changes: - - rscadd: "Dynamic voting now features extended, if recent rounds have been chaotic." diff --git a/html/changelogs/AutoChangeLog-pr-9886.yml b/html/changelogs/AutoChangeLog-pr-9886.yml deleted file mode 100644 index 64c011e37c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9886.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "chem dispenser beakers end up in your hand yet again." - - bugfix: "Bikehorns squeak yet again, the world is safe." diff --git a/html/changelogs/AutoChangeLog-pr-9887.yml b/html/changelogs/AutoChangeLog-pr-9887.yml deleted file mode 100644 index c76016575b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9887.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "Fox McCloud, Ghommie" -delete-after: True -changes: - - bugfix: "Fixes being able to mech-punch other mobs, as a pacifist" - - bugfix: "Fixes being able to hurt people, as a pacifist, by throwing them into a wall or other mob, or by using most martial arts (save for the unpredictable psychotic brawl, and the stamina-damage-only boxing)." - - balance: "Buffs boxing to outdamage natural stamina regeneration. Made the chance of outright missing your opponent actually possible." - - tweak: "Pacifists can now engage in the (laughably not harmful) sweet sweet art of boxing now." diff --git a/html/changelogs/AutoChangeLog-pr-9889.yml b/html/changelogs/AutoChangeLog-pr-9889.yml deleted file mode 100644 index 68094bd33d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9889.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "GrayRachnid" -delete-after: True -changes: - - bugfix: "Fixes golden toolbox missing inhand sprite" diff --git a/html/changelogs/AutoChangeLog-pr-9891.yml b/html/changelogs/AutoChangeLog-pr-9891.yml deleted file mode 100644 index 105749ea29..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9891.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam" -delete-after: True -changes: - - tweak: "Roundstart rulesets now scale on population ready rather than total population." diff --git a/html/changelogs/AutoChangeLog-pr-9896.yml b/html/changelogs/AutoChangeLog-pr-9896.yml deleted file mode 100644 index 378129d227..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9896.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "Cyborgs can now actually use cameras from a distance." diff --git a/html/changelogs/AutoChangeLog-pr-9898.yml b/html/changelogs/AutoChangeLog-pr-9898.yml deleted file mode 100644 index 002e3b544d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9898.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "Suicides are yet again painful and instant and won't throw people in deep crit from full health." diff --git a/html/changelogs/AutoChangeLog-pr-9908.yml b/html/changelogs/AutoChangeLog-pr-9908.yml deleted file mode 100644 index fb0ae06238..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9908.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "fixed rogue pixels on the energy gu- ahem blaster carbine... and a few apc lights states being neigh-indistinguishable." diff --git a/html/changelogs/AutoChangeLog-pr-9909.yml b/html/changelogs/AutoChangeLog-pr-9909.yml deleted file mode 100644 index 7cfb6ce5b2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-9909.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "kiwedespars" -delete-after: True -changes: - - rscdel: "removed moth fluff coloring you like your wings" - - balance: "made insect not so bad." diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index e9f32c428a..69e75e7d28 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/pai.dmi b/icons/mob/pai.dmi index d8162cb5a7..94fb2ee6e7 100644 Binary files a/icons/mob/pai.dmi and b/icons/mob/pai.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 07467f9770..c469773993 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/wings.dmi b/icons/mob/wings.dmi index 7d95805dc5..105da7d865 100644 Binary files a/icons/mob/wings.dmi and b/icons/mob/wings.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 695e623c66..195742c68c 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 42f85bb69e..f62e546ed2 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index d23af6c9b4..ca339b5262 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index 1ba953d284..1da5a66546 100644 Binary files a/icons/obj/power.dmi and b/icons/obj/power.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 3b8b67ea5c..fedb6c828e 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index ee703fc70b..efd7974897 100644 Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ diff --git a/modular_citadel/code/game/objects/structures/crates_lockers/closets/fitness.dm b/modular_citadel/code/game/objects/structures/crates_lockers/closets/fitness.dm new file mode 100644 index 0000000000..1ef2285878 --- /dev/null +++ b/modular_citadel/code/game/objects/structures/crates_lockers/closets/fitness.dm @@ -0,0 +1,5 @@ +/obj/structure/closet/athletic_mixed/PopulateContents() + ..() + new /obj/item/clothing/under/polychromic/shortpants(src) + new /obj/item/clothing/under/polychromic/shortpants(src) + new /obj/item/clothing/under/polychromic/shortpants(src) \ No newline at end of file diff --git a/modular_citadel/code/game/objects/structures/crates_lockers/closets/secure/citadel_lockers.dm b/modular_citadel/code/game/objects/structures/crates_lockers/closets/secure/citadel_lockers.dm new file mode 100644 index 0000000000..40a8224627 --- /dev/null +++ b/modular_citadel/code/game/objects/structures/crates_lockers/closets/secure/citadel_lockers.dm @@ -0,0 +1,7 @@ +/obj/structure/closet/secure_closet/quartermaster/PopulateContents() + ..() + new /obj/item/radio/headset/heads/qm(src) + +/obj/structure/closet/secure_closet/CMO/PopulateContents() + ..() + new /obj/item/storage/hypospraykit/cmo(src) \ No newline at end of file diff --git a/modular_citadel/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/modular_citadel/code/game/objects/structures/crates_lockers/closets/wardrobe.dm new file mode 100644 index 0000000000..ba4fa3787b --- /dev/null +++ b/modular_citadel/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -0,0 +1,37 @@ +/obj/structure/closet/wardrobe/mixed/PopulateContents() + if(prob(40)) + new /obj/item/clothing/suit/jacket(src) + if(prob(40)) + new /obj/item/clothing/suit/jacket(src) + new /obj/item/clothing/under/polychromic/jumpsuit(src) + new /obj/item/clothing/under/polychromic/jumpsuit(src) + new /obj/item/clothing/under/polychromic/jumpsuit(src) + new /obj/item/clothing/under/polychromic/shirt(src) + new /obj/item/clothing/under/polychromic/shirt(src) + new /obj/item/clothing/under/polychromic/shirt(src) + new /obj/item/clothing/under/polychromic/kilt(src) + new /obj/item/clothing/under/polychromic/kilt(src) + new /obj/item/clothing/under/polychromic/kilt(src) + new /obj/item/clothing/under/polychromic/skirt(src) + new /obj/item/clothing/under/polychromic/skirt(src) + new /obj/item/clothing/under/polychromic/skirt(src) + new /obj/item/clothing/under/polychromic/shorts(src) + new /obj/item/clothing/under/polychromic/shorts(src) + new /obj/item/clothing/under/polychromic/shorts(src) + new /obj/item/clothing/mask/bandana/red(src) + new /obj/item/clothing/mask/bandana/red(src) + new /obj/item/clothing/mask/bandana/blue(src) + new /obj/item/clothing/mask/bandana/blue(src) + new /obj/item/clothing/mask/bandana/gold(src) + new /obj/item/clothing/mask/bandana/gold(src) + new /obj/item/clothing/shoes/sneakers/black(src) + new /obj/item/clothing/shoes/sneakers/brown(src) + new /obj/item/clothing/shoes/sneakers/white(src) + if(prob(30)) + new /obj/item/clothing/suit/hooded/wintercoat(src) + new /obj/item/clothing/shoes/winterboots(src) + return + +/obj/structure/closet/wardrobe/curator/PopulateContents() + ..() + new /obj/item/clothing/accessory/pocketprotector/full(src) \ No newline at end of file diff --git a/modular_citadel/code/game/objects/tools.dm b/modular_citadel/code/game/objects/tools.dm new file mode 100644 index 0000000000..5a6cd9bf42 --- /dev/null +++ b/modular_citadel/code/game/objects/tools.dm @@ -0,0 +1,18 @@ +/* +// OVERRIDES FOR TOOL SPRITES GO HERE +*/ + +//CROWBAR + +/obj/item/crowbar + icon = 'modular_citadel/icons/obj/tools.dmi' + +//WIRECUTTERS disabled pending better sprites +/* +/obj/item/wirecutters + icon = 'modular_citadel/icons/obj/tools.dmi' +*/ +//WRENCH + +/obj/item/wrench + icon = 'modular_citadel/icons/obj/tools.dmi' \ No newline at end of file diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm index ed28185bb7..6c9da17289 100644 --- a/modular_citadel/code/modules/arousal/arousal.dm +++ b/modular_citadel/code/modules/arousal/arousal.dm @@ -159,7 +159,7 @@ to_chat(M, "Arousal is disabled. Feature is unavailable.") -/mob/living/proc/mob_climax(forced_climax = FALSE)//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while. +/mob/living/proc/mob_climax()//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while. set name = "Masturbate" set category = "IC" if(canbearoused && !restrained() && !stat) diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm index e0f589ac3e..39d1de1fa7 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm @@ -253,7 +253,7 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! if(!do_after(R, 50, target = target)) return //If they moved away, you can't eat them. to_chat(R, "You finish off \the [target.name].") - var/obj/item/stock_parts/cell/C = target + var/obj/item/stock_parts/cell.C = target R.cell.charge = R.cell.charge + (C.charge / 3) //Instant full cell upgrades op idgaf qdel(target) return @@ -322,7 +322,7 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! /obj/item/soap/tongue/flavour/afterattack(atom/target, mob/user, proximity) if(!proximity) return - var/mob/living/silicon/robot/R = user + var/mob/living/silicon/robot.R = user if(ishuman(target)) var/mob/living/L = target if(status == 0 && check_zone(R.zone_selected) == "head") diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm index ce254d1b12..35474f4c69 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm @@ -163,9 +163,9 @@ Creating a chem with a low purity will make you permanently fall in love with so creator = get_mob_by_key(creatorID) /datum/reagent/fermi/enthrall/on_new(list/data) - creatorID = data["creatorID"] - creatorGender = data["creatorGender"] - creatorName = data["creatorName"] + creatorID = data.["creatorID"] + creatorGender = data.["creatorGender"] + creatorName = data.["creatorName"] creator = get_mob_by_key(creatorID) /datum/reagent/fermi/enthrall/on_mob_add(mob/living/carbon/M) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm index 5f3fc61fa7..dba09b28a6 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm @@ -32,7 +32,7 @@ can_synth = TRUE /datum/reagent/fermi/eigenstate/on_new(list/data) - location_created = data["location_created"] + location_created = data.["location_created"] //Main functions /datum/reagent/fermi/eigenstate/on_mob_life(mob/living/M) //Teleports to chemistry! @@ -54,7 +54,7 @@ to_chat(M, "You feel your wavefunction split!") if(cached_purity > 0.9) //Teleports you home if it's pure enough if(!location_created && data) //Just in case - location_created = data["location_created"] + location_created = data.["location_created"] log_game("FERMICHEM: [M] ckey: [M.key] returned to [location_created] using eigenstasium") do_sparks(5,FALSE,M) do_teleport(M, location_created, 0, asoundin = 'sound/effects/phasein.ogg') diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 76f29cb887..d2f86e7919 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -131,7 +131,7 @@ var/turf/open/location = get_turf(my_atom) if(location) E.location_created = location - E.data["location_created"] = location + E.data.["location_created"] = location //serum @@ -312,16 +312,16 @@ for(var/mob/M in seen) to_chat(M, "The reaction splutters and fails to react properly.") //Just in case E.purity = 0 - if (B.data["gender"] == "female") - E.data["creatorGender"] = "Mistress" + if (B.data.["gender"] == "female") + E.data.["creatorGender"] = "Mistress" E.creatorGender = "Mistress" else - E.data["creatorGender"] = "Master" + E.data.["creatorGender"] = "Master" E.creatorGender = "Master" - E.data["creatorName"] = B.data["real_name"] - E.creatorName = B.data["real_name"] - E.data["creatorID"] = B.data["ckey"] - E.creatorID = B.data["ckey"] + E.data["creatorName"] = B.data.["real_name"] + E.creatorName = B.data.["real_name"] + E.data.["creatorID"] = B.data.["ckey"] + E.creatorID = B.data.["ckey"] //So slimes can play too. /datum/chemical_reaction/fermi/enthrall/slime @@ -335,16 +335,16 @@ for(var/mob/M in seen) to_chat(M, "The reaction splutters and fails to react.") //Just in case E.purity = 0 - if (B.data["gender"] == "female") - E.data["creatorGender"] = "Mistress" + if (B.data.["gender"] == "female") + E.data.["creatorGender"] = "Mistress" E.creatorGender = "Mistress" else - E.data["creatorGender"] = "Master" + E.data.["creatorGender"] = "Master" E.creatorGender = "Master" - E.data["creatorName"] = B.data["real_name"] - E.creatorName = B.data["real_name"] - E.data["creatorID"] = B.data["ckey"] - E.creatorID = B.data["ckey"] + E.data["creatorName"] = B.data.["real_name"] + E.creatorName = B.data.["real_name"] + E.data.["creatorID"] = B.data.["ckey"] + E.creatorID = B.data.["ckey"] /datum/chemical_reaction/fermi/enthrall/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH) var/turf/T = get_turf(my_atom) diff --git a/modular_citadel/icons/mob/mutant_bodyparts.dmi b/modular_citadel/icons/mob/mutant_bodyparts.dmi index 8ff4a3ddb5..a66895f864 100644 Binary files a/modular_citadel/icons/mob/mutant_bodyparts.dmi and b/modular_citadel/icons/mob/mutant_bodyparts.dmi differ diff --git a/modular_citadel/icons/mob/pai.dmi b/modular_citadel/icons/mob/pai.dmi new file mode 100644 index 0000000000..d8162cb5a7 Binary files /dev/null and b/modular_citadel/icons/mob/pai.dmi differ diff --git a/modular_citadel/icons/mob/suit_digi.dmi b/modular_citadel/icons/mob/suit_digi.dmi index a5d37ba4a2..fdcedac095 100644 Binary files a/modular_citadel/icons/mob/suit_digi.dmi and b/modular_citadel/icons/mob/suit_digi.dmi differ diff --git a/modular_citadel/icons/obj/power.dmi b/modular_citadel/icons/obj/power.dmi new file mode 100644 index 0000000000..d0066b96de Binary files /dev/null and b/modular_citadel/icons/obj/power.dmi differ diff --git a/modular_citadel/icons/obj/tools.dmi b/modular_citadel/icons/obj/tools.dmi new file mode 100644 index 0000000000..7b99880799 Binary files /dev/null and b/modular_citadel/icons/obj/tools.dmi differ diff --git a/sound/weapons/Gunshot.ogg b/sound/weapons/Gunshot.ogg index 46369bbb62..4fd082ce7f 100644 Binary files a/sound/weapons/Gunshot.ogg and b/sound/weapons/Gunshot.ogg differ diff --git a/sound/weapons/Gunshot2.ogg b/sound/weapons/Gunshot2.ogg index 4801989d3d..2dfc6fc1e9 100644 Binary files a/sound/weapons/Gunshot2.ogg and b/sound/weapons/Gunshot2.ogg differ diff --git a/sound/weapons/Gunshot3.ogg b/sound/weapons/Gunshot3.ogg index 66da509083..97799dff10 100644 Binary files a/sound/weapons/Gunshot3.ogg and b/sound/weapons/Gunshot3.ogg differ diff --git a/sound/weapons/Gunshot4.ogg b/sound/weapons/Gunshot4.ogg index 322e5c0cbd..2d971f7b1a 100644 Binary files a/sound/weapons/Gunshot4.ogg and b/sound/weapons/Gunshot4.ogg differ diff --git a/sound/weapons/Gunshot_silenced.ogg b/sound/weapons/Gunshot_silenced.ogg index 13f3702fd4..ef250d86aa 100644 Binary files a/sound/weapons/Gunshot_silenced.ogg and b/sound/weapons/Gunshot_silenced.ogg differ diff --git a/sound/weapons/Gunshot_smg.ogg b/sound/weapons/Gunshot_smg.ogg index ce03376b52..5c0000bb32 100644 Binary files a/sound/weapons/Gunshot_smg.ogg and b/sound/weapons/Gunshot_smg.ogg differ diff --git a/sound/weapons/IonRifle.ogg b/sound/weapons/IonRifle.ogg index 37647c081f..b808068e55 100644 Binary files a/sound/weapons/IonRifle.ogg and b/sound/weapons/IonRifle.ogg differ diff --git a/sound/weapons/Laser.ogg b/sound/weapons/Laser.ogg index 4ff9e82ff9..0fbb611f9c 100644 Binary files a/sound/weapons/Laser.ogg and b/sound/weapons/Laser.ogg differ diff --git a/sound/weapons/LaserSlugv3.ogg b/sound/weapons/LaserSlugv3.ogg index 0c3de3d4fd..dbb8f4b954 100644 Binary files a/sound/weapons/LaserSlugv3.ogg and b/sound/weapons/LaserSlugv3.ogg differ diff --git a/sound/weapons/Taser.ogg b/sound/weapons/Taser.ogg index 4181715240..8992b71f50 100644 Binary files a/sound/weapons/Taser.ogg and b/sound/weapons/Taser.ogg differ diff --git a/sound/weapons/laser3.ogg b/sound/weapons/laser3.ogg index 03d4d933f2..134be315fc 100644 Binary files a/sound/weapons/laser3.ogg and b/sound/weapons/laser3.ogg differ diff --git a/sound/weapons/lasercannonfire.ogg b/sound/weapons/lasercannonfire.ogg index cbbc3ce53c..612d608db8 100644 Binary files a/sound/weapons/lasercannonfire.ogg and b/sound/weapons/lasercannonfire.ogg differ diff --git a/sound/weapons/magpistol.ogg b/sound/weapons/magpistol.ogg index 4b94aa1e0a..c130714962 100644 Binary files a/sound/weapons/magpistol.ogg and b/sound/weapons/magpistol.ogg differ diff --git a/sound/weapons/magrifle.ogg b/sound/weapons/magrifle.ogg index 67d6500a6c..2ec2e72af6 100644 Binary files a/sound/weapons/magrifle.ogg and b/sound/weapons/magrifle.ogg differ diff --git a/sound/weapons/pulse.ogg b/sound/weapons/pulse.ogg index df7f96f7cf..617b903231 100644 Binary files a/sound/weapons/pulse.ogg and b/sound/weapons/pulse.ogg differ diff --git a/sound/weapons/pulse2.ogg b/sound/weapons/pulse2.ogg index 2e93bfd17f..44c46fc715 100644 Binary files a/sound/weapons/pulse2.ogg and b/sound/weapons/pulse2.ogg differ diff --git a/sound/weapons/pulse3.ogg b/sound/weapons/pulse3.ogg index 0484b2cc81..b275fba2a8 100644 Binary files a/sound/weapons/pulse3.ogg and b/sound/weapons/pulse3.ogg differ diff --git a/sound/weapons/smg_empty_alarm.ogg b/sound/weapons/smg_empty_alarm.ogg index 325cabe9d8..f031b4e1d8 100644 Binary files a/sound/weapons/smg_empty_alarm.ogg and b/sound/weapons/smg_empty_alarm.ogg differ diff --git a/sound/weapons/taser2.ogg b/sound/weapons/taser2.ogg index e522043e9b..2cdab84378 100644 Binary files a/sound/weapons/taser2.ogg and b/sound/weapons/taser2.ogg differ diff --git a/strings/clockwork_cult_changelog.txt b/strings/clockwork_cult_changelog.txt index 10e924ff00..3c5e5f5ef6 100644 --- a/strings/clockwork_cult_changelog.txt +++ b/strings/clockwork_cult_changelog.txt @@ -2,7 +2,3 @@ Stargazers have been removed. Integration cogs are now the primary way of creati Brass Skewers now deal damage to mechs. Mech Sensors are now available. They're similar to pressure sensors, but trigger if a mech steps on them, and can be built the same way. Power nullifiers are now available. Upon triggering, they send out a small 3x3 EMP, affecting cultists and enemies alike. -Zelus oil: A new reagent. It can be used to heal the faithful to Ratvar, kill heretics and moreso stun blood cultists, or splashed onto metal sheets to make brass. -This chemical can be found in minimal quantities by grinding brass sheets. -Brass Flasks: Intended to store Zelus Oil in, but can also be used as fragile single use throwing weapons in a pinch! -These are crafted with a single sheet of brass and fit in the Clockwork Cuirass' suit storage. diff --git a/tgstation.dme b/tgstation.dme index f5dc622315..f90c6a6b42 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -3010,6 +3010,7 @@ #include "modular_citadel\code\game\machinery\wishgranter.dm" #include "modular_citadel\code\game\objects\cit_screenshake.dm" #include "modular_citadel\code\game\objects\items.dm" +#include "modular_citadel\code\game\objects\tools.dm" #include "modular_citadel\code\game\objects\effects\spawner\spawners.dm" #include "modular_citadel\code\game\objects\effects\temporary_visuals\souldeath.dm" #include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\impact.dm" @@ -3025,6 +3026,9 @@ #include "modular_citadel\code\game\objects\items\storage\firstaid.dm" #include "modular_citadel\code\game\objects\structures\tables_racks.dm" #include "modular_citadel\code\game\objects\structures\beds_chairs\chair.dm" +#include "modular_citadel\code\game\objects\structures\crates_lockers\closets\fitness.dm" +#include "modular_citadel\code\game\objects\structures\crates_lockers\closets\wardrobe.dm" +#include "modular_citadel\code\game\objects\structures\crates_lockers\closets\secure\citadel_lockers.dm" #include "modular_citadel\code\modules\admin\admin.dm" #include "modular_citadel\code\modules\admin\chat_commands.dm" #include "modular_citadel\code\modules\admin\holder2.dm"