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; } }
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); }
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; } } } }
//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; }
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); }
private void onSectorClickListener(SectorState sectorState) { GameState currGameState = GlobalData.gameStateManager.GetCurrentGameState(); currGameState.sector = sectorState; levelScreenSelector.SelectScreen((int)LevelScreenIndices.LOADING); }
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); }
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; } } }
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; } }
private void HideSector() { sector.SetActive(false); state = SectorState.Idle; }
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; } }