Exemplo n.º 1
0
    private void UpdatePatternList()
    {
        SectorCount = (int)SectorSelect + 1;

        if (pattern.Count.Equals(SectorCount))
        {
            return;
        }
        if (pattern.Count < SectorCount)
        {
            List <SectorState> newList = new SectorState[SectorCount].ToList();
            for (var i = 0; i < pattern.Count; i++)
            {
                SectorState sectorState = pattern[i];
                newList[i] = pattern[i];
            }

            pattern = newList;
        }

        if (pattern.Count > SectorCount)
        {
            List <SectorState> newList = new SectorState[SectorCount].ToList();
            for (int i = 0; i < SectorCount; i++)
            {
                newList[i] = pattern[i];
            }

            pattern = newList;
        }
    }
Exemplo n.º 2
0
        private void UpdateBitmap(Byte track, Byte sector, SectorState sectorState)
        {
            // Read bitmap
            Byte[] bitmap = base.ReadSector(20, 2);

            int index     = (track * sectorsPerTrack) + sector;
            int byteIndex = (index - 1) / 8;
            int bitIndex  = (index - 1) % 8;

            Byte data = bitmap[0x10 + byteIndex];

            if (GetBit(data, bitIndex))
            {
                //System.Console.WriteLine("Track : {0}, Sector : {1} - FREE", track, sector);
            }
            else
            {
                //System.Console.WriteLine("Track : {0}, Sector : {1} - USED", track, sector);
            }

            Byte updatedData = 0x00;

            if (sectorState == SectorState.FREE)
            {
                updatedData = SetBit(data, bitIndex, true);
            }
            else
            {
                updatedData = SetBit(data, bitIndex, false);
            }

            bitmap[0x10 + byteIndex] = updatedData;

            //base.WriteSector(track, sector, bitmap);
        }
Exemplo n.º 3
0
    private void loadGameStateFromFile(string filename)
    {
        if (!File.Exists(filename))
        {
            Debug.LogWarning("Save file not exists");
            return;
        }
        XDocument xmlLevelData = XDocument.Load(filename);
        XElement  rootElement  = (XElement)xmlLevelData.LastNode;

        if (rootElement.Name.LocalName != SAVE_ROOT_ELEMENT_NAME)
        {
            Debug.LogWarning("Save file is not compatible format");
            return;
        }

        sector   = null;
        location = null;

        foreach (XElement groupElement in rootElement.Nodes())
        {
            switch (groupElement.Name.LocalName)
            {
            case SAVE_SECTORID_ELEMENT_NAME: {
                sector = GlobalData.resourcesManager.getById <SectorState> (uint.Parse(groupElement.Value));
                break;
            }

            case SAVE_LOCID_ELEMENT_NAME: {
                location = GlobalData.resourcesManager.getById <LocationState> (uint.Parse(groupElement.Value));
                break;
            }
            }
        }
    }
Exemplo n.º 4
0
    //ShootManager 朝向是当前摇杆操控朝向
    //而扇形需要在操控朝向和目标朝向之间插值
    private void ShowSector()
    {
        sectorLength = GameConst.Instance.SectorLength;

        state = SectorState.Target;
        sector.SetActive(true);
        //var curDir = transform.parent.forward;
        var curDir    = Quaternion.Euler(new Vector3(0, sm.controlDir, 0)) * Vector3.forward;
        var targetDir = hitTarget.transform.position - transform.position;

        targetDir.y = 0;
        targetDir.Normalize();
        var theta    = Util.DegBetweenVec(curDir, targetDir);
        var endWidth = 2 * Mathf.Tan(Mathf.Deg2Rad * theta / 2) * sectorLength;
        var lr       = sector.GetComponent <LineRenderer> ();

        lr.SetWidth(0.01f, endWidth);

        //var curDeg = transform.parent.eulerAngles.y;
        var curDeg = sm.controlDir;
        var secDeg = curDeg + theta / 2;

        //Debug.Log("curDeg theta: "+curDeg+" t "+theta);
        sector.transform.rotation = Quaternion.Euler(new Vector3(0, secDeg, 0));
        sector.transform.position = transform.position;
    }
Exemplo n.º 5
0
    private void addSectorToContainer(SectorState sectorState, int sectorIndex)
    {
        GameObject currLocationObj = Instantiate(sectorPointPrefab, new Vector3(), new Quaternion()) as GameObject;

        // Реакция на нажатие
        GameObject SecButton = currLocationObj.transform.FindChild("Button").gameObject;

        SecButton.GetComponent <Button> ().onClick.AddListener(() => onSectorClickListener(sectorState));

        // Текст
        GameObject SecText       = SecButton.transform.FindChild("Text").gameObject;
        string     secHiddenMark = sectorState.isVisible ? "" : "[*] ";

        SecText.GetComponent <Text> ().text = secHiddenMark + sectorState.getName();

        // Позиционирование
        RectTransform AnswRT = currLocationObj.GetComponent <RectTransform> ();

        AnswRT.SetParent(sectorsContainer);
        AnswRT.localScale = new Vector3(1, 1, 1);
        AnswRT.anchorMin  = sectorState.getNormalCoords();
        AnswRT.anchorMax  = AnswRT.anchorMin;
        AnswRT.offsetMax  = new Vector2(0, 0);
        AnswRT.offsetMin  = new Vector2(0, 0);
    }
