2.5 update
This commit is contained in:
@@ -53,29 +53,29 @@ namespace BumpCombat.Tests
|
||||
[UnityTest]
|
||||
public IEnumerator ValidHitPopups_MatchNormalSideBackAndArtifactContracts()
|
||||
{
|
||||
GameObject target = world.Enemies[0].gameObject;
|
||||
GameObject target = SpawnPopupTarget().gameObject;
|
||||
RaiseHit(target, HitSide.Front, 31.9f);
|
||||
AssertPopup(0, "31", Color.white);
|
||||
|
||||
world.ResetRun();
|
||||
target = world.Enemies[0].gameObject;
|
||||
target = SpawnPopupTarget().gameObject;
|
||||
RaiseHit(target, HitSide.Side, 22.8f);
|
||||
AssertPopup(0, "SIDE ×1.2 22", new Color(0.65f, 1f, 0.3f));
|
||||
|
||||
world.ResetRun();
|
||||
target = world.Enemies[0].gameObject;
|
||||
target = SpawnPopupTarget().gameObject;
|
||||
RaiseHit(target, HitSide.Back, 9.8f);
|
||||
AssertPopup(0, "BACK ×1.5 9", new Color(1f, 0.75f, 0.2f));
|
||||
|
||||
world.ResetRun();
|
||||
target = world.Enemies[0].gameObject;
|
||||
target = SpawnPopupTarget().gameObject;
|
||||
CombatEvents.RaiseValidHit(new CombatHitResult(
|
||||
world.Player.gameObject, target, true, HitSide.Front, 13f,
|
||||
Vector2.right, 0f, Vector2.zero, launchSucceeded: true));
|
||||
AssertPopup(0, "LAUNCH 13", new Color(0.95f, 0.55f, 1f));
|
||||
|
||||
world.ResetRun();
|
||||
target = world.Enemies[0].gameObject;
|
||||
target = SpawnPopupTarget().gameObject;
|
||||
ActiveArtifactDefinition dash = world.Loadout.FindArtifact(ActiveArtifactEffect.Dash);
|
||||
Assert.That(dash, Is.Not.Null);
|
||||
CombatEvents.RaiseValidHit(new CombatHitResult(
|
||||
@@ -86,7 +86,7 @@ namespace BumpCombat.Tests
|
||||
ActiveArtifactDefinition.GetArtifactPaletteColor(dash.ArtifactColor));
|
||||
|
||||
world.ResetRun();
|
||||
target = world.Enemies[0].gameObject;
|
||||
target = SpawnPopupTarget().gameObject;
|
||||
ActiveArtifactDefinition cyclone = world.Loadout.FindArtifact(ActiveArtifactEffect.Cyclone);
|
||||
Assert.That(cyclone, Is.Not.Null);
|
||||
CombatEvents.RaiseValidHit(CombatHitResult.ForArtifactContact(
|
||||
@@ -100,7 +100,12 @@ namespace BumpCombat.Tests
|
||||
[UnityTest]
|
||||
public IEnumerator PopupEvents_AreWorldScopedResettableAndRemovedOnDisable()
|
||||
{
|
||||
GameObject worldTarget = world.Enemies[0].gameObject;
|
||||
Defense25DEnemy unspawnedEnemy = world.Enemies[0];
|
||||
Assert.That(unspawnedEnemy.IsAvailable, Is.False);
|
||||
Assert.That(unspawnedEnemy.gameObject.activeInHierarchy, Is.False);
|
||||
Assert.That(unspawnedEnemy.gameObject.GetComponentInParent<Defense25DEnemy>(), Is.Null,
|
||||
"The default parent lookup excludes the inactive, unsupplied enemy fixture.");
|
||||
GameObject worldTarget = unspawnedEnemy.gameObject;
|
||||
GameObject unrelatedTarget = new("Unrelated popup target");
|
||||
GameObject unrelatedAttacker = new("Unrelated popup attacker");
|
||||
try
|
||||
@@ -113,10 +118,18 @@ namespace BumpCombat.Tests
|
||||
Assert.That(world.ActiveCombatDamagePopupCount, Is.Zero,
|
||||
"Hits from another attacker against this world's enemy are ignored.");
|
||||
|
||||
Assert.That(world.ActiveCombatDamagePopupCount, Is.Zero,
|
||||
"An event targeting an inactive, unsupplied enemy cannot create a popup.");
|
||||
Defense25DEnemy activeEnemy = SpawnPopupTarget();
|
||||
worldTarget = activeEnemy.gameObject;
|
||||
Assert.That(worldTarget.GetComponentInParent<Defense25DEnemy>(), Is.SameAs(activeEnemy));
|
||||
RaiseHit(worldTarget, HitSide.Front, 10f);
|
||||
Assert.That(world.ActiveCombatDamagePopupCount, Is.EqualTo(1));
|
||||
Assert.That(world.ActiveCombatDamagePopupCount, Is.EqualTo(1),
|
||||
"A valid hit against an active, supplied enemy must be received by this world's popup handler.");
|
||||
world.ResetRun();
|
||||
Assert.That(world.ActiveCombatDamagePopupCount, Is.Zero);
|
||||
activeEnemy = SpawnPopupTarget();
|
||||
worldTarget = activeEnemy.gameObject;
|
||||
|
||||
world.enabled = false;
|
||||
RaiseHit(worldTarget, HitSide.Front, 10f);
|
||||
@@ -125,7 +138,7 @@ namespace BumpCombat.Tests
|
||||
world.enabled = true;
|
||||
Assert.That(world.ActiveCombatDamagePopupCount, Is.Zero,
|
||||
"A disabled comparison must reject event and direct popup additions.");
|
||||
RaiseHit(world.Enemies[0].gameObject, HitSide.Front, 10f);
|
||||
RaiseHit(worldTarget, HitSide.Front, 10f);
|
||||
Assert.That(world.ActiveCombatDamagePopupCount, Is.EqualTo(1),
|
||||
"Re-enabling the comparison must restore one event subscription.");
|
||||
}
|
||||
@@ -172,6 +185,15 @@ namespace BumpCombat.Tests
|
||||
0f, Vector2.zero, isOffsetHit: false));
|
||||
}
|
||||
|
||||
private Defense25DEnemy SpawnPopupTarget()
|
||||
{
|
||||
Defense25DEnemy enemy = world.SpawnNextEnemy();
|
||||
Assert.That(enemy, Is.Not.Null, "The popup fixture needs a supplied enemy from the world factory.");
|
||||
Assert.That(enemy.IsAvailable, Is.True);
|
||||
Assert.That(enemy.gameObject.GetComponentInParent<Defense25DEnemy>(), Is.SameAs(enemy));
|
||||
return enemy;
|
||||
}
|
||||
|
||||
private void AssertPopup(int index, string text, Color color)
|
||||
{
|
||||
FieldInfo popupArrayField = typeof(Defense25DComparison).GetField(
|
||||
|
||||
Reference in New Issue
Block a user