Exemplo n.º 1
0
        public void UseTargetedAbility(int actorId, AbilityType abilityId, int targetId, int collisionId)
        {
            // Validate that the ability can be used by the actor
            if (gamestate.ValidateTargetedAbilityUse(actorId, abilityId, targetId))
            {
                // Check if the ability is instantly applied and apply it if it is
                if (!AbilityInfo.InfoArray [(int)abilityId].RequiresCollision)
                {
                    Log.V("Instantly activating ability effects " + abilityId + " used by " + actorId + " on " + targetId);

                    gamestate.TriggerAbility(abilityId, targetId, actorId);
                }


                // Queue the ability use to be sent to all clients
                gamestate.OutgoingReliableElements.Enqueue(new TargetedAbilityElement(actorId, abilityId, targetId, gamestate.MakeCollisionId()));
            }
            else
            {
                Log.V("Invalid ability use " + abilityId + " by " + actorId + " on " + targetId);
            }
        }
Exemplo n.º 2
0
 private void SignalCollision(CollisionItem toSignal)
 {
     Log.V("Signal collision " + toSignal.abilityId + ", " + toSignal.actorHitId + ", " + toSignal.actorCastId);
     toSignal.isSignalSent = true;
     gameState.TriggerAbility(toSignal.abilityId, toSignal.actorHitId, toSignal.actorCastId);
 }