Exemplo n.º 6
0
    private void onSectorClickListener(SectorState sectorState)
    {
        GameState currGameState = GlobalData.gameStateManager.GetCurrentGameState();

        currGameState.sector = sectorState;
        levelScreenSelector.SelectScreen((int)LevelScreenIndices.LOADING);
    }
Exemplo n.º 7
0
    private void loadSectorToCache(uint id)
    {
        if (sectors.ContainsKey(id) || (!levelData.sectors.ContainsKey(id)))
        {
            return;
        }
        SectorState sector = new SectorState((Sector)levelData.sectors[id]);

        sectors.Add(id, sector);
    }
Exemplo n.º 8
0
    private void runAction(QuestAction action)
    {
        switch (action.actionType)
        {
        case ActionType.ACT_TYPE_ADD_MEMBER:         // [ MAKE IT! ]
        {
            //member id
            Debug.Log("Action: Add member");
            break;
        }

        case ActionType.ACT_TYPE_CHANGE_QUEST:
        {
            GlobalData.resourcesManager.getById <QuestState>(uint.Parse(action.actionVariables [0]))
            .status = (QuestStatus)uint.Parse(action.actionVariables [1]);
            Debug.Log("Action: Change quest");
            break;
        }

        case ActionType.ACT_TYPE_CHANGE_RESOURCE:         // [ MAKE IT! ]
        {
            //res id
            //res change
            Debug.Log("Action: Change resource");
            break;
        }

        case ActionType.ACT_TYPE_CHANGE_SPEECH:
        {
            GlobalData.resourcesManager.getById <NPCState>(uint.Parse(action.actionVariables [0]))
            .GetPhrase(uint.Parse(action.actionVariables [1]))
            .getAnswer(uint.Parse(action.actionVariables [2]))
            .isActive = bool.Parse(action.actionVariables [3]);
            Debug.Log("Action: Change speech");
            break;
        }

        case ActionType.ACT_TYPE_CHANGE_SUBQUEST:         // [ MAKE IT! ]
        {
            //quest id
            //subquest id
            //subquest change
            Debug.Log("Action: Change subquest");
            break;
        }

        case ActionType.ACT_TYPE_ENDGAME:         // [ MAKE IT! ]
        {
            //hero is dead
            Debug.Log("Action: End game");
            break;
        }

        case ActionType.ACT_TYPE_GOTO_DIALOG:
        {
            uint nextNpcId = uint.Parse(action.actionVariables [0]);
            nextPhraseId = uint.Parse(action.actionVariables [1]);
            SelectNPC(nextNpcId);
            Debug.Log("Action: Goto dialog (npc id: " + nextNpcId + "; phrase id: " + nextPhraseId + ")");
            break;
        }

        case ActionType.ACT_TYPE_LOC_VISIBLE:
        {
            uint          changedLocId = uint.Parse(action.actionVariables [0]);
            LocationState locState     = GlobalData.resourcesManager.getById <LocationState> (changedLocId);
            if (locState != null)
            {
                locState.isVisible = bool.Parse(action.actionVariables [1]);
            }
            Debug.Log("Action: Location visibility change");
            break;
        }

        case ActionType.ACT_TYPE_MOVE_NPC:
        {
            uint          changedLocId = uint.Parse(action.actionVariables [1]);
            LocationState locState     = GlobalData.resourcesManager.getById <LocationState> (changedLocId);
            locState.firstPhraseNpcId = uint.Parse(action.actionVariables [0]);
            locState.firstPhraseId    = uint.Parse(action.actionVariables [2]);

            Debug.Log("Action: Move NPC");
            break;
        }

        case ActionType.ACT_TYPE_REMOVE_RANDOM_MEMBER:         // [ MAKE IT! ]
        {
            // N/A
            Debug.Log("Action: Remove random member");
            break;
        }

        case ActionType.ACT_TYPE_SECT_VISIBLE:
        {
            uint        changedSecId = uint.Parse(action.actionVariables [0]);
            SectorState secState     = GlobalData.resourcesManager.getById <SectorState> (changedSecId);
            if (secState != null)
            {
                secState.isVisible = bool.Parse(action.actionVariables [1]);
            }
            Debug.Log("Action: Sector visibility change");
            break;
        }

        case ActionType.ACT_TYPE_CHANGE_COUNTER:
        {
            AnswerState changedAnswer = GlobalData.resourcesManager.getById <NPCState> (uint.Parse(action.actionVariables [0]))
                                        .GetPhrase(uint.Parse(action.actionVariables [1]))
                                        .getAnswer(uint.Parse(action.actionVariables [2]));
            changedAnswer.decreaseCounter();

            if (changedAnswer.getCounter() <= 0)
            {
                foreach (QuestAction cntAction in changedAnswer.actionsList)
                {
                    if (!cntAction.isCounterAction)
                    {
                        continue;
                    }

                    try {
                        runAction(cntAction);
                    } catch (Exception e) {
                        Debug.LogException(e);
                        Debug.LogError("Invalid Counter Action: " + changedAnswer.ToString());
                    }
                }
            }

            Debug.Log("Action: Change counter");
            break;
        }
        }
    }
