Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OneStar mobs small changes #8550

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

Deal5
Copy link
Contributor

@Deal5 Deal5 commented Feb 3, 2025

About The Pull Request

One Star faction:
Boss - Shotgun pattern doesnt aim at human directly, but instead fires in front of itself. Minigun behavior fixes. Addition of sounds for bot spawn action.
Stalker mk1 - became agile, small burst firing drone. Buffed HP, tested if its enough or too big. Walking sounds.
Stalker mk2 - big hp boy, slow, suppressing fire.
Engineer drone - cowardly, if you approach him it will stop shooting and will start running (or rather crawling) away, but will pursue if you are the one running away, yet will keep distance.
Custodial drone - shocks people, dealing agony damage, though is not very strong, but is very fast.

Why It's Good For The Game

Stalker not die 1 bullet = good
Enemy do unique stuff = good
Sounds = good

Testing

Tested Stalker's HPs with Wintermute and various melees. Tested Boss and other OS faction mobs. Haven't encountered bugs at the moment of merge.

Changelog

🆑
balance: Rebalanced One Star Stalkers.
fix: Fixed One Star boss attack patterns to be less clunky.
soundadd: Added some sounds to One Star mobs

/:cl:

Copy link
Member

@SirRichardFrancis SirRichardFrancis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If already_shooting var only exists inside a single proc, then just move it there as /static/.

step_towards(A, target_location)
step_towards(B, target_location)
spawn(160 MILLISECONDS)
spawn(1400 MILLISECONDS)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
spawn(1400 MILLISECONDS)
spawn(14 SECONDS)

@@ -557,7 +472,7 @@ Effects demand parent code, so ..()
i--
shoot_minigun(A)
shoot_minigun(B)
sleep(500 MILLISECONDS)
sleep(100 MILLISECONDS)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
sleep(100 MILLISECONDS)
sleep(1 SECOND)

@@ -600,6 +515,7 @@ Effects demand parent code, so ..()
sparks.set_up(3, 0, get_turf(newmob.loc))
sparks.start()
mobs_to_spawn--
playsound(src.loc, 'sound/effects/EMPulse.ogg', 50, 1)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
playsound(src.loc, 'sound/effects/EMPulse.ogg', 50, 1)
playsound(loc, 'sound/effects/EMPulse.ogg', 50, 1)

Comment on lines +110 to +124
/mob/living/simple_animal/hostile/onestar_custodian/engineer/Life()
if(!stasis && !AI_inactive)
if(!stat)
switch(stance)
if(HOSTILE_STANCE_IDLE)
target_mob = FindTarget()

if(HOSTILE_STANCE_ATTACK)
if(destroy_surroundings)
DestroySurroundings()
MoveToTarget()
if(HOSTILE_STANCE_ATTACKING)
if(destroy_surroundings)
DestroySurroundings()
MoveToTarget()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lack of parent call can and will cause issues.
SEND_SIGNAL_OLD(src, COMSIG_MOB_LIFE), handle_stuff() procs, and health checks are all missing.

Comment on lines +126 to +131
/mob/living/simple_animal/hostile/onestar_custodian/engineer/MoveToTarget()
if(!target_mob || SA_attackable(target_mob))
stance = HOSTILE_STANCE_IDLE
if(target_mob in ListTargets(10))
OpenFire(target_mob)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/mob/living/simple_animal/hostile/onestar_custodian/engineer/MoveToTarget()
if(!target_mob || SA_attackable(target_mob))
stance = HOSTILE_STANCE_IDLE
if(target_mob in ListTargets(10))
OpenFire(target_mob)

Literally identical to the proc it overrides.

Copy link
Contributor Author

@Deal5 Deal5 Feb 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It overrides the parent proc:

/mob/living/simple_animal/hostile/proc/MoveToTarget()

stop_automated_movement = 1
if(!target_mob || SA_attackable(target_mob))
	stance = HOSTILE_STANCE_IDLE
if(target_mob in ListTargets(10))
	if(ranged)
		if(get_dist(src, target_mob) <= 6 && !istype(src, /mob/living/simple_animal/hostile/megafauna))
			OpenFire(target_mob)
		else
			set_glide_size(DELAY2GLIDESIZE(move_to_delay))
			walk_to(src, target_mob, 1, move_to_delay)
		if(ranged && istype(src, /mob/living/simple_animal/hostile/megafauna))
			var/mob/living/simple_animal/hostile/megafauna/megafauna = src
			sleep(rand(megafauna.megafauna_min_cooldown,megafauna.megafauna_max_cooldown))
			if(istype(src, /mob/living/simple_animal/hostile/megafauna/one_star))
				if(prob(rand(15,25)))
					stance = HOSTILE_STANCE_ATTACKING
					set_glide_size(DELAY2GLIDESIZE(move_to_delay))
					walk_to(src, target_mob, 1, move_to_delay)
				else
					OpenFire(target_mob)
			else
				if(prob(45))
					stance = HOSTILE_STANCE_ATTACKING
					set_glide_size(DELAY2GLIDESIZE(move_to_delay))
					walk_to(src, target_mob, 1, move_to_delay)
				else
					OpenFire(target_mob)
	else
		stance = HOSTILE_STANCE_ATTACKING
		set_glide_size(DELAY2GLIDESIZE(move_to_delay))
		walk_to(src, target_mob, 1, move_to_delay)
return 0`

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, clearly I've been looking at /mob/living/simple_animal/hostile/megafauna/one_star/MoveToTarget() at the time instead of /mob/living/simple_animal/hostile/proc/MoveToTarget().

Co-authored-by: SirRichardFrancis <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants