public void Damage(int damage)
    {
        // Only damage the object if its dynamic
        if (_CanBeDamaged == true)
        {
            // Apply damage to health
            _Health -= damage;

            // Check if damaged
            if (_Health <= _DamagedHealth && _Health > 0)
            {
                // Set object to damaged
                _DamagedState = DamagedState.Damaged;
            }

            // Check if dead
            if (_Health <= 0)
            {
                // Clamp to 0
                _Health = 0;

                // Set object to destroyed
                _DamagedState = DamagedState.Destroyed;
            }
        }
    }
Beispiel #2
0
 virtual public void InitState()
 {
     {
         State state = new PlayerIdleState();
         state.Init(this);
         _stateMap[eStateType.IDLE] = state;
     }
     {
         State state = new PathfindingMoveState();
         state.Init(this);
         _stateMap[eStateType.MOVE] = state;
     }
     {
         State state = new AttackState();
         state.Init(this);
         _stateMap[eStateType.ATTACK] = state;
     }
     {
         State state = new DamagedState();
         state.Init(this);
         _stateMap[eStateType.DAMAGED] = state;
     }
     {
         State state = new DeadState();
         state.Init(this);
         _stateMap[eStateType.DEAD] = state;
     }
     _state = _stateMap[eStateType.IDLE];
 }
Beispiel #3
0
 private void Start()
 {
     damagedState = GetComponentInParent <Enemy1>().damagedState;
 }