mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-25 22:12:58 +01:00
Various player greimorian fixes, gives greimorian queen an attack reach of two (#21166)
Most of these are self explanatory. Servants should be able to see in the dark. They should not speak TCB. The user should get feedback if a skill fails. The icon state shouldn't be set to resting if the simple mob AI will take back over (which it does), though I'm not a huge fan of the way I solved that one - should it be a more generic var like `should_not_sleep` on simple mobs? Then it would need a typecast as well. The first big change here is removing `environment_smash` from the `attack_generic` proc. As far as I can tell, this variable is almost entirely deprecated. I only saw one check relying on it, in `/obj/structure/closet/statue/attack_generic(var/mob/user, damage, attacktext, environment_smash)`, but when I tried to spawn one it was invisible, so I assume that is also something that is mostly deprecated. As such, I removed the variable from the function call, lining its arguments back up with what the function is expecting. Maybe I should've done named arguments here, but given that there's only that one function that expects it, I just removed it. The second big change is giving the Greimorian Queen reach on its melee attacks. I was mostly trying to fix the case where the queen can't attack a mob to its north, due to the mob being covered by the queen's icon. Attacking two tiles away looks fine when the queen is facing north, but facing south it looks not great. Directly East and West are usually okay, though it depends exactly which tile is being attacked. I did also duplicate a function, which I'm not a fan of. Perhaps `attack_can_reach` should be made more generic. Let me know the best place to do that, if so. I'm not completely sold on adding the reach in its current form: Aside from the top center 3 and the two furthest east and west, it reaches way too far without good visual feedback that it can/is doing so, especially the bottom ones and corners. https://github.com/user-attachments/assets/a2b95cee-fe2d-4bc6-bf43-2e5b6e2e8f86
This commit is contained in:
@@ -188,7 +188,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost, you won't be able to play this round for another [GLOB.config.respawn_delay] minutes! You can't change your mind so choose wisely!)", "Are you sure you want to ghost?", "Ghost", "Stay in body")
|
||||
if(response != "Ghost")
|
||||
return
|
||||
resting = 1
|
||||
if(!istype(usr, /mob/living/simple_animal/hostile/giant_spider/nurse/spider_queen))
|
||||
resting = 1
|
||||
var/turf/location = get_turf(src)
|
||||
message_admins("[key_name_admin(usr)] has ghosted. (<A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
|
||||
log_game("[key_name_admin(usr)] has ghosted.")
|
||||
|
||||
@@ -86,6 +86,7 @@
|
||||
speed = -2
|
||||
venom_type = /singleton/reagent/toxin/greimorian_eggs
|
||||
fed = 1
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_SOMEWHAT_INVISIBLE
|
||||
var/playable = TRUE
|
||||
sample_data = list("Genetic markers identified as being linked with stem cell differentiaton", "Cellular structures indicative of high offspring production", "Tissue sample contains high neural cell content")
|
||||
|
||||
@@ -165,6 +166,8 @@
|
||||
get_light_and_color(parent)
|
||||
add_language(LANGUAGE_GREIMORIAN)
|
||||
add_language(LANGUAGE_GREIMORIAN_HIVEMIND)
|
||||
remove_language(LANGUAGE_TCB)
|
||||
default_language = GLOB.all_languages[LANGUAGE_GREIMORIAN]
|
||||
|
||||
/mob/living/simple_animal/hostile/giant_spider/nurse/servant/Initialize()
|
||||
. = ..()
|
||||
@@ -418,6 +421,10 @@
|
||||
set desc = "Lay a clutch of eggs to make new spiderlings. This will cost one food point."
|
||||
set category = "Greimorian"
|
||||
|
||||
if(fed <= 0)
|
||||
to_chat(src, SPAN_WARNING("You do not have the nutrients to do this. Try cocooning a corpse!"))
|
||||
return
|
||||
|
||||
var/obj/effect/spider/eggcluster/E = locate() in get_turf(src)
|
||||
if(!E && fed > 0)
|
||||
src.visible_message("\The [src] begins to lay a cluster of eggs.")
|
||||
@@ -433,6 +440,9 @@
|
||||
set desc = "Lay a greimorian servant, which can be player-controlled. This will cost one food point."
|
||||
set category = "Greimorian"
|
||||
|
||||
if(fed <= 0)
|
||||
to_chat(src, SPAN_WARNING("You do not have the nutrients to do this. Try cocooning a corpse!"))
|
||||
return
|
||||
|
||||
var/obj/effect/spider/eggcluster/E = locate() in get_turf(src)
|
||||
if(!E && fed > 0)
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
health = 1000
|
||||
melee_damage_lower = 35
|
||||
melee_damage_upper = 40
|
||||
melee_reach = 2
|
||||
armor_penetration = 30
|
||||
resist_mod = 15 // LOL good luck pal
|
||||
heat_damage_per_tick = 20
|
||||
|
||||
@@ -118,6 +118,7 @@
|
||||
//LETTING SIMPLE ANIMALS ATTACK? WHAT COULD GO WRONG. Defaults to zero so Ian can still be cuddly
|
||||
var/melee_damage_lower = 0
|
||||
var/melee_damage_upper = 0
|
||||
var/melee_reach = 1
|
||||
var/armor_penetration = 0
|
||||
var/attack_flags = 0
|
||||
var/attacktext = "attacked"
|
||||
@@ -1121,6 +1122,16 @@
|
||||
visible_message(SPAN_NOTICE("\The [src] fades away!"))
|
||||
qdel(src)
|
||||
|
||||
//Taken from /obj/item/proc/attack_can_reach
|
||||
/mob/living/simple_animal/proc/attack_can_reach(var/atom/us, var/atom/them, var/range)
|
||||
if(us.Adjacent(them))
|
||||
return TRUE // Already adjacent.
|
||||
else if(range <= 1)
|
||||
return FALSE
|
||||
if(AStar(get_turf(us), get_turf(them), /turf/proc/AdjacentTurfsRanged, /turf/proc/Distance, max_nodes=25, max_node_depth=range))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
#undef BLOOD_NONE
|
||||
#undef BLOOD_LIGHT
|
||||
#undef BLOOD_MEDIUM
|
||||
|
||||
Reference in New Issue
Block a user