示例#1
0
        public static void Switch(QRServer server, EndPoint endPoint, byte[] recv)
        {
            try
            {
                switch (recv[0])
                {
                case QRClient.Avaliable:
                    AvailableCheckHandler.BackendAvaliabilityResponse(server, endPoint, recv);
                    break;

                // Note: BattleSpy make use of this despite not being used in both OpenSpy and the SDK.
                // Perhaps it was present on an older version of GameSpy SDK
                case QRGameServer.Challenge:
                    ChallengeHandler.ServerChallengeResponse(server, endPoint, recv);
                    break;

                case QRClient.Heartbeat:     // HEARTBEAT
                    HeartBeatHandler.HeartbeatResponse(server, endPoint, recv);
                    break;

                case QRClient.KeepAlive:
                    KeepAliveHandler.KeepAliveResponse(server, endPoint, recv);
                    break;

                default:
                    server.UnknownDataRecived(recv);
                    break;
                }
            }
            catch (Exception e)
            {
                LogWriter.Log.WriteException(e);
                server.ReceiveAsync();
            }
        }
示例#2
0
        public MonsterFight(Map Map, WorldClient Player, MonsterGroup Monsters)
            : base(FightType.TYPE_PVM, Map)
        {
            try
            {
                Logger.Debug("PVM_FIGHT Launched : Player=" + Player.GetCharacter().Name + " MapId=" + Map.Id);

                var AttFighter = new CharacterFighter(this, Player);
                var DefFighter = new MonsterFighter(this, Monsters.Monsters[-1], this.NextActorId, Monsters);

                this.MonsterGroup = Monsters;

                Player.AddGameAction(new GameFight(AttFighter, this));

                base.InitFight(AttFighter, DefFighter);

                bool first = true;
                foreach (var Monster in Monsters.Monsters.Values)
                {
                    if (!first)
                    {
                        base.JoinFightTeam(new MonsterFighter(this, Monster, this.NextActorId, Monsters), this.myTeam2);
                    }
                    first = false;
                }

                bool inDungeon = false;
                if (this.Map.hasEndFightAction((int)FightType))
                {
                    inDungeon = true;
                }

                int challengeNumber = (inDungeon ? 2 : 1);

                int challInitz = 0;

                while (challInitz != challengeNumber)
                {
                    var Challenge = ChallengeHandler.GetRandomChallenge(this);
                    while (!Challenge.CanSet() || Challanges.Any(x => x.Id == Challenge.Id))
                    {
                        Challenge = ChallengeHandler.GetRandomChallenge(this);
                    }
                    this.Challanges.Add(Challenge);
                    this.RegisterFightListener(Challenge);
                    challInitz++;
                }
            }
            catch (Exception ex)
            {
                Logger.Error("MonsterFight::MonsterFight() " + ex.ToString());
            }
        }
示例#3
0
        /// <summary>
        /// Callback method for when the UDP Query Report socket recieves a connection
        /// </summary>
        protected override void ProcessAccept(UDPPacket packet)
        {
            IPEndPoint remote = (IPEndPoint)packet.AsyncEventArgs.RemoteEndPoint;

            // Need at least 5 bytes
            if (packet.BytesRecieved.Length < 5)
            {
                Release(packet.AsyncEventArgs);
                return;
            }

            // If we dont reply, we must manually release the EventArgs back to the pool
            Replied = false;
            try
            {
                switch (packet.BytesRecieved[0])
                {
                case QRClient.Avaliable:
                    AvaliableCheckHandler.BackendAvaliabilityResponse(this, packet);
                    break;

                // Note: BattleSpy make use of this despite not being used in both OpenSpy and the SDK.
                // Perhaps it was present on an older version of GameSpy SDK
                case QRGameServer.Challenge:
                    ChallengeHandler.ServerChallengeResponse(this, packet);
                    break;

                case QRClient.Heartbeat:     // HEARTBEAT
                    HeartBeatHandler.HeartbeatResponse(this, packet);
                    break;

                case QRClient.KeepAlive:
                    KeepAliveHandler.KeepAliveResponse(this, packet);
                    break;

                default:
                    LogWriter.Log.Write("[QR] [Recv] unknown data: ", LogLevel.Error);
                    break;
                }
            }
            catch (Exception e)
            {
                LogWriter.Log.WriteException(e);
            }
            finally
            {
                //if we replied QR data we release packet so that the EventArgs can be used on another connection
                if (Replied == true)
                {
                    Release(packet.AsyncEventArgs);
                }
            }
        }
示例#4
0
	public void Awake()
	{
		if (myInstance != null)
        {
            ScreenLog.AddMessage("ERROR ONLY ONE " + this.GetType().ToString() + " CAN EXIST", ScreenLogType.Error);
            DestroyImmediate(gameObject);
			return;
        }
		
        myInstance = this;
		
		RenameToType();	
	}
示例#5
0
    public override void Enter()
    {
        Debug.Log("Entering Challenge phase. The " + battleManager.playerTurn + " player can be challenged.");

        // if it's NPC turn then human gets to challenge and vice versa
        if (battleManager.playerTurn == CurrentPlayer.NPC)
        {
            humanChallengerHandler = Object.Instantiate(battleManager.humanChallengerCardPrefab, battleManager.transform);
            PopulateChallengeDetails();
            humanChallengerHandler.onChallengeSubmitted += StoreNPCChallenge;
            humanChallengerHandler.onChallengePassed    += PassChallengingNPC;
        }
        else
        {
            npcHand.ChallengePlayer();
        }

        timeEnter = Time.timeSinceLevelLoad;
        base.Enter();
    }
示例#6
0
 public void Setup()
 {
     _mockAccountRepository = new Mock <IAccountRepository>();
     _mockChallengeService  = new Mock <IChallengeService>();
     _unit = new ChallengeHandler(_mockAccountRepository.Object, _mockChallengeService.Object);
 }
 private void InitializeIdentityManager()
 {
     var challengeHandler = new ChallengeHandler(Challenge);
     IdentityManager.Current.ChallengeHandler = challengeHandler;
 }
示例#8
0
	void OnDestroy()
    {
        myInstance = null;
    }