Exemplo n.º 9
0
        internal void Process()
        {
            switch (Identifier)
            {
            case 10100:
                _handler.Send(PacketBuilder2(20103, 4, LoginFailed.Payload(Constants.LoginFailed.Error.Default)));
                break;

            case 10101:
                Console.WriteLine(BitConverter.ToString(Payload).Replace("-", ""));
                var ToProcess = LoginOk.Array();
                _handler.Send(PacketBuilder(20104, 1, ToProcess));
                // var ToProcess2 = OwnHomeData.OwnHomeDataArray();
                // _handler.Send(PacketBuilder(24101, 1, ToProcess2));
                var ToProcess2 = SectorState.Array();
                _handler.Send(PacketBuilder(21903, 1, ToProcess2));
                Logger.Log($"We Sent SectorState", Logger.DefCon.DEBUGSERVER);
                break;

            case 10108:
                var ToProcess3 = KeepAliveOk.Array();
                _handler.Send(PacketBuilder(20108, 1, ToProcess3));
                Logger.Log($"We Sent KeepAliveOk", Logger.DefCon.DEBUGSERVER);
                break;

            case 14104:
                var ToProcess4 = SectorState.Array();
                _handler.Send(PacketBuilder(21903, 1, ToProcess4));
                Logger.Log($"We Sent SectorState", Logger.DefCon.DEBUGSERVER);
                break;

            case 14101:
                var ToProcess5 = OwnHomeData.OwnHomeDataArray();
                _handler.Send(PacketBuilder(24101, 1, ToProcess5));
                Logger.Log($"We Sent OwnHomeData", Logger.DefCon.DEBUGSERVER);
                break;

            case 14102:
                Console.WriteLine("Before : " + BitConverter.ToString(Payload).Replace("-", ""));
                RC4.Decrypt(ref Payload);
                Console.WriteLine("After : " + BitConverter.ToString(Payload).Replace("-", ""));

                /* var EndClientTurnMessage = Payload;
                 *
                 * int Tick;
                 * int Checksum;
                 * int Count;
                 *
                 * byte[] Commands;
                 *
                 * /// Begin Reading the ECT payload.
                 * using (var Reader = new Reader(Payload))
                 * {
                 *   Tick = Reader.ReadVInt();
                 *   Checksum = Reader.ReadVInt();
                 *   Count = Reader.ReadVInt();
                 *
                 *   Commands = Reader.ReadBytes((int)(Reader.BaseStream.Length - Reader.BaseStream.Position));
                 * }
                 *
                 * Console.WriteLine("Tick: " + Tick);
                 * Console.WriteLine("Checksum: " + Checksum);
                 * Console.WriteLine("Count: " + Count);
                 *
                 * if (Count > -1 && Count <= 50)
                 *    using (var Reader = new Reader(Commands))
                 *    {
                 *       for (var i = 0; i < Count; i++)
                 *       {
                 *            var CommandID = Reader.ReadVInt();
                 *
                 *           Console.WriteLine("Waiting to handle " + CommandID);
                 *        }
                 *   }*/
                break;

            case 10905:
                var ToProcess6 = InBoxData.Payload();
                _handler.Send(PacketBuilder(24445, 1, ToProcess6));
                break;

            case 14302:
                var ToProcess8 = AllianceData.Payload();
                _handler.Send(PacketBuilder(24301, 1, ToProcess8));
                break;

            default:
                Logger.Log($"Packet {Identifier} has not been handled!", Logger.DefCon.WARN);
                break;
            }
        }
Exemplo n.º 10
0
 private void HideSector()
 {
     sector.SetActive(false);
     state = SectorState.Idle;
 }
