From 4f4362a8aa03666e800eaa45d611090ceb790b8d Mon Sep 17 00:00:00 2001
From: quotefox <49098813+quotefox@users.noreply.github.com>
Date: Thu, 10 Oct 2019 02:40:36 +0100
Subject: [PATCH] Stability and performance
---
code/game/atoms_movable.dm | 4 +-
code/modules/mob/living/carbon/carbon.dm | 2 +-
.../mob/living/carbon/carbon_defines.dm | 2 +-
.../mob/living/carbon/human/species.dm | 1 -
code/modules/mob/living/carbon/life.dm | 3 +-
code/world.dm | 2 +-
config/config.txt | 4 +-
config/game_options.txt | 6 ++
hyperstation/code/mobs/mimic.dm | 59 ++++++++----------
hyperstation/icons/mobs/mimic.dmi | Bin 927 -> 1665 bytes
icons/obj/lighting_overlay.dmi | Bin 1297 -> 1333 bytes
icons/turf/walls/wall.dmi | Bin 1480 -> 1471 bytes
tgstation.dme | 3 +
13 files changed, 44 insertions(+), 42 deletions(-)
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index cbda257f..0e01be99 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -19,12 +19,12 @@
var/atom/inertia_last_loc
var/inertia_moving = 0
var/inertia_next_move = 0
- var/inertia_move_delay = 3
+ var/inertia_move_delay = 7
var/pass_flags = 0
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 = 7
+ glide_size = 14
appearance_flags = TILE_BOUND|PIXEL_SCALE
var/datum/forced_movement/force_moving = null //handled soley by forced_movement.dm
var/floating = FALSE
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 4f9b1abd..ec31093e 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -702,7 +702,7 @@
clear_fullscreen("critvision")
//Oxygen damage overlay
- var/windedup = getOxyLoss() + getStaminaLoss() * 0.2 + stamdamageoverlaytemp
+ var/windedup = getOxyLoss() + getStaminaLoss() * 0.2
if(windedup)
var/severity = 0
switch(windedup)
diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm
index 49e39f2f..f5b00200 100644
--- a/code/modules/mob/living/carbon/carbon_defines.dm
+++ b/code/modules/mob/living/carbon/carbon_defines.dm
@@ -61,6 +61,6 @@
var/next_hallucination = 0
var/cpr_time = 1 //CPR cooldown.
var/damageoverlaytemp = 0
- var/stamdamageoverlaytemp = 0
+
var/drunkenness = 0 //Overall drunkenness - check handle_alcohol() in life.dm for effects
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 3efcf5e5..cedad66d 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1783,7 +1783,6 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(CLONE)
H.adjustCloneLoss(damage * hit_percent * H.physiology.clone_mod)
if(STAMINA)
- H.stamdamageoverlaytemp = 20
if(BP)
if(damage > 0 ? BP.receive_damage(0, 0, damage * hit_percent * H.physiology.stamina_mod) : BP.heal_damage(0, 0, abs(damage * hit_percent * H.physiology.stamina_mod), only_robotic = FALSE, only_organic = FALSE))
H.update_stamina()
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index 2ef5f2f7..7b8d8a99 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -4,9 +4,8 @@
if(notransform)
return
- if(damageoverlaytemp || stamdamageoverlaytemp)
+ if(damageoverlaytemp)
damageoverlaytemp = 0
- stamdamageoverlaytemp = 0
update_damage_hud()
if(!IsInStasis())
diff --git a/code/world.dm b/code/world.dm
index 344ca9be..ab3b32b6 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -8,7 +8,7 @@
view = "15x15"
hub = "Exadv1.spacestation13"
name = "/tg/ Station 13"
- fps = 20
+ fps = 10
#ifdef FIND_REF_NO_CHECK_TICK
loop_checks = FALSE
#endif
diff --git a/config/config.txt b/config/config.txt
index a01f5424..5dda144c 100644
--- a/config/config.txt
+++ b/config/config.txt
@@ -291,10 +291,10 @@ 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.5
##Can also be set as per-second value, the following value is identical to the above.
-#FPS 20
+FPS 10
## Comment this out to disable automuting
#AUTOMUTE_ON
diff --git a/config/game_options.txt b/config/game_options.txt
index 2e346ce0..7f373657 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -92,6 +92,7 @@ PROBABILITY SECRET_EXTENDED 0
PROBABILITY DEVIL 0
PROBABILITY DEVIL_AGENTS 0
PROBABILITY CLOWNOPS 0
+PROBABILITY WEREWOLF 1
## You probably want to keep sandbox off by default for secret and random.
PROBABILITY SANDBOX 0
@@ -114,6 +115,7 @@ CONTINUOUS CLOCKWORK_CULT
CONTINUOUS CHANGELING
CONTINUOUS WIZARD
#CONTINUOUS MONKEY
+#CONTINUOUS WEREWOLF
##Note: do not toggle continuous off for these modes, as they have no antagonists and would thus end immediately!
@@ -136,6 +138,7 @@ MIDROUND_ANTAG CLOCKWORK_CULT
MIDROUND_ANTAG CHANGELING
MIDROUND_ANTAG WIZARD
#MIDROUND_ANTAG MONKEY
+#MIDROUND_ANTAG WEREWOLF
## Uncomment these for overrides of the minimum / maximum number of players in a round type.
## If you set any of these occasionally check to see if you still need them as the modes
@@ -176,6 +179,9 @@ MIDROUND_ANTAG WIZARD
#MIN_POP MONKEY 20
#MAX_POP MONKEY -1
+#MIN_POP WEREWOLF 20
+#MAX_POP WEREWOLF -1
+
#MIN_POP METEOR 0
#MAX_POP METEOR -1
diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm
index 12a22b65..ec0ccf2e 100644
--- a/hyperstation/code/mobs/mimic.dm
+++ b/hyperstation/code/mobs/mimic.dm
@@ -1,6 +1,5 @@
/mob/living/simple_animal/hostile/mimic
name = "Mimic"
- desc = "A creature with the ability to take the form of other objects."
icon = 'hyperstation/icons/mobs/mimic.dmi'
icon_state = "mimic"
icon_living = "mimic"
@@ -10,54 +9,50 @@
turns_per_move = 5
maxHealth = 30
health = 30
- see_in_dark = 7
- response_help = "pokes"
- response_disarm = "shoves"
- response_harm = "hits"
+ see_in_dark = 3
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/killertomato = 2)
response_help = "prods"
response_disarm = "pushes aside"
response_harm = "smacks"
melee_damage_lower = 8
melee_damage_upper = 12
- move_to_delay = 9
attacktext = "slams"
attack_sound = 'sound/weapons/punch1.ogg'
ventcrawler = VENTCRAWLER_ALWAYS
- faction = list("mimic")
- var/unstealth = FALSE
+ faction = list("plants")
- 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)
- minbodytemp = 150
- maxbodytemp = 500
- gold_core_spawnable = HOSTILE_SPAWN
+ var/unstealth = FALSE
/mob/living/simple_animal/hostile/mimic/Initialize()
// When initialized, make sure they take the form of something.
unstealth = FALSE
+ Mimictransform()
+/mob/living/simple_animal/hostile/mimic/proc/Mimictransform()
+ var/transformitem = rand(1,3)
-/mob/living/simple_animal/hostile/mimic/proc/activate()
- if(!unstealth)
- visible_message("[src] starts to move!")
- unstealth = TRUE
+ if (unstealth == FALSE)
+ switch(transformitem)
+ if(1)
+ //Glass
+ icon = 'icons/obj/drinks.dmi'
+ icon_state = "glass_empty"
+ aggro_vision_range = 0
+ if(2)
+ //Glass
+ icon = 'icons/obj/drinks.dmi'
+ icon_state = "glass_empty"
+ aggro_vision_range = 0
-/mob/living/simple_animal/hostile/mimic/LoseTarget()
- ..()
- icon_state = initial(icon_state) //when lost target, return into stealth form.
- unstealth = FALSE
-
-/mob/living/simple_animal/hostile/mimic/crate/ListTargets()
- if(unstealth)
- return ..()
- return ..(1)
-
- //If stealthed, do not target
-
-
-/mob/living/simple_animal/hostile/mimic/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
- activate()
- //if taking damage, trigger.
\ No newline at end of file
+ if(3)
+ //Glass
+ icon = 'icons/obj/drinks.dmi'
+ icon_state = "glass_empty"
+ aggro_vision_range = 0
+ else
+ //back to normal
+ icon = 'hyperstation/icons/mobs/mimic.dmi'
+ icon_state = "mimic"
\ No newline at end of file
diff --git a/hyperstation/icons/mobs/mimic.dmi b/hyperstation/icons/mobs/mimic.dmi
index e8a4df57c5f2aceb1ea07d5d9d9ef79a282ccf70..181b534fc99708f00b8cd8fefa3d2b0652f1099e 100644
GIT binary patch
delta 1366
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
delta 1195
zcmdnbeS&*}3ZwT#RV71Zd6kfmkTXa2_`3(#TRP-tCZs1u#fJH6X=txou`s|l$k4z*
zOHzEGbl?A9W_sevwo@4@
zDvL`u75n`wVawc~qhFyqOJ3UDz9Z?gPxR-sZK1JOOYhEz)2TmeQoE!6#yp>^E?6s
zg>4UIGomvYrmlR%@Jn37K`xTv@-e0_`#V_}XQVUqs5HErA5rIXim~GLx5W{4LT~T2
zFqEVzO`D%)t;uk_Goo&mD3d|9LkN5QujyP27NyTuM%0PD^J8Ktd;Xm9oHZvy@zZnq
z>*n_rJr|!|IK_JZ4v__0Ku969^EvbKD}N{NXXN^Dm(fnf^|?3mmaj27@w+Qo0~lB}
zcphk2#mhKYFJRzWz~IVg<$m$!C5CD+*?FG%`6C8*_lZA0F|2-n;O88pdG^}%4n_{2
zejX|bljoXHyl?)G^aCRE*Jy%+ZH>%=62{f+9(oF)tJyQ&{kqz+fBLRA_PvYT)*q9M
z-rTJS2Hf?WzBG9oM9!Gka4hHJL}6UZ-yDaBpJLvbV=>qRV%chifw_B;&aCC
z?EUv={jzMhmGiUmz@uGaU%q4n9r}FW;|!zdr$E`$OL*H)mp=%p*fn>}rT=T4H-+(U
zDCEzRHIzTSu77R}!@D^t>-?W3A79rm3ksP420?~(r@6{L1H)w{!@JghJMCun%kHk1
zFDqia5?5;^Z(U~pM#DkiK-uOkKHaYDP2CO2BWmw+)Z|}n{u;>jU-;7t>t6{O?Q=Ee
zujLQs|5NG3DB=J{30E2Bo&0^Jot5oZPVJ1O=j@+PUT@~zApCUm*F-MAcl*>1G|$g%
zh3FGV5Z>O%q{H@LW~Fa!M8bme*V;ABc3$Qac@K=;1Lf==eC{o`)2TPOkpB9xhz$4L
zV4%ro+*#XzCQkvG{QdUy|KX
diff --git a/tgstation.dme b/tgstation.dme
index edb473ea..a6331662 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2832,7 +2832,10 @@
#include "code\modules\VR\vr_sleeper.dm"
#include "code\modules\zombie\items.dm"
#include "code\modules\zombie\organs.dm"
+#include "hyperstation\code\gamemode\werewolf\werewolf.dm"
#include "hyperstation\code\mobs\mimic.dm"
+#include "hyperstation\code\mobs\werewolf.dm"
+#include "hyperstation\code\modules\antagonists\werewolf\werewolf.dm"
#include "interface\interface.dm"
#include "interface\menu.dm"
#include "interface\stylesheet.dm"