diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index cfb90f13..ad1cbdce 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -226,3 +226,5 @@ #define FORCE_BOOLEAN(x) ((x)? TRUE : FALSE) #define TILES_TO_PIXELS(tiles) (tiles * PIXELS) + +#define CLAMP(CLVALUE,CLMIN,CLMAX) clamp(CLVALUE, CLMIN, CLMAX) \ No newline at end of file diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index afa9be57..cb45a7e4 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -230,7 +230,8 @@ "womb_fluid" = "femcum", "ipc_screen" = snowflake_ipc_antenna_list ? pick(snowflake_ipc_antenna_list) : "None", "ipc_antenna" = "None", - "flavor_text" = "")) + "flavor_text" = "", + "ooc_text" = "")) /proc/random_hair_style(gender) switch(gender) @@ -549,6 +550,8 @@ GLOBAL_LIST_EMPTY(species_list) override = TRUE if(isnewplayer(M) && !override) continue + if(SSticker.current_state == GAME_STATE_FINISHED) + override = TRUE if(M.stat != DEAD && !override) continue if(speaker_key && speaker_key in prefs.ignoring) diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm index 8819eb4d..fa37e9ee 100644 --- a/code/__HELPERS/priority_announce.dm +++ b/code/__HELPERS/priority_announce.dm @@ -10,7 +10,7 @@ announcement += "

[html_encode(title)]

" else if(type == "Captain") announcement += "

Captain Announces

" - GLOB.news_network.SubmitArticle(text, "Captain's Announcement", "Station Announcements", null) + GLOB.news_network.SubmitArticle(html_encode(text), "Captain's Announcement", "Station Announcements", null) else if(!sender_override) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index ec1abadd..d8e97fd5 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -189,6 +189,9 @@ CHECK_TICK + set_observer_default_invisibility(0, "The round is over! You are now visible to the living.") + + CHECK_TICK // Stop eorg mech prepping. for(var/obj/mecha/combat/Obj in world) qdel(Obj) diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 756ad692..d12abd2d 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -126,7 +126,7 @@ using.screen_loc = ui_movi static_inventory += using - //CITADEL CHANGES - sprint button +/* //CITADEL CHANGES - sprint button using = new /obj/screen/sprintbutton using.icon = tg_ui_icon_to_cit_ui(ui_style) using.icon_state = (owner.sprinting ? "act_sprint_on" : "act_sprint") @@ -139,7 +139,7 @@ using.screen_loc = ui_sprintbufferloc sprint_buffer = using static_inventory += using - +*/ using = new /obj/screen/drop() using.icon = ui_style @@ -323,12 +323,12 @@ arousal.icon_state = (owner.canbearoused == 1 ? "arousal0" : "") infodisplay += arousal - staminas = new /obj/screen/staminas() - infodisplay += staminas +// staminas = new /obj/screen/staminas() +// infodisplay += staminas - if(!CONFIG_GET(flag/disable_stambuffer)) - staminabuffer = new /obj/screen/staminabuffer() - infodisplay += staminabuffer +// if(!CONFIG_GET(flag/disable_stambuffer)) +// staminabuffer = new /obj/screen/staminabuffer() +// infodisplay += staminabuffer //END OF CIT CHANGES healthdoll = new /obj/screen/healthdoll() diff --git a/code/controllers/subsystem/mobs.dm b/code/controllers/subsystem/mobs.dm index 1e8efff0..efc24629 100644 --- a/code/controllers/subsystem/mobs.dm +++ b/code/controllers/subsystem/mobs.dm @@ -3,6 +3,7 @@ SUBSYSTEM_DEF(mobs) priority = FIRE_PRIORITY_MOBS flags = SS_KEEP_TIMING | SS_NO_INIT runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME + wait = 5 var/list/currentrun = list() var/static/list/clients_by_zlevel[][] diff --git a/code/datums/components/footstep.dm b/code/datums/components/footstep.dm index 9410804d..2ee01a29 100644 --- a/code/datums/components/footstep.dm +++ b/code/datums/components/footstep.dm @@ -35,7 +35,7 @@ e -= 5 steps++ - if(steps >= 3) + if(steps >= 2) steps = 0 else diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 4cda20f1..54fe390c 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -184,15 +184,15 @@ switch(sanity) if(SANITY_INSANE to SANITY_CRAZY) setInsanityEffect(MAJOR_INSANITY_PEN) - master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=1.5) //Did we change something ? movetypes is runtiming, movetypes=(~FLYING)) + master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=1) //Did we change something ? movetypes is runtiming, movetypes=(~FLYING)) sanity_level = 6 if(SANITY_CRAZY to SANITY_UNSTABLE) setInsanityEffect(MINOR_INSANITY_PEN) - master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=1)//, movetypes=(~FLYING)) + master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=0.5)//, movetypes=(~FLYING)) sanity_level = 5 if(SANITY_UNSTABLE to SANITY_DISTURBED) setInsanityEffect(0) - master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=0.5)//, movetypes=(~FLYING)) + master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=0.25)//, movetypes=(~FLYING)) sanity_level = 4 if(SANITY_DISTURBED to SANITY_NEUTRAL) setInsanityEffect(0) diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm index 6ae857ce..a9d2c73b 100644 --- a/code/datums/components/orbiter.dm +++ b/code/datums/components/orbiter.dm @@ -30,6 +30,7 @@ RegisterSignal(parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, .proc/orbiter_glide_size_update) + /datum/component/orbiter/UnregisterFromParent() var/atom/target = parent while(ismovableatom(target)) @@ -70,6 +71,7 @@ orbiter.orbiting = src RegisterSignal(orbiter, COMSIG_MOVABLE_MOVED, orbiter_spy) var/matrix/initial_transform = matrix(orbiter.transform) + orbiters[orbiter] = initial_transform // Head first! if(pre_rotation) @@ -92,8 +94,6 @@ var/atom/movable/AM = parent orbiter.glide_size = AM.glide_size - //we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit - orbiter.transform = initial_transform orbiter.forceMove(get_turf(parent)) to_chat(orbiter, "Now orbiting [parent].") @@ -103,6 +103,8 @@ SEND_SIGNAL(parent, COMSIG_ATOM_ORBIT_END, orbiter, refreshing) UnregisterSignal(orbiter, COMSIG_MOVABLE_MOVED) orbiter.SpinAnimation(0, 0) + if(istype(orbiters[orbiter],/matrix)) //This is ugly. + orbiter.transform = orbiters[orbiter] orbiters -= orbiter orbiter.stop_orbit(src) orbiter.orbiting = null diff --git a/code/datums/dna.dm b/code/datums/dna.dm index ac612436..255ff680 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -55,6 +55,7 @@ var/mob/living/carbon/human/H = destination H.give_genitals(TRUE)//This gives the body the genitals of this DNA. Used for any transformations based on DNA destination.flavor_text = destination.dna.features["flavor_text"] //Update the flavor_text to use new dna text + destination.ooc_text = destination.dna.features["ooc_text"] //Update the flavor_text to use new dna text if(transfer_SE) destination.dna.mutation_index = mutation_index @@ -356,6 +357,7 @@ if(newfeatures) dna.features = newfeatures flavor_text = dna.features["flavor_text"] //Update the flavor_text to use new dna text + ooc_text = dna.features["ooc_text"] //Update the flavor_text to use new dna text if(mrace) var/datum/species/newrace = new mrace.type diff --git a/code/datums/spawners_menu.dm b/code/datums/spawners_menu.dm index 1adcb6fd..fac6f7fd 100644 --- a/code/datums/spawners_menu.dm +++ b/code/datums/spawners_menu.dm @@ -20,6 +20,7 @@ this["name"] = spawner this["short_desc"] = "" this["flavor_text"] = "" + this["ooc_text"] = "" this["important_warning"] = "" this["refs"] = list() for(var/spawner_obj in GLOB.mob_spawners[spawner]) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 04314dd7..e08d29cc 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -315,6 +315,9 @@ /atom/proc/examine(mob/user) . = list("[get_examine_string(user, TRUE)].") + if(!isliving(src)) + user.visible_message("[user] examines [src].",\ + "You examine [src].") if(desc) . += desc diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index fbc9fdf1..3af57b72 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -28,7 +28,7 @@ var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move var/list/client_mobs_in_contents // This contains all the client mobs within this container var/list/acted_explosions //for explosion dodging - glide_size = 8 + glide_size = 4 appearance_flags = TILE_BOUND|PIXEL_SCALE|LONG_GLIDE var/datum/forced_movement/force_moving = null //handled soley by forced_movement.dm var/floating = FALSE diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index e572ccfc..10345e21 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -11,7 +11,7 @@ var/obj/item/assembly/signaler/anomaly/aSignal var/area/impact_area - var/lifespan = 1190 + var/lifespan = 1690 var/death_time var/countdown_colour diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm new file mode 100644 index 00000000..e69de29b diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 04b714f1..69c52c91 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -240,7 +240,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) prefs.last_ip = address //these are gonna be used for banning prefs.last_id = computer_id //these are gonna be used for banning - fps = 40 + fps = prefs.clientfps if(fexists(roundend_report_file())) add_verb(src, /client/proc/show_previous_roundend_report) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 6b432547..1e447659 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -180,7 +180,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) "womb_fluid" = /datum/reagent/consumable/femcum, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", - "flavor_text" = "" + "flavor_text" = "", + "ooc_text" = "" ) /// Security record note section @@ -383,7 +384,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(2) update_preview_icon() dat += "
" - dat += "

