From d709fa12c7cfb07b746b98d44efb0c14fc5a8e0f Mon Sep 17 00:00:00 2001 From: diegoflores31 Date: Tue, 25 Jun 2024 01:35:35 -0500 Subject: [PATCH 01/13] CRAWLING --- code/__DEFINES/mobs.dm | 3 +++ .../mob/living/carbon/xenomorph/XenoProcs.dm | 21 +++++++++++++++--- .../mob/living/carbon/xenomorph/Xenomorph.dm | 3 ++- .../carbon/xenomorph/abilities/xeno_action.dm | 2 ++ .../living/carbon/xenomorph/castes/Drone.dm | 3 ++- .../carbon/xenomorph/castes/caste_datum.dm | 4 +++- .../carbon/xenomorph/castes/lesser_drone.dm | 1 + code/modules/mob/mob.dm | 4 ++-- code/modules/mob/mob_defines.dm | 4 ++++ icons/mob/xenos/drone.dmi | Bin 4089 -> 4717 bytes icons/mob/xenos/lesser_drone.dmi | Bin 2081 -> 2627 bytes icons/mob/xenos/sentinel.dmi | Bin 4345 -> 4902 bytes 12 files changed, 37 insertions(+), 8 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 77f2393e6542..615355806cd7 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -160,6 +160,9 @@ /* MOVE DEFINES */ #define MOVE_INTENT_WALK 1 #define MOVE_INTENT_RUN 2 +// same but for xenos +#define MOVE_INTENT_STALK 1 +#define MOVE_INTENT_HUNT 2 /* INTERNAL ORGAN DEFINES */ #define ORGAN_ASSISTED 1 diff --git a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index 45edbfe7d9e3..181d16e2ea7b 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -226,6 +226,24 @@ if(inherent_verbs) add_verb(src, inherent_verbs) +// activates the buffs and debuffs of Stalk mode for certain castes , This is the generic proc but each xeno can have their own set of snowflake. +/mob/living/carbon/xenomorph/set_movement_intent(new_intent) + . = ..() + if(caste) + walk_modifier = caste.walk_modifier + run_modifier = caste.run_modifier + if(!can_ventcrawl()) // for now only crawlers can get actual buffs for stalk mode + return + if(tier < 2) + return + switch(new_intent) + if(MOVE_INTENT_HUNT) + evasion_modifier = XENO_EVASION_NONE + remove_temp_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) + if(MOVE_INTENT_STALK) + evasion_modifier += XENO_EVASION_MOD_ULTRA // this looks like a lot but evasion is broken and doesnt even work most of the time + add_temp_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) + recalculate_evasion() //Adds or removes a delay to movement based on your caste. If speed = 0 then it shouldn't do much. //Runners are -2, -4 is BLINDLINGLY FAST, +2 is fat-level @@ -237,9 +255,6 @@ if(frenzy_aura) . -= (frenzy_aura * 0.05) - if(agility) - . += caste.agility_speed_increase - var/obj/effect/alien/weeds/W = locate(/obj/effect/alien/weeds) in loc if (W) if (W.linked_hive.hivenumber == hivenumber) diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm index b07f766b179d..c8a18fc4ea83 100644 --- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm +++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm @@ -52,6 +52,7 @@ gender = NEUTER icon_size = 48 black_market_value = KILL_MENDOZA + base_walk = 3 // Base stalk(walking) speed ///How much to horizontally adjust the sprites of held item onmobs by. Based on icon size. Most xenos have hands about the same height as a human's. var/xeno_inhand_item_offset dead_black_market_value = 50 @@ -95,7 +96,7 @@ var/plasma_max = 10 var/plasma_gain = 5 var/cooldown_reduction_percentage = 0 // By what % cooldown are reduced by. 1 => No cooldown. Should normally be clamped at 50% - + var/can_vent_crawl = FALSE var/death_fontsize = 3 var/small_explosives_stun = TRUE // Have to put this here, otherwise it can't be strain specific diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm b/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm index 80cf5c1e37ac..8f88443ef8e2 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm @@ -71,6 +71,8 @@ if(!owner) return FALSE var/mob/living/carbon/xenomorph/X = owner + if(X.m_intent == MOVE_INTENT_STALK && X.tier < 2) + return FALSE if(X && !X.is_mob_incapacitated() && !HAS_TRAIT(X, TRAIT_DAZED) && X.body_position == STANDING_UP && !X.buckled && X.plasma_stored >= plasma_cost) return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm b/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm index e6c4a76c9353..9349095abf4d 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm @@ -11,6 +11,7 @@ armor_deflection = XENO_NO_ARMOR evasion = XENO_EVASION_MEDIUM speed = XENO_SPEED_TIER_7 + walk_modifier = XENO_SPEED_HELLHOUND // no penalty to crawling available_strains = list( /datum/xeno_strain/gardener, @@ -50,7 +51,7 @@ desc = "An alien drone" icon = 'icons/mob/xenos/drone.dmi' icon_size = 48 - icon_state = "Drone Walking" + icon_state = "Drone Running" plasma_types = list(PLASMA_PURPLE) tier = 1 organ_value = 800 diff --git a/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm b/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm index feee2edecb67..07f513220e24 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm @@ -12,6 +12,8 @@ var/evasion = XENO_EVASION_NONE var/speed = XENO_SPEED_TIER_10 + var/walk_modifier = 0 + var/run_modifier = 0 var/plasma_max = 10 var/plasma_gain = 5 @@ -97,7 +99,7 @@ var/can_be_queen_healed = TRUE var/can_be_revived = TRUE - var/can_vent_crawl = 1 + var/can_vent_crawl = TRUE var/caste_luminosity = 0 diff --git a/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm b/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm index 9be9e21fd983..d7d698cac084 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm @@ -11,6 +11,7 @@ armor_deflection = XENO_NO_ARMOR evasion = XENO_EVASION_LOW speed = XENO_SPEED_TIER_6 + walk_modifier = XENO_SPEED_HELLHOUND evolution_allowed = FALSE can_be_revived = FALSE diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 8a792943e345..7b5d0772d963 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -224,9 +224,9 @@ /mob/proc/movement_delay() switch(m_intent) if(MOVE_INTENT_RUN) - . = 2 + CONFIG_GET(number/run_speed) + . = base_run + CONFIG_GET(number/run_speed) + run_modifier if(MOVE_INTENT_WALK) - . = 7 + CONFIG_GET(number/walk_speed) + . = base_walk + CONFIG_GET(number/walk_speed) + walk_modifier . += speed move_delay = . diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 4b3d2257eb9e..de06f6506800 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -43,6 +43,10 @@ var/recalculate_move_delay = TRUE // Whether move delay needs to be recalculated, on by default so that new mobs actually get movement delay calculated upon creation var/crawling = FALSE var/can_crawl = TRUE + var/base_walk = 4 // Base walking speed + var/base_run = 2 // Base running speed + var/walk_modifier = 0 // speed modifier for Walk mode + var/run_modifier = 0 // speed modifier for Run mode var/monkeyizing = null //Carbon var/hand = null diff --git a/icons/mob/xenos/drone.dmi b/icons/mob/xenos/drone.dmi index a918d6fb95ab71a4bbbfc52d2addd8fa0d75c1e7..601cd44398959786dc7fb8b5394b47da4dfd67df 100644 GIT binary patch delta 4627 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 delta 3994 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 euWvcasLCgToptB diff --git a/icons/mob/xenos/lesser_drone.dmi b/icons/mob/xenos/lesser_drone.dmi index 134ec0c4ae7cd4f20c8116bcffaa4c5499c738fc..cea4bccd82fb64fde0068495c488be1dc6b247b2 100644 GIT binary patch delta 2360 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 A;Q#;t diff --git a/icons/mob/xenos/sentinel.dmi b/icons/mob/xenos/sentinel.dmi index b5c79807c4f1a63c9999d4a90de683ac3c6d519d..b517351afb825b70fad3f8b3745a04d0f817cc3d 100644 GIT binary patch delta 4645 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 Date: Tue, 25 Jun 2024 01:48:43 -0500 Subject: [PATCH 02/13] xd --- code/modules/mob/living/carbon/xenomorph/Xenomorph.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm index c8a18fc4ea83..e1f0595632c9 100644 --- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm +++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm @@ -96,7 +96,6 @@ var/plasma_max = 10 var/plasma_gain = 5 var/cooldown_reduction_percentage = 0 // By what % cooldown are reduced by. 1 => No cooldown. Should normally be clamped at 50% - var/can_vent_crawl = FALSE var/death_fontsize = 3 var/small_explosives_stun = TRUE // Have to put this here, otherwise it can't be strain specific From 7b16b5512df82f5cf7cf4d3573c98c69271fad78 Mon Sep 17 00:00:00 2001 From: diegoflores31 Date: Tue, 25 Jun 2024 02:25:47 -0500 Subject: [PATCH 03/13] a --- code/modules/mob/living/carbon/xenomorph/XenoProcs.dm | 7 ++++++- code/modules/mob/living/carbon/xenomorph/attack_alien.dm | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index 181d16e2ea7b..8952d36e5823 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -227,7 +227,11 @@ add_verb(src, inherent_verbs) // activates the buffs and debuffs of Stalk mode for certain castes , This is the generic proc but each xeno can have their own set of snowflake. -/mob/living/carbon/xenomorph/set_movement_intent(new_intent) +#define STALKING_COOLDOWN "stalking_cooldown" +/mob/living/carbon/xenomorph/set_movement_intent(new_intent, cooldown = 5 SECONDS) + if(TIMER_COOLDOWN_CHECK(src, STALKING_COOLDOWN)) + to_chat(src, SPAN_XENOWARNING("We are not ready to change our stance")) + return . = ..() if(caste) walk_modifier = caste.walk_modifier @@ -244,6 +248,7 @@ evasion_modifier += XENO_EVASION_MOD_ULTRA // this looks like a lot but evasion is broken and doesnt even work most of the time add_temp_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) recalculate_evasion() + TIMER_COOLDOWN_START(src, STALKING_COOLDOWN, cooldown) //Adds or removes a delay to movement based on your caste. If speed = 0 then it shouldn't do much. //Runners are -2, -4 is BLINDLINGLY FAST, +2 is fat-level diff --git a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm index de0cefeea76d..3b41e8bb71f9 100644 --- a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm +++ b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm @@ -17,6 +17,9 @@ if(attacking_xeno.behavior_delegate) intent = attacking_xeno.behavior_delegate.override_intent(src) + if(attacking_xeno.m_intent == MOVE_INTENT_STALK) + attacking_xeno.set_movement_intent(MOVE_INTENT_HUNT, cooldown = 10 SECONDS) + //Reviewing the four primary intents switch(intent) @@ -229,6 +232,9 @@ if(M.fortify || HAS_TRAIT(M, TRAIT_ABILITY_BURROWED)) return XENO_NO_DELAY_ACTION + if(M.m_intent == MOVE_INTENT_STALK) + M.set_movement_intent(MOVE_INTENT_HUNT, cooldown = 10 SECONDS) + switch(M.a_intent) if(INTENT_HELP) M.visible_message(SPAN_NOTICE("[M] caresses [src] with its claws."), \ From 295c0c165b2271893188cf04979b17136b5fb3c1 Mon Sep 17 00:00:00 2001 From: diegoflores31 Date: Thu, 1 Aug 2024 19:43:50 -0500 Subject: [PATCH 04/13] harry --- code/__DEFINES/cooldowns.dm | 1 + .../mob/living/carbon/xenomorph/XenoProcs.dm | 7 ++--- code/modules/mob/mob_defines.dm | 31 ++++++++++++------- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/code/__DEFINES/cooldowns.dm b/code/__DEFINES/cooldowns.dm index 9368caf3c6e3..16bbc4101a1d 100644 --- a/code/__DEFINES/cooldowns.dm +++ b/code/__DEFINES/cooldowns.dm @@ -4,6 +4,7 @@ #define COOLDOWN_HIJACK_GROUND_CHECK "gamemode_ground_check" #define COOLDOWN_ITEM_HOOD_SOUND "item_hood_sound" #define COOLDOWN_LIGHT "cooldown_light" +#define STALKING_COOLDOWN "stalking_cooldown" //Define for ship alt #define COOLDOWN_ALTITUDE_CHANGE "altitude_change" diff --git a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index 8952d36e5823..6507fe0d6dc2 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -216,18 +216,17 @@ armor_integrity = min(armor_integrity + value, 100) -//Strip all inherent xeno verbs from your caste. Used in evolution. +///Strip all inherent xeno verbs from your caste. Used in evolution. /mob/living/carbon/xenomorph/proc/remove_inherent_verbs() if(inherent_verbs) remove_verb(src, inherent_verbs) -//Add all your inherent caste verbs and procs. Used in evolution. +///Add all your inherent caste verbs and procs. Used in evolution. /mob/living/carbon/xenomorph/proc/add_inherent_verbs() if(inherent_verbs) add_verb(src, inherent_verbs) -// activates the buffs and debuffs of Stalk mode for certain castes , This is the generic proc but each xeno can have their own set of snowflake. -#define STALKING_COOLDOWN "stalking_cooldown" +/// activates the buffs and debuffs of Stalk mode for certain castes , This is the generic proc but each xeno can have their own set of snowflake. /mob/living/carbon/xenomorph/set_movement_intent(new_intent, cooldown = 5 SECONDS) if(TIMER_COOLDOWN_CHECK(src, STALKING_COOLDOWN)) to_chat(src, SPAN_XENOWARNING("We are not ready to change our stance")) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index de06f6506800..be73004603da 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -28,25 +28,34 @@ /// The list of people observing this mob. var/list/mob/dead/observer/observers var/zone_selected = "chest" - - var/use_me = 1 //Allows all mobs to use the me verb by default, will have to manually specify they cannot + ///Allows all mobs to use the me verb by default, will have to manually specify they cannot + var/use_me = 1 var/damageoverlaytemp = 0 - var/computer_id = null //to track the players + ///to track the players + var/computer_id = null var/list/attack_log = list( ) - var/atom/movable/interactee //the thing that the mob is currently interacting with (e.g. a computer, another mob (stripping a mob), manning a hmg) + ///the thing that the mob is currently interacting with (e.g. a computer, another mob (stripping a mob), manning a hmg) + var/atom/movable/interactee var/sdisabilities = 0 //Carbon var/disabilities = 0 //Carbon var/atom/movable/pulling = null var/next_move = null - var/next_move_slowdown = 0 // Amount added during the next movement_delay(), then is reset. - var/speed = 0 //Speed that modifies the movement delay of a given mob - var/recalculate_move_delay = TRUE // Whether move delay needs to be recalculated, on by default so that new mobs actually get movement delay calculated upon creation + /// Amount added during the next movement_delay(), then is reset. + var/next_move_slowdown = 0 + ///Speed that modifies the movement delay of a given mob + var/speed = 0 + /// Whether move delay needs to be recalculated, on by default so that new mobs actually get movement delay calculated upon creation + var/recalculate_move_delay = TRUE var/crawling = FALSE var/can_crawl = TRUE - var/base_walk = 4 // Base walking speed - var/base_run = 2 // Base running speed - var/walk_modifier = 0 // speed modifier for Walk mode - var/run_modifier = 0 // speed modifier for Run mode + /// Base walking speed + var/base_walk = 4 + /// Base running speed + var/base_run = 2 + /// speed modifier for Walk mode + var/walk_modifier = 0 + /// speed modifier for Run mode + var/run_modifier = 0 var/monkeyizing = null //Carbon var/hand = null From 0ba57d296b13707a6612c7722215e0a53c85e5b6 Mon Sep 17 00:00:00 2001 From: diegoflores31 Date: Thu, 1 Aug 2024 21:12:03 -0500 Subject: [PATCH 05/13] xd --- code/modules/mob/mob_defines.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index be73004603da..891ae67f3090 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -48,7 +48,7 @@ var/recalculate_move_delay = TRUE var/crawling = FALSE var/can_crawl = TRUE - /// Base walking speed + /// Base walking speed var/base_walk = 4 /// Base running speed var/base_run = 2 From b8b041bf27fa857d47a4f75653015f0113485e7a Mon Sep 17 00:00:00 2001 From: diegoflores31 Date: Fri, 2 Aug 2024 20:49:53 -0500 Subject: [PATCH 06/13] a --- code/modules/mob/living/carbon/xenomorph/XenoProcs.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index 6507fe0d6dc2..c45f1047bc67 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -227,17 +227,18 @@ add_verb(src, inherent_verbs) /// activates the buffs and debuffs of Stalk mode for certain castes , This is the generic proc but each xeno can have their own set of snowflake. -/mob/living/carbon/xenomorph/set_movement_intent(new_intent, cooldown = 5 SECONDS) +/mob/living/carbon/xenomorph/set_movement_intent(new_intent, cooldown = 3 SECONDS) if(TIMER_COOLDOWN_CHECK(src, STALKING_COOLDOWN)) to_chat(src, SPAN_XENOWARNING("We are not ready to change our stance")) return + TIMER_COOLDOWN_START(src, STALKING_COOLDOWN, cooldown) . = ..() if(caste) walk_modifier = caste.walk_modifier run_modifier = caste.run_modifier if(!can_ventcrawl()) // for now only crawlers can get actual buffs for stalk mode return - if(tier < 2) + if(tier > 1) return switch(new_intent) if(MOVE_INTENT_HUNT) @@ -247,7 +248,6 @@ evasion_modifier += XENO_EVASION_MOD_ULTRA // this looks like a lot but evasion is broken and doesnt even work most of the time add_temp_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) recalculate_evasion() - TIMER_COOLDOWN_START(src, STALKING_COOLDOWN, cooldown) //Adds or removes a delay to movement based on your caste. If speed = 0 then it shouldn't do much. //Runners are -2, -4 is BLINDLINGLY FAST, +2 is fat-level From 6929f9513d65a4f6715b0ea0e2be9bbeb3de777a Mon Sep 17 00:00:00 2001 From: diegoflores31 Date: Fri, 2 Aug 2024 21:09:12 -0500 Subject: [PATCH 07/13] drone overlays --- icons/mob/xenos/drone_strain_overlays.dmi | Bin 1004 -> 1045 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/xenos/drone_strain_overlays.dmi b/icons/mob/xenos/drone_strain_overlays.dmi index 0f316b2ede853a47dcf04e93cecf35a8e5481166..0c1c50a2dc09a62df43261776f3da638b27b420b 100644 GIT binary patch delta 778 zcmV+l1NHpu2bBnrBrPOROjJbx002`{Q^&{0|NsAjf`Tb7HZ&wXXiIofH(ZHhojfW> zSwLon|CLCQPWOMfNkl5xN?TP!&c9m-ohXfaibW*mVNmdH0fii(MyxVex9$ zG~RLJ?u)41ht;lYFv?m-auwdZS^pZno7i9$xyI(&y-{)ze{r1`PXGV_0N}c;?$b6u zU+8p|b+qQ~|G9DZV|;-$L3x#EYdtqUYi8W2^RrcV6xLJXvu4I-Z#;DNb|TH#L=c0T zp4@lXs`Gyy0svU^-gN-)`Su4C000000N^|))rHY4N677FF!7eozh6C3jcBw2Yw%T=!ePQZ4 z!8857b{zo#002O_G}OYDs+gdO8<)$Hv9P5|tW0AE!C2TbT5hC`kC9G|!{ugdE{7Rj zP4r)ls4r_5{tANcHeNE7jU~-mf9F5n&VJ-(!z`(hmNaY69%u8%`ND9TAk%^5qcPIz zq1AuN^LwoXt&f=Yhk@vR&qUuZcMoc0G*6HW`&x2aRZX?Zi#L)ko)`_JG9~J8`^Hlf zQTuXj`0001oj7x5immRk*n&_y`aqHCd@QG5(j$5ZjI;?Ztx~FQuX~(TAs{v3Oz`nk$ zq-%{z5@AWsl4z1nU1!)c%95#9Ul37g>eovaDBso+0e}nt0FT>OkiA0jUjP6A07*qo IM6N<$g5G&~umAu6 delta 737 zcmV<70v`R92>c8tFtO9rjxy?q|AE%~RhQUCw|04~<2#fOud-tu$vi|_v3 zTepFlw|B4Q-+P|>cfL6ebbtL?es3A5a{tcf;{`W=mK!xzb&Y~@_x_Em@`i=3_8tm3 z_djIYq1gL}#}3)BLjV8(00000aM^_UmoL^FO`3oCQj`*HNb|2UjVf!eZ3~3?SDCJR z=@G*Gt4y=!V-Sy;C+uzzRo+7YfMCAXJwWtg`vnRB00000a2jC-;(Si6YPhnFkvfj2 zq@?|S{xQ`8SAbup;drFU|njutPTN5C8xG00000yk-5CkuCJ~ zFYave^hvhRmVfz@Dd9l2{Hsj0s45H5bYG`;LU9Nj+wvwKw(GnJ9F4I)#@8@o@^nYJkzm$5+?CV_fFKPd^ z_MiFB57Qqr>q5u;OWc3$ z%ZFz@DqZHBe+m0<=!wybm$z*ePs-N0=3mnO+k*8QLyt=fT=Oq!|82o={j6VJ;Fy1j z`)>-&|Id61-5&q|000000N$LZf Date: Fri, 2 Aug 2024 22:44:27 -0500 Subject: [PATCH 08/13] i love overlays i love overlays i love overlays i love overlays i love overlays i love overlays i love overlays i love overlays i love overlays --- .../mob/living/carbon/xenomorph/XenoProcs.dm | 1 + .../strains/castes/drone/gardener.dm | 6 +++++- .../xenomorph/strains/castes/drone/healer.dm | 6 +++++- icons/mob/xenos/drone.dmi | Bin 4717 -> 4831 bytes 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index c45f1047bc67..6afd199d7809 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -248,6 +248,7 @@ evasion_modifier += XENO_EVASION_MOD_ULTRA // this looks like a lot but evasion is broken and doesnt even work most of the time add_temp_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) recalculate_evasion() + update_icons() //Adds or removes a delay to movement based on your caste. If speed = 0 then it shouldn't do much. //Runners are -2, -4 is BLINDLINGLY FAST, +2 is fat-level diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm index d54d268f12d9..b7c15fe0b917 100644 --- a/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm @@ -379,7 +379,11 @@ else fruit_sac_overlay_icon.icon_state = "Gardener Drone Knocked Down" else - fruit_sac_overlay_icon.icon_state = "Gardener Drone Walking" + switch(bound_xeno.m_intent) + if(MOVE_INTENT_STALK) + fruit_sac_overlay_icon.icon_state = "Gardener Drone Walking" + if(MOVE_INTENT_HUNT) + fruit_sac_overlay_icon.icon_state = "Gardener Drone Running" var/fruit_sac_color = initial(bound_xeno.selected_fruit.gardener_sac_color) diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm index 5ebafc88eaef..de53c8fb01b2 100644 --- a/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm @@ -164,7 +164,11 @@ else salve_applied_icon.icon_state = "Healer Drone Knocked Down" else - salve_applied_icon.icon_state = "Healer Drone Walking" + switch(bound_xeno.m_intent) + if(MOVE_INTENT_STALK) + salve_applied_icon.icon_state = "Healer Drone Walking" + if(MOVE_INTENT_HUNT) + salve_applied_icon.icon_state = "Healer Drone Running" bound_xeno.overlays += salve_applied_icon diff --git a/icons/mob/xenos/drone.dmi b/icons/mob/xenos/drone.dmi index 601cd44398959786dc7fb8b5394b47da4dfd67df..e78919b3d53d95767473b8aebdb7b2fadd61e1b4 100644 GIT binary patch delta 4573 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 From 9bc895f3f1273adcfe247c9a65e8ae55c8a2654a Mon Sep 17 00:00:00 2001 From: diegoflores31 Date: Sat, 3 Aug 2024 02:28:03 -0500 Subject: [PATCH 09/13] QoL --- code/game/atoms.dm | 16 ++++++++++++++-- .../mob/living/carbon/xenomorph/XenoProcs.dm | 10 ++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index a14f1018e49a..2dab075a3209 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -16,7 +16,7 @@ // The cached datum for the permanent pass flags for any given atom var/datum/pass_flags_container/pass_flags - // Temporary lags for what an atom can pass through + // Temporary flags for what an atom can pass through var/list/flags_pass_temp var/list/temp_flag_counter @@ -429,7 +429,19 @@ Parameters are passed from New. return TRUE return FALSE -// Movement +///Temporal CAN PASS FLAGGS , +//this should be a proc for any kind of temporal flag but needs big rework (TODO) +/atom/proc/add_temp_can_pass_flags(flags_to_add) + for (var/flag in GLOB.bitflags) + if(!(flags_to_add & flag)) + continue + flags_can_pass_all_temp |= flag + +/atom/proc/remove_temp_can_pass_flags(flags_to_remove) + for (var/flag in GLOB.bitflags) + flags_can_pass_all_temp &= ~flag + +///Temporal PASS FLAGS /atom/proc/add_temp_pass_flags(flags_to_add) if (isnull(temp_flag_counter)) temp_flag_counter = list() diff --git a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index 6afd199d7809..caf5e84a684f 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -243,10 +243,16 @@ switch(new_intent) if(MOVE_INTENT_HUNT) evasion_modifier = XENO_EVASION_NONE - remove_temp_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) + remove_temp_pass_flags(PASS_MOB_IS_XENO|PASS_TYPE_CRAWLER|PASS_MOB_THRU_XENO) + remove_temp_can_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) + layer = MOB_LAYER + if(MOVE_INTENT_STALK) evasion_modifier += XENO_EVASION_MOD_ULTRA // this looks like a lot but evasion is broken and doesnt even work most of the time - add_temp_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) + add_temp_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO|PASS_TYPE_CRAWLER) + add_temp_can_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) + layer = XENO_HIDING_LAYER + recalculate_evasion() update_icons() From 53948934d3a756e0b2320070784686dd76c300cd Mon Sep 17 00:00:00 2001 From: diegoflores31 Date: Sat, 3 Aug 2024 02:35:33 -0500 Subject: [PATCH 10/13] a --- code/modules/mob/living/carbon/xenomorph/XenoProcs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index caf5e84a684f..11acb2598663 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -251,7 +251,7 @@ evasion_modifier += XENO_EVASION_MOD_ULTRA // this looks like a lot but evasion is broken and doesnt even work most of the time add_temp_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO|PASS_TYPE_CRAWLER) add_temp_can_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) - layer = XENO_HIDING_LAYER + layer = BELOW_TABLE_LAYER recalculate_evasion() update_icons() From 902c0ffa09bbe0a01ef611badcb0cec4d354b2a1 Mon Sep 17 00:00:00 2001 From: diegoflores31 Date: Sat, 3 Aug 2024 04:10:23 -0500 Subject: [PATCH 11/13] a --- code/modules/mob/living/carbon/xenomorph/XenoProcs.dm | 4 ++-- code/modules/mob/living/carbon/xenomorph/castes/Runner.dm | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index 11acb2598663..6e39a4e72a01 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -245,13 +245,13 @@ evasion_modifier = XENO_EVASION_NONE remove_temp_pass_flags(PASS_MOB_IS_XENO|PASS_TYPE_CRAWLER|PASS_MOB_THRU_XENO) remove_temp_can_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) - layer = MOB_LAYER + layer = initial(layer) if(MOVE_INTENT_STALK) evasion_modifier += XENO_EVASION_MOD_ULTRA // this looks like a lot but evasion is broken and doesnt even work most of the time add_temp_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO|PASS_TYPE_CRAWLER) add_temp_can_pass_flags(PASS_MOB_IS_XENO|PASS_MOB_THRU_XENO) - layer = BELOW_TABLE_LAYER + layer = XENO_HIDING_LAYER recalculate_evasion() update_icons() diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm b/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm index 8721294173e9..9b1acdc4589b 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm @@ -56,7 +56,6 @@ /datum/action/xeno_action/onclick/regurgitate, /datum/action/xeno_action/watch_xeno, /datum/action/xeno_action/activable/tail_stab, - /datum/action/xeno_action/onclick/xenohide, /datum/action/xeno_action/activable/pounce/runner, /datum/action/xeno_action/activable/runner_skillshot, /datum/action/xeno_action/onclick/toggle_long_range/runner, From df197b206a306dcc69f39526ea99e5f05808599b Mon Sep 17 00:00:00 2001 From: diegoflores31 Date: Sat, 3 Aug 2024 23:58:24 -0500 Subject: [PATCH 12/13] a --- .../mob/living/carbon/xenomorph/abilities/general_powers.dm | 6 ++++++ .../mob/living/carbon/xenomorph/abilities/xeno_action.dm | 2 +- .../living/carbon/xenomorph/strains/castes/drone/healer.dm | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm index 4bd70a93684f..213ba2413737 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm @@ -904,6 +904,9 @@ current = get_step_towards(current, target_turf) +/datum/action/xeno_action/activable/tail_stab/can_use_action() + return TRUE + /datum/action/xeno_action/activable/tail_stab/use_ability(atom/targetted_atom) var/mob/living/carbon/xenomorph/stabbing_xeno = owner @@ -925,6 +928,9 @@ if (world.time <= stabbing_xeno.next_move) return FALSE + if(stabbing_xeno.m_intent == MOVE_INTENT_STALK) + stabbing_xeno.set_movement_intent(MOVE_INTENT_HUNT, 10 SECONDS) + var/distance = get_dist(stabbing_xeno, targetted_atom) if(distance > 2) return FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm b/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm index 8f88443ef8e2..1c3ba325ed76 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm @@ -146,7 +146,7 @@ /datum/action/xeno_action/activable /datum/action/xeno_action/activable/can_use_action() - return TRUE + . = ..() // Called when the action is clicked on. // For non-activable Xeno actions, this is used to diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm index de53c8fb01b2..e7251415b5fe 100644 --- a/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm @@ -61,6 +61,10 @@ /datum/action/xeno_action/activable/apply_salve/use_ability(atom/target_atom) var/mob/living/carbon/xenomorph/xeno = owner + + if(xeno.m_intent == MOVE_INTENT_STALK) + return FALSE + xeno.xeno_apply_salve(target_atom, health_transfer_amount, max_range, damage_taken_mod) return ..() From dc49f95b1f90203c79a731000a0955c0f0788ecc Mon Sep 17 00:00:00 2001 From: diegoflores31 Date: Sun, 4 Aug 2024 05:42:49 -0500 Subject: [PATCH 13/13] aaaaaa --- .../mob/living/carbon/xenomorph/abilities/xeno_action.dm | 9 ++++++++- .../carbon/xenomorph/strains/castes/drone/healer.dm | 4 ---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm b/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm index 1c3ba325ed76..967c8365a446 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm @@ -146,7 +146,14 @@ /datum/action/xeno_action/activable /datum/action/xeno_action/activable/can_use_action() - . = ..() + if(!owner) + return FALSE + var/mob/living/carbon/xenomorph/xeno = owner + if(xeno.stat == DEAD) // to prevent dead xenos from doing wacky interactions + return FALSE + if(xeno.m_intent == MOVE_INTENT_STALK && xeno.tier < 2) + return FALSE + return TRUE // Called when the action is clicked on. // For non-activable Xeno actions, this is used to diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm index e7251415b5fe..de53c8fb01b2 100644 --- a/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm @@ -61,10 +61,6 @@ /datum/action/xeno_action/activable/apply_salve/use_ability(atom/target_atom) var/mob/living/carbon/xenomorph/xeno = owner - - if(xeno.m_intent == MOVE_INTENT_STALK) - return FALSE - xeno.xeno_apply_salve(target_atom, health_transfer_amount, max_range, damage_taken_mod) return ..()