From 706ee6d3eb09dd7ddec1440f523b889294d86039 Mon Sep 17 00:00:00 2001
From: QuoteFox <49098813+quotefox@users.noreply.github.com>
Date: Sat, 20 Mar 2021 12:36:02 +0000
Subject: [PATCH] Hyperstation RP beta 0.1 and alot of bug fixes.
---
code/__DEFINES/maths.dm | 2 +
code/__HELPERS/mobs.dm | 5 +-
code/__HELPERS/priority_announce.dm | 2 +-
code/__HELPERS/roundend.dm | 3 ++
code/_onclick/hud/human.dm | 14 +++---
code/controllers/subsystem/mobs.dm | 1 +
code/datums/components/footstep.dm | 2 +-
code/datums/components/mood.dm | 6 +--
code/datums/components/orbiter.dm | 6 ++-
code/datums/dna.dm | 2 +
code/datums/spawners_menu.dm | 1 +
code/game/atoms.dm | 3 ++
code/game/atoms_movable.dm | 2 +-
code/game/objects/effects/anomalies.dm | 2 +-
.../admin/view_variables/debug_variables.dm | 0
code/modules/client/client_procs.dm | 2 +-
code/modules/client/preferences.dm | 32 ++++++++++---
code/modules/client/preferences_savefile.dm | 10 +++-
code/modules/keybindings/bindings_human.dm | 18 --------
code/modules/keybindings/bindings_robot.dm | 7 ---
.../mob/living/carbon/human/examine.dm | 22 +++++++++
code/modules/mob/living/carbon/human/human.dm | 3 --
.../mob/living/carbon/human/human_defines.dm | 1 +
code/modules/mob/living/carbon/life.dm | 2 +-
.../mob/living/simple_animal/hostile/alien.dm | 4 +-
.../mob/living/simple_animal/hostile/bees.dm | 2 +-
.../mob/living/simple_animal/hostile/carp.dm | 2 +-
.../simple_animal/hostile/giant_spider.dm | 8 ++--
.../living/simple_animal/hostile/hostile.dm | 2 +-
.../hostile/megafauna/blood_drunk_miner.dm | 2 +-
.../hostile/megafauna/bubblegum.dm | 2 +-
.../hostile/megafauna/colossus.dm | 4 +-
.../simple_animal/hostile/megafauna/drake.dm | 4 +-
.../hostile/megafauna/hierophant.dm | 6 +--
.../simple_animal/hostile/megafauna/legion.dm | 6 +--
.../hostile/mining_mobs/curse_blob.dm | 2 +-
.../hostile/mining_mobs/goldgrub.dm | 2 +-
.../hostile/mining_mobs/hivelord.dm | 2 +-
.../simple_animal/hostile/wumborian_fugu.dm | 6 +--
code/modules/mob/mob_defines.dm | 1 +
code/modules/mob/mob_movement.dm | 2 +-
code/modules/mob/say_vr.dm | 2 +-
code/modules/vehicles/atv.dm | 2 +-
code/modules/vehicles/bicycle.dm | 2 +-
code/modules/vehicles/lavaboat.dm | 2 +-
code/modules/vehicles/scooter.dm | 8 ++--
code/modules/vehicles/speedbike.dm | 4 +-
code/modules/vehicles/wheelchair.dm | 2 +-
config/config.txt | 2 +-
config/game_options.txt | 2 +-
html/statbrowser.html | 43 +++++++++++++++++-
hyperstation/code/mobs/carrion.dm | 2 +-
hyperstation/icons/chat/chat.dmi | Bin 211 -> 182 bytes
hyperstation/icons/chat/gender.dmi | Bin 0 -> 1409 bytes
modular_citadel/code/_onclick/hud/sprint.dm | 3 +-
modular_citadel/code/_onclick/hud/stamina.dm | 2 +
.../code/modules/client/preferences.dm | 1 +
.../modules/client/preferences_savefile.dm | 2 +
.../modules/mob/living/carbon/damage_procs.dm | 6 +--
.../mob/living/carbon/human/human_movement.dm | 8 ++--
.../modules/mob/living/carbon/human/life.dm | 8 ++--
.../code/modules/mob/living/carbon/life.dm | 3 +-
.../code/modules/mob/living/living.dm | 4 +-
.../living/silicon/robot/robot_movement.dm | 12 ++---
modular_citadel/icons/ui/screen_clockwork.dmi | Bin 11554 -> 9900 bytes
modular_citadel/icons/ui/screen_midnight.dmi | Bin 11887 -> 11918 bytes
modular_citadel/icons/ui/screen_operative.dmi | Bin 12069 -> 12197 bytes
.../icons/ui/screen_plasmafire.dmi | Bin 11785 -> 11844 bytes
modular_citadel/icons/ui/screen_slimecore.dmi | Bin 11442 -> 10082 bytes
tgstation.dme | 1 +
70 files changed, 207 insertions(+), 119 deletions(-)
create mode 100644 code/modules/admin/view_variables/debug_variables.dm
create mode 100644 hyperstation/icons/chat/gender.dmi
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 += "
"
- 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 = " 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 += " ")]"
+
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 1457f7f2116aaeba7e9c4ed3b385146db3bd188f..cf74d73796c8c6121c0818fdac74e4a7f0ab9a5f 100644
GIT binary patch
delta 107
zcmcc2xQ%gwxRwGVGXn#I=av`SffRFqPlzj!US4H;3rI1R1o;IsI6S+N22wK7(cVl!
zCY3eZUVH-^!^hkFx!$$+tbsB-o-U3d95a&>B<=ut3m6!mO8c(^vKTyF{an^LB{Ts5
D0ni;W
delta 136
zcmdnSc$sm6xRwATGXn#I@45F uFfjg*e>9*d4lAZS8?*2OomzdH5lmHjLzATTSOi6U6XnRXs)Md6*k #!4tn%{b8In}f<)BZ F9%!A{8rOC
zxv^$L_(f$nn^HXEi0;ZrovxfBAmp$g>dBe?R1qlg &~
z%hw8K#FA0wi0oMX^DGH>kSK1)B6-mhM%q&2rufwTRrA?N?2P0(l9iH(6a4mLlz8ix
zd6zS*eeX#|D(a$bjcPScM_~oE6uzeEXOwDH_O%XdegWlS-D 6(d4vAoG_<=+<#s@3!%ER>g07PYZ4Nf;`zJ
zWRvo*oRDV{OUx*E%GY*`JO@2RZ&$oHT7AR{LweZVcS>`8uL{q&FB-sFseaQcim{u^
z5v3-Y^RKdX0@3&5$P4sKnGKtRV09o9ZULjIjKV |