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; } } }
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]; }
private void Start() { damagedState = GetComponentInParent <Enemy1>().damagedState; }