Exemple #1
0
        public void SetState(RuneState newState)
        {
            switch (newState)
            {
            case RuneState.OFF:
                Deactivate();
                break;

            case RuneState.FLYING:
                Activate();
                break;

            case RuneState.CHARGING:
                _chargeLevel = 0f;
                _myPropeller.StartPullForward();
                if (_isPlayerOwned)
                {
                    Deactivate();
                }
                break;

            case RuneState.ATTACK:
                Deactivate();
                break;

            default:
                return;
            }

            _state = newState;
        }
Exemple #2
0
        public EntityBossRune(EntityBoss boss, int index) : base(1f, 3f, 50f)
        {
            _boss           = boss;
            _index          = index;
            _state          = RuneState.Hold;
            _targetPosition = Vector3.zero;
            _onControl      = true;
            _offsetPosition = new Vector3(RXRandom.Range(-3f, 3f), 0f, RXRandom.Range(-3f, 3f));

            _entityParts.Add(new EntityPart(this, "bossrune"));
            _entityParts.Add(new EntityPart(this, string.Concat("bossrunemark", index + 1)));
            _entityParts[1].sortZOffset = 0.1f;
        }
Exemple #3
0
    public void SetRuneState(EntityBossRune rune, RuneState newState)
    {
        if (rune._state != newState)
        {
            GetRunesByState(rune._state).Remove(rune);
            rune._state = newState;

            GetRunesByState(newState).Add(rune);
            rune._onControl = newState != RuneState.Drop;

            if (newState == RuneState.Drop)
            {
                rune.velocity += Vector3.down * 64f;
            }
        }
    }
Exemple #4
0
 public List <EntityBossRune> GetRunesByState(RuneState state)
 {
     return(_runes[(int)state]);
 }