void CastFireball(ServerVRHand hand) { hand.Fireball = ServerManager.instance.SpawnFireball(ID); hand.Fireball.Size = 0.0f; hand.Fireball.transform.position = hand.DesiredFireballPosition; hand.CurrentSpell = Spell.Fireball; }
void ControlFireball(ServerVRHand hand) { // Set target position hand.Fireball.FollowTarget(hand.DesiredFireballPosition); // Set target size ControlFireballSize(hand); }
void HandleFireballSpell(ServerVRHand hand) { if (hand.CurrentSpell == Spell.None) { if (hand.HandDataPacket.HandState == HandState.Fire) { if (hand.CurrentGesture == HandGesture.Pinch) { if (hand.HandDataPacket.StatePower >= 1.0f) { CastFireball(hand); } } } } if (hand.CurrentSpell == Spell.Fireball) { if (hand.HandDataPacket.TargetHandState != HandState.Fire) { ReleaseFireball(hand); } else { ControlFireball(hand); } } }
void ControlFireballSize(ServerVRHand hand) { float targetSize = Fireball.FireballMaxSize; if (hand.HandDataPacket.HandState == HandState.Fire) { hand.Fireball.SetSize(targetSize); } }
void ReleaseFireball(ServerVRHand hand) { if (hand.Fireball.Size <= Fireball.FireballMinSize) { hand.Fireball.Despawn(false); } else { hand.Fireball.Create(); } hand.CurrentSpell = Spell.None; }