Exemplo n.º 11
0
        internal void Process()
        {
            switch (Identifier)
            {
            case 10100:
                _handler.Send(PacketBuilder2(20103, 4, LoginFailed.Payload(Constants.LoginFailed.Error.OutDatedContent)));
                Constants.ServerConfig.ContentTimes = 1;
                break;

            case 10101:
                if (Constants.ServerConfig.ContentTimes == 0 && Constants.ProtocolConfig.patchClient == true)
                {
                    _handler.Send(PacketBuilder(20103, 4, LoginFailed.Payload(Constants.LoginFailed.Error.OutDatedContent)));
                    Constants.ServerConfig.ContentTimes = 1;
                }
                else
                {
                    Constants.ServerConfig.ContentTimes = 0;
                    var ToProcess = LoginOk.Array();
                    _handler.Send(PacketBuilder(20104, 1, ToProcess));
                    //var ToProcess55 = OwnHomeData.OwnHomeDataArray();
                    //_handler.Send(PacketBuilder(24101, 1, ToProcess55));
                    // Logger.Log($"We Sent OwnHomeData", Logger.DefCon.DEBUGSERVER);
                    //var ToProcess111 = Sodium.Utilities.HexToBinary("0100");
                    //_handler.Send(PacketBuilder(20207, 1, ToProcess111));
                    //var ToProcess100 = AllianceStream.Array();
                    //_handler.Send(PacketBuilder(24311, 1, ToProcess100));
                    //var ToProcess2 = OwnHomeData.OwnHomeDataArray();
                    //_handler.Send(PacketBuilder(24101, 1, ToProcess2));
                    var ToProcess2 = SectorState.Array();
                    _handler.Send(PacketBuilder(21903, 1, ToProcess2));
                    Logger.Log($"Am trimis SectorState", Logger.DefCon.DEBUGSERVER);
                }

                break;

            case 10108:
                var ToProcess3 = KeepAliveOk.Array();
                _handler.Send(PacketBuilder(20108, 1, ToProcess3));
                Logger.Log($"Am trimis KeepAliveOk", Logger.DefCon.DEBUGSERVER);
                break;

            case 14104:
                var ToProcess4 = SectorState.Array();
                _handler.Send(PacketBuilder(21903, 1, ToProcess4));
                Logger.Log($"Am trimis SectorState", Logger.DefCon.DEBUGSERVER);
                break;

            case 14101:
                var ToProcess5 = OwnHomeData.OwnHomeDataArray();
                _handler.Send(PacketBuilder(24101, 1, ToProcess5));
                Logger.Log($"Am trimis OwnHomeData", Logger.DefCon.DEBUGSERVER);
                var ToProcess11 = Sodium.Utilities.HexToBinary("0100");
                _handler.Send(PacketBuilder(20207, 1, ToProcess11));
                var ToProcess10 = AllianceStream.Array();
                _handler.Send(PacketBuilder(24311, 1, ToProcess10));
                var ToProcess1000 = AllianceMessage.Array("Scrie -s pentru a vedea comenzile disponibile!", "PaulModz Bot", 13, 2);
                _handler.Send(PacketBuilder(24312, 1, ToProcess1000));
                break;

            case 14102:
                //var EndClientTurnMessage = Payload;

                //int Tick;
                //int Checksum;
                //int Count;

                //byte[] Commands;

                //// Begin Reading the ECT payload.
                //using (var Reader = new Reader(Payload))
                //{
                //    Tick = Reader.ReadVInt();
                //    Checksum = Reader.ReadVInt();
                //    Count = Reader.ReadVInt();

                //    Commands = Reader.ReadBytes((int)(Reader.BaseStream.Length - Reader.BaseStream.Position));
                //}

                //Console.WriteLine("Tick: " + Tick);
                //Console.WriteLine("Checksum: " + Checksum);
                //Console.WriteLine("Count: " + Count);

                //if (Count > -1 && Count <= 50)
                //    using (var Reader = new Reader(Commands))
                //    {
                //        for (var i = 0; i < Count; i++)
                //        {
                //            var CommandID = Reader.ReadVInt();

                //            Console.WriteLine("Waiting to handle " + CommandID);
                //        }
                //    }
                break;

            case 10905:
                var ToProcess6 = InBoxData.Payload();
                _handler.Send(PacketBuilder(24445, 1, ToProcess6));
                break;

            case 14302:
                var ToProcess8 = AllianceData.Payload();
                _handler.Send(PacketBuilder(24301, 1, ToProcess8));
                break;

            case 14315:
                Console.WriteLine("Message => " + BitConverter.ToString(EncryptedPayload).Replace("-", ""));

                var ToProcess10001 = AllianceMessage.Array("Comanda necunoscuta", "PaulModz Bot", 13, 1);
                _handler.Send(PacketBuilder(24312, 1, ToProcess10001));


                break;

            default:
                Logger.Log($"Packet {Identifier} nu poate fi incarcat.", Logger.DefCon.WARN);
                break;
            }
        }