Beispiel #1
0
 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;
 }
Beispiel #3
0
 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();
        }
    }
Beispiel #6
0
 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();
    }
Beispiel #8
0
    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());
    }
Beispiel #9
0
 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);
         }
     }
 }
Beispiel #10
0
 public abstract void ActivateEvent(I_Unit _UnitThatWalkedOnTile);
Beispiel #11
0
 public void RemoveUnit(I_Unit _Unit)
 {
     m_UnitsInRoom.Remove(_Unit);
 }
Beispiel #12
0
 public void SetUnit(I_Unit _Unit)
 {
     m_Unit = _Unit;
 }
Beispiel #13
0
    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());
    }