public static void Execute(List <ServerPlayerModel> eventReceivers, CombatActionsCollectionModel combatActionsCollectionModel)
        {
            CombatTurnEvent combatTurnEvent = new CombatTurnEvent(combatActionsCollectionModel);

            Logging.Log.Info("-- SENDING CombatTurnEvent to clients: \n" + combatActionsCollectionModel.ToString());

            for (int i = 0; i < eventReceivers.Count; i++)
            {
                if (eventReceivers[i].ClientConnection.Connected)
                {
                    eventReceivers[i].ClientConnection.SendEvent(combatTurnEvent.EventData, combatTurnEvent.SendParameters);
                }
            }
        }
Exemple #2
0
        public CombatTurnEvent(CombatActionsCollectionModel combatActionsCollectionModel)
        {
            object[] combatActionsCollectionAsObjArray = combatActionsCollectionModel.ToObjectArray();

            Parameters = new Dictionary <byte, object>();
            Parameters.Add(0, combatActionsCollectionAsObjArray);

            EventData            = new EventData(EVENT_CODE);
            EventData.Parameters = Parameters;

            SendParameters            = new SendParameters();
            SendParameters.ChannelId  = 0;
            SendParameters.Encrypted  = false;
            SendParameters.Unreliable = false;
        }
Exemple #3
0
        private void onCombatTurnCompleted(CombatActionsCollectionModel combatActionsCollectionModel)
        {
            SendCombatTurnEventsSCMD.Execute(AllPlayersinZone, combatActionsCollectionModel);

            // Determine if zone is completed (All NPCs dead).
            bool zoneCompleted = true;

            for (int i = 0; i < ZoneModel.EnemyNpcModels.Length; i++)
            {
                if (ZoneModel.EnemyNpcModels[i].CombatantModel.IsAlive())
                {
                    zoneCompleted = false;
                    break;
                }
            }
            if (zoneCompleted)
            {
                Log.InfoFooter("Zone " + ZoneModel.ID + " Completed.");
                combatController.StopAndClear();
                ZoneModel.IsCompleted = true;
                new GrantZoneCompletionRewardsCMD(AllPlayersinZone, currentZoneNPCs, ZoneModel.IsFinalZone, onZoneRewardsGranted).Execute();
                return;
            }

            // Determine if zone was failed (All players dead).
            bool zoneFailed = true;

            for (int j = 0; j < AllPlayersinZone.Count; j++)
            {
                if (AllPlayersinZone[j].CombatantModel.IsAlive())
                {
                    zoneFailed = false;
                    break;
                }
            }
            if (zoneFailed)
            {
                Log.InfoFooter("Zone " + ZoneModel.ID + " Failed.");
                combatController.StopAndClear();
                handleZoneFailure();
                return;
            }
        }