示例#1
0
 private void OnWebRequestFailure(object sender, GameEventArgs e)
 {
     Log.Error("OnWebRequestFailure :" + e.ToString());
 }
示例#2
0
 private void OnShowEntityFailure(object sender, GameEventArgs e)
 {
     Log.Error("OnShowEntityFailure :" + e.ToString());
 }
示例#3
0
 private void OnOpenUIFormFailure(object sender, GameEventArgs e)
 {
     Log.Error("OnOpenUIFormFailure :" + e.ToString());
 }
示例#4
0
        /// <summary>
        /// Fires an event.
        /// </summary>
        /// <param name="eventType">Type of event.</param>
        /// <param name="eventArgs">The event arguments.</param>
        /// <param name="sendOnNetwork">Should this event be sent to the other players?</param>
        private void Fire(EventType eventType, GameEventArgs eventArgs, bool sendOnNetwork)
        {
            #if DEBUG
            System.Diagnostics.Debug.WriteLine("[{0}]: {1} - {2}", eventArgs.SenderId, eventType.ToString(), eventArgs.ToString());
            #endif

            // If I am the player who sent this message (aka it did not come through the network)
            // and the event needs responses, then prepare for collecting responses.
            if (eventArgs.SenderId == Player.Instance.Id && eventArgs.NeedResponse)
            {
                #if DEBUG
                System.Diagnostics.Debug.WriteLine("Awaiting responses from other players");
                #endif

                responses[eventArgs.EventId] = 0;
                awaitingResponses = true;
            }

            // Fire the actual event.
            switch (eventType)
            {
                case EventType.AcceptPlayer:
                    if (AcceptPlayerEvent != null) AcceptPlayerEvent(this, (PlayerEventArgs)eventArgs);
                    break;
                case EventType.PlayerJoined:
                    if (PlayerJoinedEvent != null) PlayerJoinedEvent(this, (PlayerJoinedEventArgs)eventArgs);
                    break;
                case EventType.PlayersInGame:
                    if (PlayersInGameEvent != null) PlayersInGameEvent(this, (PlayersInGameEventArgs)eventArgs);
                    break;
                case EventType.RequestOverlord:
                    if (RequestOverlordEvent != null) RequestOverlordEvent(this, eventArgs);
                    break;
                case EventType.OverlordIs:
                    if (OverlordIsEvent != null) OverlordIsEvent(this, (OverlordIsEventArgs)eventArgs);
                    break;
                case EventType.Ready:
                    if (ReadyEvent != null) ReadyEvent(this, eventArgs);
                    break;
                case EventType.AssignHero:
                    if (AssignHeroEvent != null) AssignHeroEvent(this, (AssignHeroEventArgs)eventArgs);
                    break;
                case EventType.GiveHeroCards:
                    if (GiveHeroCardsEvent != null) GiveHeroCardsEvent(this, (GiveHeroCardsEventArgs)eventArgs);
                    break;
                case EventType.TradeHeroCard:
                    if (TradeHeroCardEvent != null) TradeHeroCardEvent(this, (TradeHeroCardEventArgs)eventArgs);
                    break;
                case EventType.AcceptHeroCard:
                    if (AcceptHeroCardsEvent != null) AcceptHeroCardsEvent(this, eventArgs);
                    break;
                case EventType.BeginGame:
                    if (BeginGameEvent != null) BeginGameEvent(this, eventArgs);
                    break;
                case EventType.NewRound:
                    if (NewRoundEvent != null) NewRoundEvent(this, eventArgs);
                    break;
                case EventType.NoAction:
                    if (NoActionEvent != null) NoActionEvent(this, eventArgs);
                    AddResponse();
                    break;
                case EventType.Wait:
                    if (WaitEvent != null) WaitEvent(this, eventArgs);
                    awaitingResponses = false;
                    break;
                case EventType.ChatMessage:
                    if (ChatMessageEvent != null) ChatMessageEvent(this, (ChatMessageEventArgs)eventArgs);
                    break;
                case EventType.RequestBuyEquipment:
                    if (RequestBuyEquipmentEvent != null) RequestBuyEquipmentEvent(this, (RequestBuyEquipmentEventArgs)eventArgs);
                    break;
                case EventType.GiveEquipment:
                    if (GiveEquipmentEvent != null) GiveEquipmentEvent(this, (GiveEquipmentEventArgs)eventArgs);
                    break;
                case EventType.DenyBuy:
                    if (DenyBuyEvent != null) DenyBuyEvent(this, (PlayerEventArgs)eventArgs);
                    break;
                case EventType.FinishedBuy:
                    if (FinishedBuyEvent != null) FinishedBuyEvent(this, eventArgs);
                    break;
                case EventType.GiveConquestTokens:
                    if (GiveConquestTokensEvent != null) GiveConquestTokensEvent(this, (TokenEventArgs)eventArgs);
                    break;
                case EventType.RemoveConquestTokens:
                    if (RemoveConquestTokensEvent != null) RemoveConquestTokensEvent(this, (TokenEventArgs)eventArgs);
                    break;
                case EventType.GiveCoins:
                    if (GiveCoinsEvent != null) GiveCoinsEvent(this, (GiveCoinsEventArgs)eventArgs);
                    break;
                case EventType.GiveOverlordCards:
                    if (GiveOverlordCardsEvent != null) GiveOverlordCardsEvent(this, (GiveOverlordCardsEventArgs)eventArgs);
                    break;
                case EventType.RemoveOverlordCard:
                    if (RemoveOverlordCardEvent != null) RemoveOverlordCardEvent(this, (OverlordCardEventArgs)eventArgs);
                    break;
                case EventType.GiveThreatTokens:
                    if (GiveThreatTokensEvent != null) GiveThreatTokensEvent(this, (TokenEventArgs)eventArgs);
                    break;
                case EventType.RemoveThreatTokens:
                    if (RemoveThreatTokensEvent != null) RemoveThreatTokensEvent(this, (TokenEventArgs)eventArgs);
                    break;
                case EventType.GiveTreasure:
                    if (GiveTreasureEvent != null) GiveTreasureEvent(this, (TreasureEventArgs)eventArgs);
                    break;
                case EventType.StartPlacement:
                    if (StartPlacementEvent != null) StartPlacementEvent(this, eventArgs);
                    break;
                case EventType.RequestPlacement:
                    if (RequestPlacementEvent != null) RequestPlacementEvent(this, (CoordinatesEventArgs)eventArgs);
                    break;
                case EventType.PlaceHero:
                    if (PlaceHeroEvent != null) PlaceHeroEvent(this, (PlaceHeroEventArgs)eventArgs);
                    break;
                case EventType.DenyPlacement:
                    if (DenyPlacementEvent != null) DenyPlacementEvent(this, (PlayerEventArgs)eventArgs);
                    break;
                case EventType.RequestTurn:
                    if (RequestTurnEvent != null) RequestTurnEvent(this, eventArgs);
                    break;
                case EventType.TurnChanged:
                    if (TurnChangedEvent != null) TurnChangedEvent(this, (PlayerEventArgs)eventArgs);
                    break;
                case EventType.DenyTurnRequest:
                    if (DenyTurnRequestEvent != null) DenyTurnRequestEvent(this, (PlayerEventArgs)eventArgs);
                    break;
                case EventType.FinishedTurn:
                    if (FinishedTurnEvent != null) FinishedTurnEvent(this, eventArgs);
                    break;
                case EventType.FinishedReequip:
                    if (FinishedReequipEvent != null) FinishedReequipEvent(this, eventArgs);
                    break;
                case EventType.ChooseAction:
                    if (ChooseActionEvent != null) ChooseActionEvent(this, (ChooseActionEventArgs)eventArgs);
                    break;
                case EventType.AddHealth:
                    if (AddHealthEvent != null) AddHealthEvent(this, (PointsEventArgs)eventArgs);
                    break;
                case EventType.RemoveHealth:
                    if (RemoveHealthEvent != null) RemoveHealthEvent(this, (PointsEventArgs)eventArgs);
                    break;
                case EventType.AddFatigue:
                    if (AddFatigueEvent != null) AddFatigueEvent(this, (PointsEventArgs)eventArgs);
                    break;
                case EventType.RemoveFatigue:
                    if (RemoveFatigueEvent != null) RemoveFatigueEvent(this, (PointsEventArgs)eventArgs);
                    break;
                case EventType.AddMovement:
                    if (AddMovementEvent != null) AddMovementEvent(this, (PointsEventArgs)eventArgs);
                    break;
                case EventType.RemoveMovement:
                    if (RemoveMovementEvent != null) RemoveMovementEvent(this, (PointsEventArgs)eventArgs);
                    break;
                case EventType.SwitchItems:
                    if (SwitchItemsEvent != null) SwitchItemsEvent(this, (SwitchItemsEventArgs)eventArgs);
                    break;
                case EventType.UseOverlordCard:
                    if (UseOverlordCardEvent != null) UseOverlordCardEvent(this, (OverlordCardEventArgs)eventArgs);
                    break;
                case EventType.AddPowerOverlordCard:
                    if (AddPowerOverlordCardEvent != null) AddPowerOverlordCardEvent(this, (OverlordCardEventArgs)eventArgs);
                    break;
                case EventType.SpawnMonster:
                    if (SpawnMonsterEvent != null) SpawnMonsterEvent(this, (SpawnMonsterEventArgs)eventArgs);
                    break;
                case EventType.SpawnFinished:
                    if (SpawnFinishedEvent != null) SpawnFinishedEvent(this, eventArgs);
                    break;
                case EventType.StartMonsterTurn:
                    if (StartMonsterTurnEvent != null) StartMonsterTurnEvent(this, (CoordinatesEventArgs)eventArgs);
                    break;
                case EventType.EndMonsterTurn:
                    if (EndMonsterTurnEvent != null) EndMonsterTurnEvent(this, eventArgs);
                    break;
                case EventType.MoveTo:
                    if (MoveToEvent != null) MoveToEvent(this, (CoordinatesEventArgs)eventArgs);
                    break;
                case EventType.OpenChest:
                    if (OpenChestEvent != null) OpenChestEvent(this, (ChestEventArgs)eventArgs);
                    break;
                case EventType.OpenDoor:
                    if (OpenDoorEvent != null) OpenDoorEvent(this, (CoordinatesEventArgs)eventArgs);
                    break;
                case EventType.PickupMarker:
                    if (PickupMarkerEvent != null) PickupMarkerEvent(this, (CoordinatesEventArgs)eventArgs);
                    break;
                case EventType.AttackSquare:
                    if (AttackSquareEvent != null) AttackSquareEvent(this, (CoordinatesEventArgs)eventArgs);
                    break;
                case EventType.RolledDices:
                    if (RolledDicesEvent != null) RolledDicesEvent(this, (RolledDicesEventArgs)eventArgs);
                    break;
                case EventType.InflictWounds:
                    if (InflictWoundsEvent != null) InflictWoundsEvent(this, (InflictWoundsEventArgs)eventArgs);
                    break;
                case EventType.RerollDices:
                    if (RerollDicesEvent != null) RerollDicesEvent(this, (RerollDicesEventArgs)eventArgs);
                    break;
                case EventType.DamageTaken:
                    if (DamageTakenEvent != null) DamageTakenEvent(this, (DamageTakenEventArgs)eventArgs);
                    break;
                case EventType.WasKilled:
                    if (WasKilledEvent != null) WasKilledEvent(this, (CoordinatesEventArgs)eventArgs);
                    break;
                case EventType.MissedAttack:
                    if (MissedAttackEvent != null) MissedAttackEvent(this, (GameEventArgs)eventArgs);
                    break;
                case EventType.BoughtDice:
                    if (BoughtDiceEvent != null) BoughtDiceEvent(this, (DiceEventArgs)eventArgs);
                    break;
                case EventType.ChangedBlackDiceSide:
                    if (ChangedBlackDiceSideEvent != null) ChangedBlackDiceSideEvent(this, (DiceEventArgs)eventArgs);
                    break;
                case EventType.BoughtMovement:
                    if (BoughtMovementEvent != null) BoughtMovementEvent(this, eventArgs);
                    break;
                case EventType.FinishedAttack:
                    if (FinishedAttackEvent != null) FinishedAttackEvent(this, eventArgs);
                    break;
                case EventType.SquareMarked:
                    if (SquareMarkedEvent != null) SquareMarkedEvent(this, (CoordinatesEventArgs)eventArgs);
                    break;
                case EventType.InventoryFieldMarked:
                    if (InventoryFieldMarkedEvent != null) InventoryFieldMarkedEvent(this, (InventoryFieldEventArgs)eventArgs);
                    break;
                case EventType.FatigueClicked:
                    if (FatigueClickedEvent != null) FatigueClickedEvent(this, eventArgs);
                    break;
                case EventType.DiceClicked:
                    if (DiceClickedEvent != null) DiceClickedEvent(this, (DiceEventArgs)eventArgs);
                    break;
                case EventType.SurgeAbilityClicked:
                    if (SurgeAbilityClickedEvent != null) SurgeAbilityClickedEvent(this, (SurgeAbilityEventArgs)eventArgs);
                    break;
                case EventType.DoAttack:
                    if (DoAttackEvent != null) DoAttackEvent(this, eventArgs);
                    break;
            }

            if (sendOnNetwork && !this.internalOnly.Contains(eventType))
            {
                Player.Instance.Connection.SendString(EncodeMessage(eventType, eventArgs));
            }
        }
示例#5
0
 /// <summary>
 /// Encode a message to a string.
 /// </summary>
 /// <param name="eventType">The <see cref="EventType"/>.</param>
 /// <param name="eventArgs">The <see cref="GameEventArgs"/> object.</param>
 /// <returns>The message encoded as a string.</returns>
 private string EncodeMessage(EventType eventType, GameEventArgs eventArgs)
 {
     return string.Join(",", eventArgs.SenderId, eventArgs.EventId, (int)eventArgs.EventType, Convert.ToInt32(eventArgs.NeedResponse), eventArgs.ToString());
 }
示例#6
0
 private void OnLoadDataTableFailure(object sender, GameEventArgs e)
 {
     Log.Error("OnLoadDataTableFailure :" + e.ToString());
 }