//GameObject[] tiles; //Tile currentTile; //public Vector2 gridCoord; protected void Init() { pos = new Vector2Int((int)transform.localPosition.x, (int)transform.localPosition.z); lastPos = pos; TempTurnManager.AddUnit(this); tileManager = GameObject.Find("Managers").GetComponent <TileManager>(); tileManager.AddUnit(this, pos); spriteFaceCamera = GetComponent <SpriteFaceCamera>(); // remainingMove = Energy; floatingText = Resources.Load("Prefabs/GUI/FloatingText") as GameObject; MEnergy = Energy; MStrength = Strength; MConstitution = Constitution; }
public bool CheckIfDead() //should enemy check this? { if (Energy < 1) { //GridManager.ResetOccupied(gridCoord); //EndTurn(); //Tile tile; //GridManager.GetTileAtCoord(gridCoord, out tile); //tile.Reset(); //gameObject.SetActive(false); tileManager.RemoveUnit(pos); TempTurnManager.RemoveUnit(this); return(true); } return(false); }
// Update is called once per frame void Update() { if (destroy) { RemoveUnit(); return; } if (!turn) { return; } switch (state) { case UnitState.SelectingDestination: //animator.speed = 1; //cursor.state = CursorState.SelectingUnit; break; case UnitState.Moving: //animator.speed = 2; cursor.state = CursorState.Inactive; Move(); break; case UnitState.AwaitingChoice: //animator.speed = 1; cursor.state = CursorState.AwaitingChoice; break; case UnitState.SelectingTarget: //animator.speed = 1; if (cursor.state == CursorState.AwaitingChoice) { TurnToFace(combatTarget.pos); } break; case UnitState.Attacking: switch (currentAttack) { case AttackType.Cripple: combatTarget.TakeDamage(currentAttack, Strength); break; case AttackType.Impair: combatTarget.TakeDamage(currentAttack, Energy); break; case AttackType.Weaken: combatTarget.TakeDamage(currentAttack, Energy); break; } //TODO: add delay state = UnitState.EndingPhase; break; case UnitState.EndingPhase: //animator.speed = 1; cursor.ResetCursor(); combatTarget = null; state = UnitState.SelectingDestination; UpdatePosition(); done = false; TempTurnManager.EndPhase(); break; } }
public void StartMatch() { tutorialCanvas.SetActive(false); gameCanvas.SetActive(true); TempTurnManager.StartTurn(); }
// Update is called once per frame void Update() { if (destroy) { RemoveUnit(); return; } if (!turn) { return; } switch (state) { case UnitState.SelectingDestination: //animator.speed = 1; if (!done) { StartCoroutine(SelectingDestinationCoroutine()); } break; case UnitState.Moving: //animator.speed = 2; Move(); break; case UnitState.AwaitingChoice: //animator.speed = 1; if (!done) { StartCoroutine(AwaitingChoiceCoroutine()); } break; case UnitState.SelectingTarget: //animator.speed = 1; //combatTarget = GetCombatTarget(); if (combatTarget != null) { TurnToFace(combatTarget.pos); currentAttack = Utilities.Choose <AttackType>(attackTypes); state = UnitState.Attacking; } else { state = UnitState.EndingPhase; } break; case UnitState.Attacking: if (combatTarget != null) { switch (currentAttack) { case AttackType.Cripple: combatTarget.TakeDamage(currentAttack, Strength); break; case AttackType.Impair: combatTarget.TakeDamage(currentAttack, Energy); break; case AttackType.Weaken: combatTarget.TakeDamage(currentAttack, Energy); break; } combatTarget = null; } if (!done) { StartCoroutine(AttackingCoroutine()); } break; case UnitState.EndingPhase: //animator.speed = 1; combatTarget = null; state = UnitState.SelectingDestination; UpdatePosition(); done = false; TempTurnManager.EndPhase(); break; } }
public void RemoveUnit() { tileManager.RemoveUnit(pos); TempTurnManager.RemoveUnit(this); }