public void OnUnitEnter(I_Unit _Unit) { for (int i = 0; i < m_Events.Count; i++) { m_Events[i].ActivateEvent(_Unit); } }
public void OnUnitHealthChange(I_Unit _Unit) { m_OpaqueLifebar.maxValue = _Unit.MaxHealth; m_TransparentLifebar.maxValue = _Unit.MaxHealth; m_TargetUnitLife = _Unit.Health; m_LifeText.text = _Unit.Health + " / " + _Unit.MaxHealth; }
public void AddUnit(I_Unit _Unit) { if (!m_UnitsInRoom.Contains(_Unit)) { m_UnitsInRoom.Add(_Unit); } }
public override void OnTileEnter(I_Tile _Tile) { I_Unit unit = _Tile.GetUnit(); if (unit != null && unit is UnitEnemy) { unit.Kill(); Kill(); } }
protected override void Update() { base.Update(); I_Unit unit = GetTile().GetUnit(); if (unit != null && unit is UnitEnemy) { unit.Kill(); Kill(); } }
public override void ActivateEvent(I_Unit _UnitThatWalkedOnTile) { if (_UnitThatWalkedOnTile is UnitPlayer) { UnitPlayer player = _UnitThatWalkedOnTile as UnitPlayer; m_Player = player.GetComponent <ControllerPlayer>(); m_Player.SetInputMode(new InputMode_InMenu()); List <KeyValuePair <string, OnUserInterfaceButtonPressed> > menuElements = new List <KeyValuePair <string, OnUserInterfaceButtonPressed> > { new KeyValuePair <string, OnUserInterfaceButtonPressed>("Proceed", GoToNextFloor), new KeyValuePair <string, OnUserInterfaceButtonPressed>("Exit", ExitMenu) }; UserInterface.DisplayMenu(menuElements); } }
public void DisplayUnitLife(I_Unit _Unit) { if (m_Unit != null) { m_Unit.UnregisterHealthObserver(this); } m_Unit = _Unit; m_Unit.RegisterHealthObserver(this); m_OpaqueLifebar.maxValue = m_Unit.MaxHealth; m_TransparentLifebar.maxValue = m_Unit.MaxHealth; m_CurrentLifeDisplayed = m_Unit.Health; m_LastUnitLife = m_Unit.Health; m_TargetUnitLife = m_Unit.Health; m_LifeText.text = _Unit.Health + " / " + _Unit.MaxHealth; UpdateLifeBar(); }
public void UpdateInputMode(UnitPlayer _Player, ControllerPlayer _Controller) { m_Direction = E_Direction.None; if (Input.GetKey(KeyCode.Z)) { m_Direction = E_Direction.North; } if (Input.GetKey(KeyCode.S)) { m_Direction = E_Direction.South; } if (Input.GetKey(KeyCode.D)) { m_Direction = E_Direction.East; } if (Input.GetKey(KeyCode.Q)) { m_Direction = E_Direction.West; } if (_Player.CanMove()) { if (m_Direction != E_Direction.None) { I_Unit unitOnTile = _Player.GetTile().GetNeighbour(m_Direction).GetUnit(); if (_Player.CanMoveTo(m_Direction)) { _Player.Move(m_Direction); TurnOrder.StartAllUnitsTurn(); } else if (unitOnTile is UnitEnemy) { _Player.SetAttackingEnemy(unitOnTile as UnitEnemy); } else { _Player.TurnToward(m_Direction); } } } _Controller.SetAnimatorBool("IsMoving", _Player.IsMoving()); }
public override void ActivateEvent(I_Unit _UnitThatWalkedOnTile) { if (_UnitThatWalkedOnTile is UnitPlayer) { UnitPlayer player = _UnitThatWalkedOnTile as UnitPlayer; m_Player = player.GetComponent <ControllerPlayer>(); if (Application.isMobilePlatform) { InputMode_Shake inputMode = new InputMode_Shake(); inputMode.RegisterActivable(m_Activable); m_Player.SetInputMode(inputMode); } else { InputMode_ShakeDebug inputMode = new InputMode_ShakeDebug(); inputMode.RegisterActivable(m_Activable); m_Player.SetInputMode(inputMode); } } }
public abstract void ActivateEvent(I_Unit _UnitThatWalkedOnTile);
public void RemoveUnit(I_Unit _Unit) { m_UnitsInRoom.Remove(_Unit); }
public void SetUnit(I_Unit _Unit) { m_Unit = _Unit; }
public void UpdateInputMode(UnitPlayer _Player, ControllerPlayer _Controller) { if (Input.touchCount >= 1) { Touch touch = Input.touches[0]; if (!m_HasStartedSwipe) { m_HasStartedSwipe = true; m_SwipeStartPosition = touch.position; } UserInterface.DisplayMovementLine(m_SwipeStartPosition, touch.position); if (touch.phase == TouchPhase.Canceled) { m_HasStartedSwipe = false; UserInterface.HideMovementLine(); } else if (touch.phase == TouchPhase.Ended) { Vector2 swipeDirection = touch.position - m_SwipeStartPosition; if (swipeDirection.sqrMagnitude > 100) { if (Mathf.Abs(swipeDirection.x) > Mathf.Abs(swipeDirection.y)) { if (swipeDirection.x > 0) { m_DirectionBuffer = E_Direction.East; } else { m_DirectionBuffer = E_Direction.West; } } else { if (swipeDirection.y > 0) { m_DirectionBuffer = E_Direction.North; } else { m_DirectionBuffer = E_Direction.South; } } } m_HasStartedSwipe = false; UserInterface.HideMovementLine(); } } if (_Player.CanMove()) { if (m_DirectionBuffer != E_Direction.None && _Player.CanMoveTo(m_DirectionBuffer)) { m_MovingDirection = m_DirectionBuffer; m_DirectionBuffer = E_Direction.None; } if (m_MovingDirection != E_Direction.None) { I_Unit unitOnTile = _Player.GetTile().GetNeighbour(m_MovingDirection).GetUnit(); if (_Player.CanMoveTo(m_MovingDirection)) { _Player.Move(m_MovingDirection); TurnOrder.StartAllUnitsTurn(); } else if (unitOnTile is UnitEnemy) { _Player.SetAttackingEnemy(unitOnTile as UnitEnemy); } else { m_MovingDirection = E_Direction.None; } } } _Controller.SetAnimatorBool("IsMoving", _Player.IsMoving()); }