public virtual void ConfirmSelectMonster(int selectedMonsterId, int actionNumber, int subActionNumber) { SelectedMonster = FriendlyMonsters.SingleOrDefault(m => m.MonsterTypeId == selectedMonsterId) ?? EnemyMonsters.Single(m => m.MonsterTypeId == selectedMonsterId); _actionNumber = actionNumber; _subActionNumber = subActionNumber; if (SelectedMonster != null && (_actionNumber == 1 || _actionNumber == 2)) { foreach (BoardSpace space in BoardSpaces.Values) { space.SendMessage("OnMonsterSelected", SelectedMonster.CurrentNode.Id); } } Client.SendStateAck(GetAdjustedActionNumber(), _subActionNumber); }
private void SelectMonster(int nodeId) { SelectedMonster = FriendlyMonsters.SingleOrDefault(m => m.CurrentNode.Id == nodeId); if (SelectedMonster != null) { Client.Send(CustomMessageTypes.SelectMonsterRequest, new SelectMonsterRequestMessage { ActionNumber = GetAdjustedActionNumber(), SubActionNumber = _subActionNumber, Message = SelectedMonster.Name, MessageTypeId = CustomMessageTypes.SelectMonsterRequest, SelectedMonsterTypeId = SelectedMonster.MonsterTypeId }); } }
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; }
public override void ConfirmSelectMonster(int selectedMonsterId, int actionNumber, int subActionNumber) { SelectedMonster = FriendlyMonsters.SingleOrDefault(m => m.MonsterTypeId == selectedMonsterId) ?? EnemyMonsters.SingleOrDefault(m => m.MonsterTypeId == selectedMonsterId); _actionNumber = actionNumber; _subActionNumber = subActionNumber; }