Flavor Text

" + dat += "

General Examine Text

" dat += "Set Examine Text
" if(length(features["flavor_text"]) <= 40) if(!length(features["flavor_text"])) @@ -392,6 +393,16 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "[features["flavor_text"]]" else dat += "[TextPreview(features["flavor_text"])]...
" + dat += "

OOC Text

" + dat += "Set OOC Text
" + if(length(features["ooc_text"]) <= 40) + if(!length(features["ooc_text"])) + dat += "\[...\]" + else + dat += "[features["ooc_text"]]" + else + dat += "[TextPreview(features["ooc_text"])]...
" + dat += "

Body

" dat += "Gender:[gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
" dat += "Species:[pref_species.id]
" @@ -1695,11 +1706,18 @@ GLOBAL_LIST_EMPTY(preferences_datums) medical_records = rec if("flavor_text") - var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", html_decode(features["flavor_text"]), MAX_MESSAGE_LEN, TRUE) + var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This should be IC, and description people can deduce at a quick glance.", "Flavor Text", html_decode(features["flavor_text"]), MAX_MESSAGE_LEN, TRUE) if(msg) msg = msg features["flavor_text"] = msg + if("ooc_text") + var/msg = stripped_multiline_input(usr, "Set the OOC text in your 'examine' verb. This should be OOC only!", "OOC Text", html_decode(features["ooc_text"]), MAX_MESSAGE_LEN, TRUE) + if(msg) + msg = msg + features["ooc_text"] = msg + + if("hide_ckey") hide_ckey = !hide_ckey if(user) @@ -2532,14 +2550,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("allow_midround_antag") toggles ^= MIDROUND_ANTAG - + if("sync_antag_with_chars") toggles ^= ANTAG_SYNC_WITH_CHARS if(!(toggles & ANTAG_SYNC_WITH_CHARS) && path) var/savefile/S = new /savefile(path) - if(S) + if(S) S["special_roles"] >> be_special - + if("copy_antag_to_chars") if(path) var/savefile/S = new /savefile(path) @@ -2553,7 +2571,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) to_chat(parent, "Successfully copied antagonist preferences to all characters.") else to_chat(parent, "Could not write to file.") - + if("reset_antag") be_special = list() diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 823d21b9..1507f830 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -428,7 +428,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //flavor text //Let's make our players NOT cry desperately as we wipe their savefiles of their special snowflake texts: if((S["flavor_text"] != "") && (S["flavor_text"] != null) && S["flavor_text"]) //If old text isn't null and isn't "" but still exists. - S["flavor_text"] >> features["flavor_text"] //Load old flavortext as current dna-based flavortext + S["flavor_text"] >> features["flavor_text"] //Load old flavortext as current dna-based flavortext WRITE_FILE(S["feature_flavor_text"], features["flavor_text"]) //Save it in our new type of flavor-text WRITE_FILE(S["flavor_text"] , "") //Remove old flavortext, completing the cut-and-paste into the new format. @@ -436,6 +436,14 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car else //We have no old flavortext, default to new S["feature_flavor_text"] >> features["flavor_text"] + if((S["ooc_text"] != "") && (S["ooc_text"] != null) && S["ooc_text"]) + S["ooc_text"] >> features["ooc_text"] + + WRITE_FILE(S["feature_ooc_text"], features["ooc_text"]) //Save it in our new type of flavor-text + WRITE_FILE(S["ooc_text"], "") //Remove old flavortext, completing the cut-and-paste into the new format. + + else + S["feature_ooc_text"] >> features["ooc_text"] //try to fix any outdated data if necessary if(needs_update >= 0) diff --git a/code/modules/keybindings/bindings_human.dm b/code/modules/keybindings/bindings_human.dm index ed033935..8432c40e 100644 --- a/code/modules/keybindings/bindings_human.dm +++ b/code/modules/keybindings/bindings_human.dm @@ -56,25 +56,7 @@ return stored.attack_hand(src) // take out thing from backpack return - switch(_key) - if("Shift") - if(!user.prefs.sprint_spacebar) - user.prefs.sprint_toggle ? togglesprint() : sprint_hotkey(TRUE) //Yes, this looks hacky. Yes, this works. - return - if("Space") - if(user.prefs.sprint_spacebar) - user.prefs.sprint_toggle ? togglesprint() : sprint_hotkey(TRUE) - return return ..() /mob/living/carbon/human/key_up(_key, client/user) - switch(_key) - if("Shift") - if(!user.prefs.sprint_spacebar && !user.prefs.sprint_toggle) - sprint_hotkey(FALSE) - return - if("Space") - if(user.prefs.sprint_spacebar && !user.prefs.sprint_toggle) - sprint_hotkey(FALSE) - return return ..() diff --git a/code/modules/keybindings/bindings_robot.dm b/code/modules/keybindings/bindings_robot.dm index 29fb36fa..0b1a646f 100644 --- a/code/modules/keybindings/bindings_robot.dm +++ b/code/modules/keybindings/bindings_robot.dm @@ -9,14 +9,7 @@ if("Q") uneq_active() return - if("Shift") - sprint_hotkey(TRUE) - return return ..() /mob/living/silicon/robot/key_up(_key, client/user) - switch(_key) - if("Shift") - sprint_hotkey(FALSE) - return return ..() diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 40e72ed7..ab583c70 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -8,6 +8,7 @@ var/t_is = p_are() var/obscure_name var/dispSize = round(12*size_multiplier) // gets the character's sprite size percent and converts it to the nearest half foot + var/output = "" if(isliving(user)) var/mob/living/L = user @@ -23,11 +24,16 @@ if (vassDesc != "") . += vassDesc + output = "
" var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) if(ishuman(src)) //user just returned, y'know, the user's own species. dumb. var/mob/living/carbon/human/H = src + if(gender) + output += "[icon2html('hyperstation/icons/chat/gender.dmi', world, gender)]" + + output += "[src.name]" var/datum/species/pref_species = H.dna.species if(get_visible_name() == "Unknown") // same as flavor text, but hey it works. . += "You can't make out what species they are." @@ -35,6 +41,8 @@ . += "You can't make out what species they are." else . += "[t_He] [t_is] a [H.dna.custom_species ? H.dna.custom_species : pref_species.name]!" + output += "([H.dna.custom_species ? H.dna.custom_species : pref_species.name])" + output += "
" //uniform if(w_uniform && !(SLOT_W_UNIFORM in obscured)) @@ -408,16 +416,30 @@ else if(isobserver(user) && traitstring) . += "Traits: [traitstring]" + if(print_flavor_text()) + output += "
General" if(get_visible_name() == "Unknown") //Are we sure we know who this is? Don't show flavor text unless we can recognize them. Prevents certain metagaming with impersonation. . += "...?" + output += "
...?" else if(skipface) //Sometimes we're not unknown, but impersonating someone in a hardsuit, let's not reveal our flavor text then either. . += "...?" + output += "
...?" else . += "[print_flavor_text()]" + output += "
[replacetext(sanitize(html_decode(flavor_text)), "#", "

")]" + if(ooc_text) + output += "

OOC" + output += "
[replacetext(sanitize(html_decode(ooc_text)), "#", "

")]" + SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, msg) . += "*---------*" + //stat panel + if(ishuman(src)) + user.client << output(output, "statbrowser:update_examine") //open the examine window + user.client << output(null, "statbrowser:create_mobexamine") //open the examine window + /mob/living/proc/status_effect_examines(pronoun_replacement) //You can include this in any mob's examine() to show the examine texts of status effects! var/list/dat = list() if(!pronoun_replacement) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 58264160..27e02a7f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -29,9 +29,6 @@ . = ..() - if(CONFIG_GET(flag/disable_stambuffer)) - togglesprint() - AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT = CALLBACK(src, /mob/living/carbon/human/clean_blood))) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 874ad974..fd9fdcb5 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -70,3 +70,4 @@ var/last_fire_update var/account_id can_be_held = "micro" + appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE \ No newline at end of file diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 79f32b4f..04ea03c0 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -541,7 +541,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put /mob/living/carbon/handle_status_effects() ..() if(getStaminaLoss() && !combatmode)//CIT CHANGE - prevents stamina regen while combat mode is active - adjustStaminaLoss(resting ? (recoveringstam ? -7.5 : -3) : -1.5)//CIT CHANGE - decreases adjuststaminaloss to stop stamina damage from being such a joke + adjustStaminaLoss(resting ? (recoveringstam ? -3 : -2) : -1.5)//CIT CHANGE - decreases adjuststaminaloss to stop stamina damage from being such a joke if(!recoveringstam && incomingstammult != 1) incomingstammult = max(0.01, incomingstammult) diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index bb513581..b2e1aaf4 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -85,7 +85,7 @@ ranged = 1 retreat_distance = 5 minimum_distance = 5 - move_to_delay = 4 + move_to_delay = 7 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 4, /obj/item/stack/sheet/animalhide/xeno = 1) projectiletype = /obj/item/projectile/neurotox @@ -133,7 +133,7 @@ icon_living = "alienq" icon_dead = "alienq_dead" bubble_icon = "alienroyal" - move_to_delay = 4 + move_to_delay = 7 maxHealth = 400 health = 400 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 10, diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 524c220f..e744d669 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -30,7 +30,7 @@ health = 10 spacewalk = TRUE faction = list("hostile") - move_to_delay = 0 + move_to_delay = 1 obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE mouse_opacity = MOUSE_OPACITY_OPAQUE diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 1f9c0b93..cc45e8c0 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -87,7 +87,7 @@ melee_damage_lower += rand(4, 10) melee_damage_upper += rand(10,20) maxHealth += rand(40,60) - move_to_delay = rand(3,7) + move_to_delay = rand(5,8) /mob/living/simple_animal/hostile/carp/cayenne name = "Cayenne" diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 33e29689..fb61b593 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -40,7 +40,7 @@ faction = list("spiders") var/busy = SPIDER_IDLE pass_flags = PASSTABLE - move_to_delay = 6 + move_to_delay = 7 ventcrawler = VENTCRAWLER_ALWAYS attacktext = "bites" attack_sound = 'sound/weapons/bite.ogg' @@ -140,7 +140,7 @@ melee_damage_lower = 10 melee_damage_upper = 20 poison_per_bite = 5 - move_to_delay = 5 + move_to_delay = 7 //vipers are the rare variant of the hunter, no IMMEDIATE damage but so much poison medical care will be needed fast. /mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper @@ -154,7 +154,7 @@ melee_damage_lower = 1 melee_damage_upper = 1 poison_per_bite = 12 - move_to_delay = 4 + move_to_delay = 5 poison_type = /datum/reagent/toxin/venom //all in venom, glass cannon. you bite 5 times and they are DEFINITELY dead, but 40 health and you are extremely obvious. Ambush, maybe? speed = 1 gold_core_spawnable = NO_SPAWN @@ -171,7 +171,7 @@ melee_damage_lower = 35 melee_damage_upper = 40 poison_per_bite = 0 - move_to_delay = 8 + move_to_delay = 10 speed = 7 status_flags = NONE mob_size = MOB_SIZE_LARGE diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index f6b62e8d..276d5989 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -17,7 +17,7 @@ var/projectiletype //set ONLY it and NULLIFY casingtype var, if we have ONLY projectile var/projectilesound var/casingtype //set ONLY it and NULLIFY projectiletype, if we have projectile IN CASING - var/move_to_delay = 3 //delay for the automated movement. + var/move_to_delay = 5 //delay for the automated movement. var/list/friends = list() var/list/emote_taunt = list() var/taunt_chance = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index af6405ad..dca96574 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -33,7 +33,7 @@ Difficulty: Medium movement_type = GROUND speak_emote = list("roars") speed = 1 - move_to_delay = 2 + move_to_delay = 4 projectiletype = /obj/item/projectile/kinetic/miner projectilesound = 'sound/weapons/kenetic_accel.ogg' ranged = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 83abde2f..74aa59f9 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -40,7 +40,7 @@ Difficulty: Hard melee_damage_lower = 40 melee_damage_upper = 40 speed = 1 - move_to_delay = 10 + move_to_delay = 15 ranged_cooldown_time = 10 ranged = 1 pixel_x = -32 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 573a9ef8..37d5b027 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -38,7 +38,7 @@ Difficulty: Very Hard melee_damage_lower = 40 melee_damage_upper = 40 speed = 1 - move_to_delay = 10 + move_to_delay = 14 ranged = 1 pixel_x = -32 del_on_death = 1 @@ -64,7 +64,7 @@ Difficulty: Very Hard ranged_cooldown = world.time + 30 telegraph() dir_shots(GLOB.alldirs) - move_to_delay = 3 + move_to_delay = 5 return else move_to_delay = initial(move_to_delay) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 0e3cde56..1da1c832 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -48,7 +48,7 @@ Difficulty: Medium melee_damage_lower = 40 melee_damage_upper = 40 speed = 1 - move_to_delay = 5 + move_to_delay = 8 ranged = 1 pixel_x = -16 crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher) @@ -138,7 +138,7 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/dragon/proc/fire_wall(dir) var/list/hit_things = list(src) var/turf/E = get_edge_target_turf(src, dir) - var/range = 10 + var/range = 8 var/turf/previousturf = get_turf(src) for(var/turf/J in getline(src,E)) if(!range || (J != previousturf && (!previousturf.atmos_adjacent_turfs || !previousturf.atmos_adjacent_turfs[J]))) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 397d4092..5ae29cb8 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -52,7 +52,7 @@ Difficulty: Normal melee_damage_upper = 20 blood_volume = 0 speed = 1 - move_to_delay = 11 + move_to_delay = 15 ranged = 1 ranged_cooldown_time = 40 aggro_vision_range = 21 //so it can see to one side of the arena to the other @@ -66,9 +66,9 @@ Difficulty: Normal var/burst_range = 3 //range on burst aoe var/beam_range = 5 //range on cross blast beams - var/chaser_speed = 2 //how fast chasers are currently + var/chaser_speed = 1 //how fast chasers are currently var/chaser_cooldown = 50 //base cooldown/cooldown var between spawning chasers - var/major_attack_cooldown = 40 //base cooldown for major attacks + var/major_attack_cooldown = 60 //base cooldown for major attacks var/arena_cooldown = 200 //base cooldown/cooldown var for creating an arena var/blinking = FALSE //if we're doing something that requires us to stand still and not attack var/obj/effect/hierophant/spawned_beacon //the beacon we teleport back to diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 0a54b975..65a1324e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -32,7 +32,7 @@ Difficulty: Medium melee_damage_lower = 25 melee_damage_upper = 25 speed = 1 - move_to_delay = 2 + move_to_delay = 4 ranged = 1 del_on_death = 1 retreat_distance = 5 @@ -88,7 +88,7 @@ Difficulty: Medium retreat_distance = 0 minimum_distance = 0 speed = 0 - move_to_delay = 1 + move_to_delay = 2 charging = 1 addtimer(CALLBACK(src, .proc/reset_charge), 50) @@ -97,7 +97,7 @@ Difficulty: Medium retreat_distance = 5 minimum_distance = 5 speed = 1 - move_to_delay = 2 + move_to_delay = 4 charging = 0 /mob/living/simple_animal/hostile/megafauna/legion/death() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm index 7229341a..0dac71d8 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm @@ -7,7 +7,7 @@ icon_aggro = "curseblob" mob_biotypes = MOB_SPIRIT movement_type = FLYING - move_to_delay = 5 + move_to_delay = 7 vision_range = 20 aggro_vision_range = 20 maxHealth = 40 //easy to kill, but oh, will you be seeing a lot of them. diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index 4b40a966..f697d894 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -11,7 +11,7 @@ mob_biotypes = MOB_ORGANIC|MOB_BEAST vision_range = 2 aggro_vision_range = 9 - move_to_delay = 5 + move_to_delay = 7 friendly = "harmlessly rolls into" maxHealth = 45 health = 45 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 11de9df7..f6761dd1 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -65,7 +65,7 @@ icon_dead = "Hivelordbrood" icon_gib = "syndicate_gib" mouse_opacity = MOUSE_OPACITY_OPAQUE - move_to_delay = 1 + move_to_delay = 3 friendly = "buzzes near" vision_range = 10 speed = 3 diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index 88b5bcc3..d0dea7b8 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -10,7 +10,7 @@ icon_gib = "syndicate_gib" mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON - move_to_delay = 5 + move_to_delay = 8 friendly = "floats near" speak_emote = list("puffs") vision_range = 5 @@ -88,7 +88,7 @@ F.throw_message = "is absorbed by the girth of the" F.retreat_distance = null F.minimum_distance = 1 - F.move_to_delay = 6 + F.move_to_delay = 8 F.environment_smash = ENVIRONMENT_SMASH_WALLS F.mob_size = MOB_SIZE_LARGE F.speed = 1 @@ -106,7 +106,7 @@ throw_message = "is avoided by the" retreat_distance = 9 minimum_distance = 9 - move_to_delay = 2 + move_to_delay = 3 inflate_cooldown = 4 environment_smash = ENVIRONMENT_SMASH_NONE mob_size = MOB_SIZE_SMALL diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 41c1ba3b..ed901ee6 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -130,6 +130,7 @@ var/updating_glide_size = TRUE var/flavor_text = "" + var/ooc_text = "" var/flavor_text_2 = "" //version of the above that only lasts for the current round. ///////TYPING INDICATORS/////// diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index b24c56fd..922d36fe 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -108,7 +108,7 @@ . = ..() if((direct & (direct - 1)) && mob.loc == n) //moved diagonally successfully - add_delay *= 2 + add_delay *= 1.66 move_delay += add_delay mob.set_glide_size(DELAY_TO_GLIDE_SIZE(add_delay)) if(.) // If mob is null here, we deserve the runtime diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 9c20413a..ca1c2aff 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -6,7 +6,7 @@ set src in usr if(usr != src) to_chat(usr, "No.") - var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", html_decode(flavor_text), MAX_MESSAGE_LEN, TRUE) + var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. IC only!", "Flavor Text", html_decode(flavor_text), MAX_MESSAGE_LEN, TRUE) if(msg) flavor_text = html_encode(msg) diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm index eb6a9a92..6ba7625a 100644 --- a/code/modules/vehicles/atv.dm +++ b/code/modules/vehicles/atv.dm @@ -9,7 +9,7 @@ /obj/vehicle/ridden/atv/Initialize() . = ..() var/datum/component/riding/D = LoadComponent(/datum/component/riding) - D.vehicle_move_delay = 1 + D.vehicle_move_delay = 1.5 D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(0, 4), TEXT_WEST = list( 0, 4))) D.set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) D.set_vehicle_dir_layer(NORTH, OBJ_LAYER) diff --git a/code/modules/vehicles/bicycle.dm b/code/modules/vehicles/bicycle.dm index 84e0fcbe..685a4937 100644 --- a/code/modules/vehicles/bicycle.dm +++ b/code/modules/vehicles/bicycle.dm @@ -12,7 +12,7 @@ . = ..() var/datum/component/riding/D = LoadComponent(/datum/component/riding) D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(0, 4), TEXT_WEST = list( 0, 4))) - D.vehicle_move_delay = 0 + D.vehicle_move_delay = 1.5 /obj/vehicle/ridden/bicycle/buckle_mob(mob/living/M, force = 0, check_loc = 1) if(prob(easter_egg_chance) || (SSevents.holidays && SSevents.holidays[APRIL_FOOLS])) diff --git a/code/modules/vehicles/lavaboat.dm b/code/modules/vehicles/lavaboat.dm index 32f53a15..b8019512 100644 --- a/code/modules/vehicles/lavaboat.dm +++ b/code/modules/vehicles/lavaboat.dm @@ -64,6 +64,6 @@ /obj/vehicle/ridden/lavaboat/dragon/Initialize() . = ..() var/datum/component/riding/D = LoadComponent(/datum/component/riding) - D.vehicle_move_delay = 1 + D.vehicle_move_delay = 1.5 D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(1, 2), TEXT_SOUTH = list(1, 2), TEXT_EAST = list(1, 2), TEXT_WEST = list( 1, 2))) D.keytype = null diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 0dd7ff32..fe08c90f 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -49,7 +49,7 @@ /obj/vehicle/ridden/scooter/skateboard/Initialize() . = ..() var/datum/component/riding/D = LoadComponent(/datum/component/riding) - D.vehicle_move_delay = 1 + D.vehicle_move_delay = 2 D.set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) D.set_vehicle_dir_layer(NORTH, OBJ_LAYER) D.set_vehicle_dir_layer(EAST, OBJ_LAYER) @@ -97,11 +97,11 @@ . = ..() var/datum/component/riding/R = src.GetComponent(/datum/component/riding) if (!adjusted_speed) - R.vehicle_move_delay = 0 + R.vehicle_move_delay = 1.5 to_chat(user, "You adjust the wheels on [src] to make it go faster.") adjusted_speed = TRUE else - R.vehicle_move_delay = 1 + R.vehicle_move_delay = 2 to_chat(user, "You adjust the wheels on [src] to make it go slower.") adjusted_speed = FALSE return TRUE @@ -176,7 +176,7 @@ /obj/vehicle/ridden/scooter/wheelys/Initialize() . = ..() var/datum/component/riding/D = LoadComponent(/datum/component/riding) - D.vehicle_move_delay = 0 + D.vehicle_move_delay = 2 D.set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) D.set_vehicle_dir_layer(NORTH, OBJ_LAYER) D.set_vehicle_dir_layer(EAST, OBJ_LAYER) diff --git a/code/modules/vehicles/speedbike.dm b/code/modules/vehicles/speedbike.dm index 6526e6d8..288c0d04 100644 --- a/code/modules/vehicles/speedbike.dm +++ b/code/modules/vehicles/speedbike.dm @@ -21,7 +21,7 @@ add_overlay(overlay) var/datum/component/riding/D = LoadComponent(/datum/component/riding) D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, -8), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(-10, 5), TEXT_WEST = list( 10, 5))) - D.vehicle_move_delay = 0 + D.vehicle_move_delay = 1 D.set_vehicle_dir_offsets(NORTH, -16, -16) D.set_vehicle_dir_offsets(SOUTH, -16, -16) D.set_vehicle_dir_offsets(EAST, -18, 0) @@ -54,7 +54,7 @@ . = ..() add_overlay(overlay) var/datum/component/riding/D = LoadComponent(/datum/component/riding) - D.vehicle_move_delay = 0 + D.vehicle_move_delay = 1 D.set_riding_offsets(1, list(TEXT_NORTH = list(-10, -4), TEXT_SOUTH = list(16, 3), TEXT_EAST = list(-4, 30), TEXT_WEST = list(4, -3))) D.set_riding_offsets(2, list(TEXT_NORTH = list(19, -5, 4), TEXT_SOUTH = list(-13, 3, 4), TEXT_EAST = list(-4, -3, 4.1), TEXT_WEST = list(4, 28, 3.9))) D.set_riding_offsets(3, list(TEXT_NORTH = list(-10, -18, 4.2), TEXT_SOUTH = list(16, 25, 3.9), TEXT_EAST = list(-22, 30), TEXT_WEST = list(22, -3, 4.1))) diff --git a/code/modules/vehicles/wheelchair.dm b/code/modules/vehicles/wheelchair.dm index 2eb1a2ad..019632f0 100644 --- a/code/modules/vehicles/wheelchair.dm +++ b/code/modules/vehicles/wheelchair.dm @@ -15,7 +15,7 @@ /obj/vehicle/ridden/wheelchair/Initialize() . = ..() var/datum/component/riding/D = LoadComponent(/datum/component/riding) - D.vehicle_move_delay = 0 + D.vehicle_move_delay = 1 D.set_vehicle_dir_layer(SOUTH, OBJ_LAYER) D.set_vehicle_dir_layer(NORTH, ABOVE_MOB_LAYER) D.set_vehicle_dir_layer(EAST, OBJ_LAYER) diff --git a/config/config.txt b/config/config.txt index 7f572db4..a5720a80 100644 --- a/config/config.txt +++ b/config/config.txt @@ -300,7 +300,7 @@ TICK_LIMIT_MC_INIT 500 ##Defines the ticklag for the world. Ticklag is the amount of time between game ticks (aka byond ticks) (in 1/10ths of a second). ## This also controls the client network update rate, as well as the default client fps -#TICKLAG 0.5 +#TICKLAG 0.1 ##Can also be set as per-second value, the following value is identical to the above. FPS 20 diff --git a/config/game_options.txt b/config/game_options.txt index 0242f084..49504038 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -570,7 +570,7 @@ MONKEYCAP 64 RATCAP 64 ## Uncomment to use TG-style combat -#DISABLE_STAMBUFFER +DISABLE_STAMBUFFER ## Choose which Engine to start the round with. Weight is after the comma. Setting the weight to 0 removes the engine from rotation. BOX_RANDOM_ENGINE Box SM,3 diff --git a/html/statbrowser.html b/html/statbrowser.html index b55cfd49..8430f9a8 100644 --- a/html/statbrowser.html +++ b/html/statbrowser.html @@ -274,6 +274,7 @@ if (window.location) { var status_tab_parts = ["loading..."]; var current_tab = null; var mc_tab_parts = [["loading...", ""]]; +var examine_tab_parts = ["Mob Examine Text"]; var href_token = null; var spells = []; var spell_tabs = []; @@ -570,11 +571,13 @@ function tab_change(tab) { draw_tickets(); } else if(tab == "SQDL2") { draw_sqdl2(); + } else if(tab == "Examine") { + draw_examine(); }else if(tab == turfname) { draw_listedturf(); } else { var statcontentdiv = document.getElementById("statcontent"); - statcontentdiv[textContentKey] = "loading..."; + statcontentdiv[textContentKey] = "loading..."; } window.location.href = "byond://winset?statbrowser.is-visible=true"; } @@ -684,6 +687,22 @@ function draw_mc() { } document.getElementById("statcontent").appendChild(table); } + + +function update_examine(html) { + examine_tab_parts = html + } + +function draw_examine() { + var statcontentdiv = document.getElementById("statcontent"); + if(!document.getElementById("Examine")) { + createStatusTab("Examine"); + current_tab = "Examine"; + } + statcontentdiv[textContentKey] = inner; + document.getElementById("statcontent").innerHTML = examine_tab_parts; +} + function update_tickets(T){ tickets = JSON.parse(T); if(!verb_tabs.includes("Tickets")) { @@ -729,6 +748,28 @@ function remove_admin_tabs() { remove_sqdl2(); } +//mob examine +function create_mobexamine() { + remove_mobexamine(); // remove the last one if we had one + addPermanentTab("Examine"); + tab_change("Examine"); +} + +function remove_mobexamine() { + removePermanentTab("Examine"); + checkStatusTab(); + if(current_tab == "Examine") + tab_change("Status"); +} + +function update_mobexamine(TC) { + turfcontents = JSON.parse(TC); + if(current_tab == "Examine") + draw_listedturf(); +} + +//turf + function create_listedturf(TN) { remove_listedturf(); // remove the last one if we had one turfname = JSON.parse(TN); diff --git a/hyperstation/code/mobs/carrion.dm b/hyperstation/code/mobs/carrion.dm index 78f28096..2c85164a 100644 --- a/hyperstation/code/mobs/carrion.dm +++ b/hyperstation/code/mobs/carrion.dm @@ -30,7 +30,7 @@ ventcrawler = 1 death_sound = 'sound/voice/ed209_20sec.ogg' deathmessage = "lets out scream and its tentacles shrivel away..." - move_to_delay = 2 + move_to_delay = 4 loot = list(/obj/effect/gibspawner/human) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) diff --git a/hyperstation/icons/chat/chat.dmi b/hyperstation/icons/chat/chat.dmi index 1457f7f2..cf74d737 100644 Binary files a/hyperstation/icons/chat/chat.dmi and b/hyperstation/icons/chat/chat.dmi differ diff --git a/hyperstation/icons/chat/gender.dmi b/hyperstation/icons/chat/gender.dmi new file mode 100644 index 00000000..01cf65b9 Binary files /dev/null and b/hyperstation/icons/chat/gender.dmi differ diff --git a/modular_citadel/code/_onclick/hud/sprint.dm b/modular_citadel/code/_onclick/hud/sprint.dm index 290fcd36..ae58134d 100644 --- a/modular_citadel/code/_onclick/hud/sprint.dm +++ b/modular_citadel/code/_onclick/hud/sprint.dm @@ -1,6 +1,6 @@ /obj/screen/mov_intent icon = 'modular_citadel/icons/ui/screen_midnight.dmi' - +/* /obj/screen/sprintbutton name = "toggle sprint" icon = 'modular_citadel/icons/ui/screen_midnight.dmi' @@ -39,3 +39,4 @@ if(L.sprint_buffer_max > 0) amount = round(CLAMP((L.sprint_buffer / L.sprint_buffer_max) * 100, 0, 100), 5) icon_state = "prog_bar_[amount]" +*/ \ No newline at end of file diff --git a/modular_citadel/code/_onclick/hud/stamina.dm b/modular_citadel/code/_onclick/hud/stamina.dm index 781b7cb2..71ad66bb 100644 --- a/modular_citadel/code/_onclick/hud/stamina.dm +++ b/modular_citadel/code/_onclick/hud/stamina.dm @@ -1,3 +1,4 @@ +/* /datum/hud/var/obj/screen/staminas/staminas /datum/hud/var/obj/screen/staminabuffer/staminabuffer @@ -76,3 +77,4 @@ return "stambuffer6" else return "stambuffer7" +*/ \ No newline at end of file diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm index 827b797c..debb359d 100644 --- a/modular_citadel/code/modules/client/preferences.dm +++ b/modular_citadel/code/modules/client/preferences.dm @@ -57,6 +57,7 @@ datum/preferences/copy_to(mob/living/carbon/human/character, icon_updates = 1) ..() character.give_genitals(TRUE) character.flavor_text = features["flavor_text"] //Let's update their flavor_text at least initially + character.ooc_text = features["ooc_text"] //Let's update their flavor_text at least initially character.canbearoused = arousable character.client?.prefs.lewdchem = lewdchem if(icon_updates) diff --git a/modular_citadel/code/modules/client/preferences_savefile.dm b/modular_citadel/code/modules/client/preferences_savefile.dm index f7f8e189..e949aacd 100644 --- a/modular_citadel/code/modules/client/preferences_savefile.dm +++ b/modular_citadel/code/modules/client/preferences_savefile.dm @@ -7,6 +7,7 @@ features["ipc_antenna"] = sanitize_inlist(features["ipc_antenna"], GLOB.ipc_antennas_list) //Citadel features["flavor_text"] = sanitize_text(features["flavor_text"], initial(features["flavor_text"])) + features["ooc_text"] = sanitize_text(features["ooc_text"], initial(features["ooc_text"])) if(!features["mcolor2"] || features["mcolor"] == "#000") features["mcolor2"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") if(!features["mcolor3"] || features["mcolor"] == "#000") @@ -84,6 +85,7 @@ WRITE_FILE(S["feature_can_get_preg"], features["can_get_preg"]) //flavor text WRITE_FILE(S["feature_flavor_text"], features["flavor_text"]) + WRITE_FILE(S["feature_ooc_text"], features["ooc_text"]) //custom job titles WRITE_FILE(S["alt_titles_preferences"], alt_titles_preferences) //belly diff --git a/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm b/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm index 7264d95b..3c8ef1d7 100644 --- a/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm +++ b/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm @@ -19,13 +19,14 @@ incomingstammult = max(0.01, incomingstammult/(amount*0.05)) return amount +/* /mob/living/carbon/doSprintLossTiles(tiles) doSprintBufferRegen(FALSE) //first regen. if(sprint_buffer) var/use = min(tiles, sprint_buffer) sprint_buffer -= use tiles -= use - update_hud_sprint_bar() +// update_hud_sprint_bar() if(!tiles) //we had enough, we're done! return adjustStaminaLoss(tiles * sprint_stamina_cost) //use stamina to cover deficit. @@ -34,5 +35,4 @@ var/diff = world.time - sprint_buffer_regen_last sprint_buffer_regen_last = world.time sprint_buffer = min(sprint_buffer_max, sprint_buffer + sprint_buffer_regen_ds * diff) - if(updating) - update_hud_sprint_bar() +*/ \ No newline at end of file diff --git a/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm b/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm index 409864c9..f9ed0a01 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm @@ -20,6 +20,7 @@ . += 1 . += ..() +/* /mob/living/carbon/human/proc/togglesprint() // If you call this proc outside of hotkeys or clicking the HUD button, I'll be disappointed in you. sprinting = !sprinting if(!resting && m_intent == MOVE_INTENT_RUN && canmove) @@ -27,11 +28,12 @@ playsound_local(src, 'modular_citadel/sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE) else playsound_local(src, 'modular_citadel/sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE) - if(hud_used && hud_used.static_inventory) - for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory) - selector.insert_witty_toggle_joke_here(src) +// if(hud_used && hud_used.static_inventory) +// for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory) +// selector.insert_witty_toggle_joke_here(src) return TRUE /mob/living/carbon/human/proc/sprint_hotkey(targetstatus) if(targetstatus ? !sprinting : sprinting) togglesprint() +*/ \ No newline at end of file diff --git a/modular_citadel/code/modules/mob/living/carbon/human/life.dm b/modular_citadel/code/modules/mob/living/carbon/human/life.dm index e728d70c..478eb055 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/life.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/life.dm @@ -15,7 +15,7 @@ . = ..() if(!client || !hud_used) return - if(hud_used.staminas) - hud_used.staminas.icon_state = staminahudamount() - if(hud_used.staminabuffer) - hud_used.staminabuffer.icon_state = staminabufferhudamount() +// if(hud_used.staminas) +// hud_used.staminas.icon_state = staminahudamount() +// if(hud_used.staminabuffer) +// hud_used.staminabuffer.icon_state = staminabufferhudamount() diff --git a/modular_citadel/code/modules/mob/living/carbon/life.dm b/modular_citadel/code/modules/mob/living/carbon/life.dm index e94bd759..544bd821 100644 --- a/modular_citadel/code/modules/mob/living/carbon/life.dm +++ b/modular_citadel/code/modules/mob/living/carbon/life.dm @@ -1,3 +1,2 @@ /mob/living/carbon/Life() - . = ..() - doSprintBufferRegen() + . = ..() \ No newline at end of file diff --git a/modular_citadel/code/modules/mob/living/living.dm b/modular_citadel/code/modules/mob/living/living.dm index ed33041d..1da32245 100644 --- a/modular_citadel/code/modules/mob/living/living.dm +++ b/modular_citadel/code/modules/mob/living/living.dm @@ -19,7 +19,7 @@ /mob/living/movement_delay(ignorewalk = 0) . = ..() if(resting) - . += 6 + . += 3 /atom var/pseudo_z_axis @@ -127,6 +127,8 @@ update_canmove() update_health_hud() +/* /mob/living/proc/update_hud_sprint_bar() if(hud_used && hud_used.sprint_buffer) hud_used.sprint_buffer.update_to_mob(src) +*/ \ No newline at end of file diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm index c7a2447b..d32d560b 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -3,15 +3,12 @@ /mob/living/silicon/robot/Move(NewLoc, direct) . = ..() - if(. && sprinting && !(movement_type & FLYING) && canmove && !resting) - if(!(cell?.use(25))) - togglesprint(TRUE) /mob/living/silicon/robot/movement_delay() . = ..() if(!resting && !sprinting) . += 1 - +/* /mob/living/silicon/robot/proc/togglesprint(shutdown = FALSE) //Basically a copypaste of the proc from /mob/living/carbon/human if(!shutdown && (!cell || cell.charge < 25)) return FALSE @@ -23,11 +20,12 @@ if(shutdown) playsound_local(src, 'sound/effects/light_flicker.ogg', 50, FALSE, pressure_affected = FALSE) playsound_local(src, 'modular_citadel/sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE) - if(hud_used && hud_used.static_inventory) - for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory) - selector.insert_witty_toggle_joke_here(src) +// if(hud_used && hud_used.static_inventory) +// for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory) +// selector.insert_witty_toggle_joke_here(src) return TRUE /mob/living/silicon/robot/proc/sprint_hotkey(targetstatus) if(targetstatus ? !sprinting : sprinting) togglesprint() +*/ \ No newline at end of file diff --git a/modular_citadel/icons/ui/screen_clockwork.dmi b/modular_citadel/icons/ui/screen_clockwork.dmi index 5dc3f8f9..3b64b182 100644 Binary files a/modular_citadel/icons/ui/screen_clockwork.dmi and b/modular_citadel/icons/ui/screen_clockwork.dmi differ diff --git a/modular_citadel/icons/ui/screen_midnight.dmi b/modular_citadel/icons/ui/screen_midnight.dmi index a64da1d5..3c1165a2 100644 Binary files a/modular_citadel/icons/ui/screen_midnight.dmi and b/modular_citadel/icons/ui/screen_midnight.dmi differ diff --git a/modular_citadel/icons/ui/screen_operative.dmi b/modular_citadel/icons/ui/screen_operative.dmi index 52b545fb..7a0a1267 100644 Binary files a/modular_citadel/icons/ui/screen_operative.dmi and b/modular_citadel/icons/ui/screen_operative.dmi differ diff --git a/modular_citadel/icons/ui/screen_plasmafire.dmi b/modular_citadel/icons/ui/screen_plasmafire.dmi index 95283994..39d55c5a 100644 Binary files a/modular_citadel/icons/ui/screen_plasmafire.dmi and b/modular_citadel/icons/ui/screen_plasmafire.dmi differ diff --git a/modular_citadel/icons/ui/screen_slimecore.dmi b/modular_citadel/icons/ui/screen_slimecore.dmi index 20e1c05b..7e8ac920 100644 Binary files a/modular_citadel/icons/ui/screen_slimecore.dmi and b/modular_citadel/icons/ui/screen_slimecore.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 20ef289f..c496b0c6 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1210,6 +1210,7 @@ #include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" #include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" #include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm" +#include "code\modules\admin\view_variables\debug_variables.dm" #include "code\modules\antagonists\_common\antag_datum.dm" #include "code\modules\antagonists\_common\antag_helpers.dm" #include "code\modules\antagonists\_common\antag_hud.dm"