public override void ConfirmAttackPushResult(AttackResult attackResult, IEnumerable <int> availablePushDestinationIds, int attackingMonsterTypeId, int defendingMonsterTypeId, int actionNumber, int subActionNumber) { Vector3 battlePosition = new Vector3(BattleSmoke.transform.localPosition.x, BattleSmoke.transform.localPosition.y, BattleSmoke.transform.localPosition.z); if (availablePushDestinationIds.Any()) { AvailablePushDestinations = availablePushDestinationIds.Select(n => GameGraph.Nodes[n]); } if (attackResult == AttackResult.Push) { AttackResultTextPrefab.GetComponent <TextMesh>().text = "push"; AttackResultTextPrefab.gameObject.SetActive(true); AttackResultTextPrefab.transform.localPosition = battlePosition; AttackResultTextPrefab.LerpDestination = AttackResultTextPrefab.transform.localPosition + Vector3.up; BattleSmoke.SetActive(false); } else if (attackResult == AttackResult.CounterPush) { AttackResultTextPrefab.GetComponent <TextMesh>().text = "Counter push"; AttackResultTextPrefab.gameObject.SetActive(true); AttackResultTextPrefab.transform.localPosition = battlePosition; AttackResultTextPrefab.LerpDestination = AttackResultTextPrefab.transform.localPosition + Vector3.up; BattleSmoke.SetActive(false); } _actionNumber = actionNumber; _subActionNumber = subActionNumber; }
public override void ConfirmAttackKillResult(AttackResult attackResult, int attackingMonsterTypeId, int defendingMonsterTypeId, int actionNumber, int subActionNumber) { bool isFriendlyMonster = _actionNumber == 1 || _actionNumber == 2; Monster attacker = FriendlyMonsters.SingleOrDefault(m => m.MonsterTypeId == attackingMonsterTypeId) ?? EnemyMonsters.SingleOrDefault(m => m.MonsterTypeId == attackingMonsterTypeId); Monster defender = FriendlyMonsters.SingleOrDefault(m => m.MonsterTypeId == defendingMonsterTypeId) ?? EnemyMonsters.SingleOrDefault(m => m.MonsterTypeId == defendingMonsterTypeId); Vector3 battlePosition = new Vector3(BattleSmoke.transform.localPosition.x, BattleSmoke.transform.localPosition.y, BattleSmoke.transform.localPosition.z); if (attackResult == AttackResult.Kill) { AttackResultTextPrefab.GetComponent <TextMesh>().text = "KiLL"; AttackResultTextPrefab.gameObject.SetActive(true); AttackResultTextPrefab.transform.localPosition = battlePosition; AttackResultTextPrefab.LerpDestination = AttackResultTextPrefab.transform.localPosition + Vector3.up; ProcessKill(defender, !isFriendlyMonster); } else if (attackResult == AttackResult.CounterKill) { AttackResultTextPrefab.GetComponent <TextMesh>().text = "Counter KiLL"; AttackResultTextPrefab.gameObject.SetActive(true); AttackResultTextPrefab.transform.localPosition = battlePosition; AttackResultTextPrefab.LerpDestination = AttackResultTextPrefab.transform.localPosition + Vector3.up; ProcessKill(attacker, isFriendlyMonster); SelectedMonster = null; } _actionNumber = actionNumber; _subActionNumber = subActionNumber; }