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); } } }
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; }
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; } }