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; }
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; }
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; } } }
public List <EntityBossRune> GetRunesByState(RuneState state) { return(_runes[(int)state]); }