diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 4222322f31..725b19ef1d 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -110,7 +110,8 @@ #define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new" //from base of turf/New(): (turf/source, direction) // /atom/movable signals -#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" //from base of atom/movable/Moved(): (/atom) +#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" ///from base of atom/movable/Moved(): (/atom) + #define COMPONENT_MOVABLE_BLOCK_PRE_MOVE 1 #define COMSIG_MOVABLE_MOVED "movable_moved" //from base of atom/movable/Moved(): (/atom, dir) #define COMSIG_MOVABLE_CROSS "movable_cross" //from base of atom/movable/Cross(): (/atom/movable) #define COMSIG_MOVABLE_CROSSED "movable_crossed" //from base of atom/movable/Crossed(): (/atom/movable) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 378667cd82..a74e309a40 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -174,7 +174,10 @@ GLOBAL_LIST_INIT(clawfootmob, typecacheof(list( /mob/living/simple_animal/pet/fox, /mob/living/simple_animal/chicken, /mob/living/simple_animal/hostile/bear, - /mob/living/simple_animal/hostile/jungle/mega_arachnid + /mob/living/simple_animal/hostile/jungle/mega_arachnid, + /mob/living/simple_animal/hostile/mining_mobs/ice_whelp, + /mob/living/simple_animal/hostile/mining_mobs/wolf, + /mob/living/simple_animal/hostile/mining_mobs/polarbear ))) GLOBAL_LIST_INIT(barefootmob, typecacheof(list( diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index cfa2b44970..111c9850ba 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -290,8 +290,3 @@ #define HUMAN_FIRE_STACK_ICON_NUM 3 #define SLEEP_CHECK_DEATH(X) sleep(X); if(QDELETED(src) || stat == DEAD) return; - -//slowdown when in softcrit. Note that crawling slowdown will also apply at the same time! -#define SOFTCRIT_ADD_SLOWDOWN 2 -//slowdown when crawling -#define CRAWLING_ADD_SLOWDOWN 4 diff --git a/code/__DEFINES/mobs/slowdowns.dm b/code/__DEFINES/mobs/slowdowns.dm index e532da0066..2d858e9509 100644 --- a/code/__DEFINES/mobs/slowdowns.dm +++ b/code/__DEFINES/mobs/slowdowns.dm @@ -4,3 +4,7 @@ #define FIREMAN_CARRY_SLOWDOWN 0 /// How much someone is slowed by piggybacking a human #define PIGGYBACK_CARRY_SLOWDOWN 1 +/// slowdown when in softcrit. Note that crawling slowdown will also apply at the same time! +#define SOFTCRIT_ADD_SLOWDOWN 2 +/// slowdown when crawling +#define CRAWLING_ADD_SLOWDOWN 4 diff --git a/code/datums/weather/weather_types/acid_rain.dm b/code/datums/weather/weather_types/acid_rain.dm index 7bb457d7ef..a1ec4871d5 100644 --- a/code/datums/weather/weather_types/acid_rain.dm +++ b/code/datums/weather/weather_types/acid_rain.dm @@ -19,7 +19,7 @@ area_type = /area protect_indoors = TRUE - target_trait = ZTRAIT_ACIRDRAIN + target_trait = ZTRAIT_ACIDRAIN immunity_type = "acid" // temp diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm index 71499dd71c..70e0910dde 100644 --- a/code/game/area/areas/mining.dm +++ b/code/game/area/areas/mining.dm @@ -18,7 +18,7 @@ outdoors = TRUE flags_1 = NONE ambientsounds = MINING - flora_allowed FALSE + flora_allowed = FALSE /area/mine/unexplored name = "Mine" diff --git a/code/game/atoms_movement.dm b/code/game/atoms_movement.dm index d418652cd8..3f86f23546 100644 --- a/code/game/atoms_movement.dm +++ b/code/game/atoms_movement.dm @@ -20,6 +20,9 @@ if(!newloc.Enter(src, src.loc)) return + if (SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_MOVE, newloc) & COMPONENT_MOVABLE_BLOCK_PRE_MOVE) + return + // Past this is the point of no return var/atom/oldloc = loc var/area/oldarea = get_area(oldloc) diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 04e194f6c3..553b3245a1 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -183,3 +183,47 @@ else real_target = get_turf(linked) return real_target + +/obj/effect/portal/permanent + name = "permanent portal" + desc = "An unwavering portal that will never fade." + hardlinked = FALSE // dont qdel my portal nerd + force_teleport = TRUE // force teleports because they're a mapmaker tool + var/id // var edit or set id in map editor + +/obj/effect/portal/permanent/proc/set_linked() + if(!id) + return + for(var/obj/effect/portal/permanent/P in GLOB.portals - src) + if(P.id == id) + P.linked = src + linked = P + break + +/obj/effect/portal/permanent/teleport(atom/movable/M, force = FALSE) + set_linked() // update portal links + . = ..() + +/obj/effect/portal/permanent/one_way // doesn't have a return portal, can have multiple exits, /obj/effect/landmark/portal_exit to mark them + name = "one-way portal" + desc = "You get the feeling that this might not be the safest thing you've ever done." + +/obj/effect/portal/permanent/one_way/set_linked() + if(!id) + return + var/list/possible_turfs = list() + for(var/obj/effect/landmark/portal_exit/PE in GLOB.landmarks_list) + if(PE.id == id) + var/turf/T = get_turf(PE) + if(T) + possible_turfs |= T + if(possible_turfs.len) + hard_target = pick(possible_turfs) + +/obj/effect/portal/permanent/one_way/one_use + name = "one-use portal" + desc = "This is probably the worst decision you'll ever make in your life." + +/obj/effect/portal/permanent/one_way/one_use/teleport(atom/movable/M, force = FALSE) + . = ..() + qdel(src) diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index 07f8af2a73..b90f1e6144 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -228,7 +228,7 @@ if (!megafauna_spawn_list) megafauna_spawn_list = list(/mob/living/simple_animal/hostile/megafauna/dragon = 4, /mob/living/simple_animal/hostile/megafauna/colossus = 2, /mob/living/simple_animal/hostile/megafauna/bubblegum = SPAWN_BUBBLEGUM) if (!flora_spawn_list) - flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2) + flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/azsh/tall_shroom = 2) . = ..() if(!has_data) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index 88f2cfb132..4ba68cb13d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -10,7 +10,7 @@ Difficulty: Extremely Hard icon_state = "demonic_miner" icon_living = "demonic_miner" icon = 'icons/mob/icemoon/icemoon_monsters.dmi' - attack_text = "pummels" + attacktext = "pummels" attack_sound = 'sound/weapons/sonic_jackhammer.ogg' mob_biotypes = MOB_ORGANIC|MOB_HUMANOID light_color = "#E4C7C5" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index cedc0a5b0a..4b96e724d7 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -11,8 +11,7 @@ Difficulty: Hard icon_living = "wendigo" icon_dead = "wendigo_dead" icon = 'icons/mob/icemoon/64x64megafauna.dmi' - attack_verb_continuous = "claws" - attack_verb_simple = "claw" + attacktext = "claws" attack_sound = 'sound/magic/demon_attack1.ogg' weather_immunities = list("snow") speak_emote = list("roars") diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm index 8f01584a8e..7e17d97ed0 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm @@ -23,8 +23,7 @@ obj_damage = 40 melee_damage_lower = 15 melee_damage_upper = 15 - attack_verb_continuous = "slices" - attack_verb_simple = "slice" + attacktext = "slices" attack_sound = 'sound/weapons/bladeslice.ogg' vision_range = 9 aggro_vision_range = 9 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm index 8c56390b0b..3aa6be588c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm @@ -19,7 +19,7 @@ armour_penetration = 20 melee_damage_lower = 20 melee_damage_upper = 20 - attack_text = "chomps" + attacktext = "chomps" attack_sound = 'sound/magic/demon_attack1.ogg' vision_range = 9 aggro_vision_range = 9 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm index 1f821e8c48..53378d28e6 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm @@ -7,8 +7,7 @@ icon_dead = "whitewolf_dead" mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON - friendly_verb_continuous = "howls at" - friendly_verb_simple = "howl at" + friendly = "howls at" speak_emote = list("howls") speed = 5 move_to_delay = 5 @@ -20,8 +19,7 @@ rapid_melee = 2 // every second attack dodging = TRUE dodge_prob = 50 - attack_verb_continuous = "bites" - attack_verb_simple = "bite" + attacktext = "bites" attack_sound = 'sound/weapons/bite.ogg' vision_range = 7 aggro_vision_range = 7 diff --git a/tgstation.dme b/tgstation.dme index 15be80ff59..b7849d8bda 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -125,8 +125,8 @@ #include "code\__DEFINES\dcs\helpers.dm" #include "code\__DEFINES\dcs\signals.dm" #include "code\__DEFINES\flags\shields.dm" -#include "code\__DEFINES\mobs\slowdowns.dm" #include "code\__DEFINES\misc\return_values.dm" +#include "code\__DEFINES\mobs\slowdowns.dm" #include "code\__HELPERS\_cit_helpers.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_logging.dm"