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"