// Use this for initialization void Awake() { if (_instance != null) { Debug.LogError("Two CharactersManager in the hierarchy"); return; } _instance = this; Debug.Log("Singleton " + name + " initialized"); characters = new List<Character>(); DontDestroyOnLoad(gameObject); characterPrefab = Resources.Load<GameObject>("CharacterPrefab"); }
void Awake() { controlsManager = GameObject.FindGameObjectWithTag(Tags.gameController).GetComponent<ControlsManager>(); objectsToShowOnGameOver = GameObject.FindGameObjectsWithTag(Tags.gameOverObject); setObjectsToShowOnGameOver(false); objectsToShowOnGameWin = GameObject.FindGameObjectsWithTag(Tags.gameWinObject); setObjectsToShowOnGameWin(false); charactersOnMissionList = GameObject.FindGameObjectWithTag(Tags.charactersOnMissionList).GetComponent<CharactersOnMissionList>(); availableCharactersList = GameObject.FindGameObjectWithTag(Tags.availableCharactersList).GetComponent<AvailableCharactersList>(); charactersManager = GetComponent<CharactersManager>(); }
public static void Initialize() { PalMain gameMain = PalMain.GameMain; if (gameMain != null) { CharactersManager.instance = gameMain.GetComponent <CharactersManager>(); if (CharactersManager.instance == null) { CharactersManager.instance = gameMain.gameObject.AddComponent <CharactersManager>(); } CharactersManager.instance.InitTex(); } //GameStateManager.AddInitStateFun(GameState.Cutscene, new GameStateManager.void_fun(CharactersManager.Instance.InitCutscene)); //GameStateManager.AddEndStateFun(GameState.Cutscene, new GameStateManager.void_fun(CharactersManager.Instance.EndCutscene)); //GameStateManager.AddInitStateFun(GameState.Battle, new GameStateManager.void_fun(CharactersManager.Instance.InitBattle)); //GameStateManager.AddEndStateFun(GameState.Battle, new GameStateManager.void_fun(CharactersManager.Instance.EndBattle)); }
public override bool ActionStart() { state = SWA_STATE.PRE_APPLY; anim_comp = GetComponent <CompAnimation>(); player = GetLinkedObject("target").GetComponent <CharactersManager>(); if (player.dying == false) { anim_comp.SetClipDuration("Attack", attack_duration); anim_comp.PlayAnimationNode("Attack"); GetComponent <CompAudio>().PlayEvent("Enemy2_Slash"); } //Interrupt player action return(true); }
void Awake() { dm = FindObjectOfType <DataManager>(); cm = FindObjectOfType <CharactersManager>(); if (dm == null && cm == null) { Debug.Log("DataManager or CharactersManager is null!"); } currentIter = 0; currentCharacter = new Character(); currentCharacter = cm.GetCharacter(currentIter); if (currentCharacter == null) { Debug.Log("currentCharacter is null!"); } prevBtnActivity = false; nextBtnActivity = true; }
private static void CombatStatePacket(User user, BinaryReader reader) { int targetId = reader.ReadInt32(); switch (targetId) { case -1: user.Character.target = null; break; default: if (CharactersManager.GetCharacter(targetId, out WorldObject target)) { target.Interact(user); } break; } }
protected override void Die(Character attacker) { base.Die(attacker); if (attacker != null) { uint gold = CharactersManager.Stats.GetProperty <uint>(attacker.id, ObjectStats.GOLD); CharactersManager.Stats.SetProperty <uint>(attacker.id, ObjectStats.GOLD, gold + 100); } Drop d = CharactersManager.CreateCharacter <Drop>(new PacketsSender.SpawnData() { name = "Drop", pos = Pos }); d.item = ItemsManager.Instance.CreateItem(3); }
public void Load() { if (PlayerPrefs.HasKey(key)) // Если игра уже запускалась до этого момента { Debug.Log("has key - true!"); string valueDataStorage = PlayerPrefs.GetString(key); Debug.Log(valueDataStorage); DataStorage data = JsonUtility.FromJson <DataStorage>(valueDataStorage); if (data == null) { Debug.Log("data is null!"); } this.characters = new CharacterInfo[data.characters_name.Length]; this.fish = data.fish; this.record = data.record; this.language = data.language; for (int i = 0; i < data.characters_name.Length; i++) { this.characters[i] = new CharacterInfo(); this.characters[i].name = data.characters_name[i]; this.characters[i].price = data.characters_price[i]; this.characters[i].state = data.characters_state[i]; } Debug.Log("array characters initialized!"); } else // Если игра запущена в первый раз { CharactersManager cm = FindObjectOfType <CharactersManager>(); if (cm == null) { Debug.Log("cm is null!"); } List <Character> initCharacters = cm.ListCharacters(); characters = new CharacterInfo[initCharacters.Count]; for (int i = 0; i < initCharacters.Count; i++) { characters[i] = new CharacterInfo(); characters[i].name = initCharacters[i].name; characters[i].price = initCharacters[i].price; characters[i].state = initCharacters[i].state; } } }
private void Init() { charactersManager = gameObject.GetComponent <CharactersManager>(); // string file = File.ReadAllText(Application.dataPath + "/Data/episodes.json"); // episodesCollection = JsonUtility.FromJson<EpisodesCollection>(file); // UpdateTimeLineAsset(); slider.maxValue = timeLineAsset.totalNumOfScenes - 1; seasons[0] = timeLineAsset.season1; seasons[1] = timeLineAsset.season2; seasons[2] = timeLineAsset.season3; seasons[3] = timeLineAsset.season4; seasons[4] = timeLineAsset.season5; seasons[5] = timeLineAsset.season6; seasons[6] = timeLineAsset.season7; seasons[7] = timeLineAsset.season8; timeLineAsset.currentScene = 0; timeLineAsset.timer = 0; UpdateUI(); }
private void FillByCharacters(int charactersQuantity, Dictionary <string, Coords> startCoords) { if (charactersQuantity == 2) { CharactersManager.CreatePlayer("name", startCoords["Bottom"]); CharactersManager.CreateAI("AI", startCoords["Top"]); } else if (charactersQuantity == 4) { CharactersManager.CreatePlayer("name", startCoords["Bottom"]); CharactersManager.CreateAI("AI", startCoords["Top"]); CharactersManager.CreateAI("AI", startCoords["Right"]); CharactersManager.CreateAI("AI", startCoords["Left"]); } else { throw new Exception("Неверное количство игроков. Их может быть только 2 или 4."); } }
void Start() { anim = GetComponent <Animator>(); ItM = GameObject.Find("Manager").GetComponent <ItemManager>(); InvManager = GameObject.Find("Inventory").GetComponent <InventoryManager>(); CharManager = GameObject.Find("Manager").GetComponent <CharactersManager>(); interact = false; show = false; endShow = false; canInteract = true; canReceive = true; playerEndedInteraction = false; ItM.CreateItem(Item, transform.parent.gameObject); if (Male) { anim.SetBool("LookingRight", true); anim.SetBool("LookingLeft", false); } }
void Start() { // // if (Data.Instance.playMode == Data.PlayModes.STORY) // panel.SetActive (false); singleSignal.SetActive(false); characterManager = Game.Instance.GetComponent <CharactersManager>(); ended = false; Data.Instance.events.OnScoreOn += OnScoreOn; Data.Instance.events.OnGameOver += OnGameOver; SetFields(""); SetIntroFields(); if (Data.Instance.isReplay) { Invoke("Delayed", 0.1f); } }
void Awake() { charactersManager = GameObject.FindGameObjectWithTag(Tags.gameController).GetComponent <CharactersManager>(); GameObject[] buttons = GameObject.FindGameObjectsWithTag(Tags.characterSelectButton); characterSelectButtons = new CharacterSelectButton[buttons.Length]; for (int i = 0; i < buttons.Length; i++) { characterSelectButtons[i] = buttons[i].GetComponent <CharacterSelectButton>(); } if (charactersManager.getAllButtons() == null) { charactersManager.setAllButtons(characterSelectButtons); } controlsManager = GameObject.FindGameObjectWithTag(Tags.gameController).GetComponent <ControlsManager>(); button = GetComponent <Button>(); }
void Start() { scenesManager = GetComponent <ScenesManager> (); scenesTimeline = new List <ScenesTimeline> (); charactersManager = World.Instance.charactersManager; Events.OnCharacterReachTile += OnCharacterReachTile; Events.AddKeyFrameNewCharacter += AddKeyFrameNewCharacter; Events.RefreshKeyframe += RefreshKeyframe; Events.OnRecording += OnRecording; Events.OnPlaying += OnPlaying; Events.AddKeyFrameMove += AddKeyFrameMove; Events.AddKeyFrameScreenTitle += AddKeyFrameScreenTitle; Events.AddKeyFrameAction += AddKeyFrameAction; Events.AddKeyFrameExpression += AddKeyFrameExpression; Events.OnCharacterSay += OnCharacterSay; Events.AddNewScene += AddNewScene; Events.AddNewTitleScene += AddNewTitleScene; Events.OnActivateScene += OnActivateScene; Events.OnDeleteScene += OnDeleteScene; }
public override bool ActionStart() { state = BGA_STATE.PRE_APPLY; target = GetLinkedObject("target"); player = target.GetComponent <CharactersManager>(); if (player == null) { Debug.Log("[error] Attack Action Start: Player is null!"); } if (player.dying == false) { GetComponent <CompAnimation>().SetTransition("ToAttack"); GetComponent <CompAnimation>().SetClipDuration("Attack", attack_duration); GetComponent <CompAudio>().PlayEvent("AttackPreparation"); } return(true); }
protected override void OnOpen() { base.OnOpen(); memoryStream = new MemoryStream(); reader = new BinaryReader(memoryStream); Character = CharactersManager.CreateCharacter <Player>(); int id = UsersManager.GetId(); this.Id = id; Character.Pos = new Vector2UInt16(250, 205); UsersManager.AddUser(id, this); CharactersManager.Items.records.Add(Character.id, new RecordsHandler <ushort, Item>()); CharactersManager.Stats.SetProperty <ushort>(Character.id, ObjectStats.STR, 6); CharactersManager.Stats.SetProperty <ushort>(Character.id, ObjectStats.INT, 2); CharactersManager.Stats.SetProperty <ushort>(Character.id, ObjectStats.VIT, 4); CharactersManager.Stats.SetProperty <ushort>(Character.id, ObjectStats.DEX, 3); CharactersManager.Stats.SetProperty <int>(Character.id, ObjectStats.RESPAWN_TIME, 1); CharactersManager.Stats.SetProperty <int>(Character.id, ObjectStats.HP, 100); CharactersManager.Stats.SetProperty <int>(Character.id, ObjectStats.MAX_HP, 100); CharactersManager.Stats.SetProperty <uint>(Character.id, ObjectStats.MAX_EXPERIENCE, 300); CharactersManager.Stats.SetProperty <ushort>(Character.id, ObjectStats.LVL, 1); RegisterEventHandlers(); PacketsSender.SpawnMonster(this, new PacketsSender.SpawnData(Character) { baseId = 0 }); PacketsSender.ControlCharacter(this, new PacketsSender.ControlData(Character)); Item i = ItemsManager.Instance.CreateItem(3); CharactersManager.Items.GetRecords(Character.id).SetRecord(0, i); }
public void Init() { cam.enabled = true; if (!isAndroid) { cam.fieldOfView = 172; } fieldOfView = cam.fieldOfView; charactersManager = Game.Instance.GetComponent <CharactersManager>(); if (isAndroid) { SetOrientation(Vector4.zero); cam.sensorSize = new Vector2(25, cam.sensorSize.y); } if (Data.Instance.isReplay) { state = states.START; transform.localPosition = new Vector3(0, 10, 0); cam.transform.localPosition = Vector3.zero; newPos.y = 0; } else { cam.transform.localPosition = new Vector3(0, 0, -4); cam.gameObject.transform.DOLocalMove(Vector3.zero, 3); } flow_target = new GameObject(); flow_target.transform.SetParent(transform.parent); flow_target.name = "Camera_TARGET"; flow_target.transform.localPosition = new Vector3(0, 5, targetZOffset); started = true; }
public override void OnRestart(Vector3 pos) { charactersManager = Game.Instance.level.charactersManager; transform.localEulerAngles = Vector3.zero; realPositionZ = 0; base.OnRestart(pos); Repositionate(); int id = Data.Instance.videogamesData.GetActualVideogameData().id; // si estas en el espacio: Rigidbody rb = GetComponent <Rigidbody>(); if (id == 1) { rb.isKinematic = true; rb.useGravity = false; } else { rb.isKinematic = false; rb.useGravity = true; } }
// Start is called before the first frame update void Start() { Initialized(); ShowScreen(ScreenUI.MainMenu); void Initialized() { _screens = new GameObject[] { inGameUI, mainMenuUI }; //TODO v.shimkovich: можно делать ссылку сразу на компоненты в инспекторе _lifeCellsManager = managers.GetComponent <LifeCellsManager>(); _mapManager = managers.GetComponent <MapManager>(); _charactersManager = managers.GetComponent <CharactersManager>(); _cameraFollow = camera.GetComponent <CameraFollow>(); _mapManager.OutOfSpaceHasHappened += OutOfSpaceChange; } }
public MeleeCPUTournament() { string configPath = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/challongeCSharpDriver.config"; var data = readIni(configPath); ChallongeConfig config = new ChallongeConfig(data["api_key"]); caller = new ChallongeHTTPClientAPICaller(config); controllers = new DolphinAsyncController[] { new DolphinAsyncController(new vJoyController(1)), new DolphinAsyncController(new vJoyController(2)) }; charactersManager = new CharactersManager(); players = new Players(new List <Player>() { new Player(new PlayerID("Mario"), charactersManager.getCharacter("Mario"), "Mario"), new Player(new PlayerID("Luigi"), charactersManager.getCharacter("Luigi"), "Luigi") }); meleeMenu = new MeleeBoot(controllers).bootToCSSCode(); InitializeComponent(); }
public override void OnInspectorGUI() { bool allowSceneObjects = !EditorUtility.IsPersistent(target); CharactersManager cm = (CharactersManager)target; cm.name = EditorGUILayout.TextField("Nome ", cm.name); cm.goodOrEvil = (GoodOrEvil)EditorGUILayout.EnumPopup("Organela ou Virus ", cm.goodOrEvil); cm.type = (creatureAttackType)EditorGUILayout.EnumPopup("Tipo de Ataque ", cm.type); cm.creatureLife = EditorGUILayout.IntField("Vida", cm.creatureLife); cm.creatureCost = EditorGUILayout.IntField("Custo", cm.creatureCost); cm.creatureAttackRange = EditorGUILayout.IntField("Tamanho do RayCast ", cm.creatureAttackRange); cm.creatureAttack = EditorGUILayout.IntField("Ataque", cm.creatureAttack); cm.creatureIniciative = EditorGUILayout.IntField("Iniciativa", cm.creatureIniciative); cm.creatureSpeed = EditorGUILayout.FloatField("Velocidade", cm.creatureSpeed); cm.buttonSprite = (Sprite)EditorGUILayout.ObjectField("Sprite do botão ", cm.buttonSprite, typeof(Sprite), allowSceneObjects); switch (cm.type) { case creatureAttackType.Tank: break; case creatureAttackType.LowRange: cm.pushedBackForce = EditorGUILayout.FloatField("Força do Empurrão ", cm.pushedBackForce); break; case creatureAttackType.HighRange: cm.shotSpeed = EditorGUILayout.FloatField("Velocidade do Tiro ", cm.shotSpeed); cm.shot = (GameObject)EditorGUILayout.ObjectField("Prefab do Tiro ", cm.shot, typeof(GameObject), allowSceneObjects); break; default: break; } EditorUtility.SetDirty(target); }
public override bool ActionStart() { state = BASD_STATE.PRE_APPLY; target = GetLinkedObject("target"); player = target.GetComponent <CharactersManager>(); if (player == null) { Debug.Log("[error] Attack Action Start: Player is null!"); } if (player.dying == false) { state = BASD_STATE.PRE_APPLY; Debug.Log("Play Sword down", Department.IA); GetComponent <CompAnimation>().PlayAnimationNode("SwordDownAttack"); GetComponent <CompAnimation>().SetClipDuration("SwordDownAttack", preparation_time / apply_damage_point); audio = GetComponent <CompAudio>(); GetComponent <CompAudio>().PlayEvent("AttackPreparation"); ground_hit = false; } return(true); }
public void SwitchTurn() => CharactersManager.SwitchTurn();
void Awake() { charactersOnMissionList = GameObject.FindGameObjectWithTag(Tags.charactersOnMissionList).GetComponent<CharactersOnMissionList>(); charactersManager = GameObject.FindGameObjectWithTag(Tags.gameController).GetComponent<CharactersManager>(); }
public AbstractGameActivities() { LinkManager = new GraphController(); ActivitiesChecker = new ActivitiesChecker(); CharactersManager = new CharactersManager(); }
void Awake() { charactersManager = GameObject.FindGameObjectWithTag(Tags.gameController).GetComponent<CharactersManager>(); GameObject[] buttons = GameObject.FindGameObjectsWithTag(Tags.characterSelectButton); characterSelectButtons = new CharacterSelectButton[buttons.Length]; for(int i=0; i<buttons.Length; i++){ characterSelectButtons[i] = buttons[i].GetComponent<CharacterSelectButton>(); } if(charactersManager.getAllButtons() == null){ charactersManager.setAllButtons(characterSelectButtons); } controlsManager = GameObject.FindGameObjectWithTag(Tags.gameController).GetComponent<ControlsManager>(); button = GetComponent<Button>(); }
public void Awake() { singleton = this; }
void Awake() { Instance = this; EnemySpriteRenderer = Enemy.GetComponent <SpriteRenderer>(); PlayerSpriteRenderer = Player.GetComponent <SpriteRenderer>(); }
private static void EnterCharacterToGameWorld(Client client, int accountId) { DataTable characterTable = DatabaseManager.ReturnQuery(string.Format("SELECT * FROM characters WHERE account_id='{0}'", accountId)); if (characterTable.Rows.Count > 0) { DataRow characterData = characterTable.Rows[0]; int characterId = (int)characterData["id"]; Player character = CharactersManager.CreatePlayer(); character.DatabaseId = characterId; client.SelectedCharacter = character; if (ServerManager.Instance.StatsManager.GetContainerForCharacter(client.SelectedCharacter.Id, out StatsContainer container)) { container.SetStat(StatType.NAME, (string)characterData["name"]); container.SetStat(StatType.LEVEL, (short)characterData["lvl"]); container.SetStat(StatType.RACE, (byte)characterData["race"]); container.SetStat(StatType.CLASS, (byte)characterData["ch_class"]); container.SetStat(StatType.POS_X, (short)characterData["pos_x"]); container.SetStat(StatType.POS_Z, (short)characterData["pos_z"]); container.SetStat(StatType.EXPERIENCE, (int)characterData["exp"]); container.SetStat(StatType.KINGDOM, (byte)characterData["kingdom"]); container.SetStat(StatType.GOLD, (int)characterData["gold"]); } Dictionary <ItemsContainerId, ItemsContainer> containers = ServerManager.Instance.ItemsManager.GetContainers(character.Id); DataTable itemsTable = DatabaseManager.ReturnQuery(string.Format("SELECT * FROM items WHERE owner_id='{0}'", character.DatabaseId)); for (int i = 0; i < itemsTable.Rows.Count; i++) { DataRow itemRow = itemsTable.Rows[i]; ItemsContainerId inventoryId = (ItemsContainerId)(byte)itemRow["inventory_id"]; containers[inventoryId].AddItem((int)itemRow["slot"], new ItemData() { uniqueId = (int)itemRow["id"], baseId = (int)itemRow["base_id"], amount = (int)itemRow["amount"], }); } client.BindEvents(); ServerManager.Instance.CharactersManager.AddCharacter(character); ServerManager.Instance.CharactersManager.clients.Add(character.Id, client); var questContainer = ServerManager.Instance.QuestFlags.GetContainer(character.Id); DataTable questFlagsTable = DatabaseManager.ReturnQuery(string.Format("SELECT * FROM quest_flags WHERE player_id='{0}'", character.DatabaseId)); for (int i = 0; i < questFlagsTable.Rows.Count; i++) { DataRow itemRow = questFlagsTable.Rows[i]; QuestFlag flag = new QuestFlag() { questName = (string)itemRow["quest_name"], flag = (string)itemRow["flag"], value = (int)itemRow["flag_val"], }; questContainer.SetQuestFlagInt(flag.questName, flag); } Dictionary <int, Character> table = ServerManager.Instance.CharactersManager.GetCharactersInRange <Character>(client.SelectedCharacter.Position, 50); //Send all characters foreach (var item in table) { Server.Instance.SendData(client.ip, new SpawnCharacterPacket(item.Value)); } //Acknowledge other clients foreach (var item in ServerManager.Instance.CharactersManager.GetClientsInRange(client.SelectedCharacter.Position, 50)) { Server.Instance.SendData(item.Value.ip, new SpawnCharacterPacket(client.SelectedCharacter)); } Packet packet = new Packet(); packet.writer.Write((byte)1); packet.writer.Write((int)client.SelectedCharacter.Id); packet.writer.Write((short)characterData["pos_x"]); packet.writer.Write((short)characterData["pos_z"]); packet.writer.Write((short)characterData["lvl"]); packet.writer.Write((int)characterData["exp"]); packet.writer.Write((int)characterData["gold"]); Server.Instance.SendData(client.ip, packet); foreach (var ic in containers) { Server.Instance.SendData(client.ip, new SyncInventoryPacket(ic.Value)); } } else { Server.Instance.SendData(client.ip, new CharacterSelectionPacket()); } }
void Awake() { charactersOnMissionList = GameObject.FindGameObjectWithTag(Tags.charactersOnMissionList).GetComponent <CharactersOnMissionList>(); charactersManager = GameObject.FindGameObjectWithTag(Tags.gameController).GetComponent <CharactersManager>(); }
public virtual void Start() { button_cd = GetComponent <CompButton>(); fill_image = GetComponent <CompImage>(); characters_manager = GetLinkedObject("player_obj").GetComponent <CharactersManager>(); }
void LoadManagers() { dataManager = Instantiate(dataManager, transform); charactersManager = Instantiate(charactersManager, transform); scoreControllersc = Instantiate(scoreControllersc, transform); }
// Start is called before the first frame update void Start() { GM = FindObjectOfType <GameManager>(); GV = FindObjectOfType <GameVersion>(); FC = FindObjectOfType <FPSCounter>(); player = FindObjectOfType <PlayerData>(); CM = FindObjectOfType <CharactersManager>(); Time.timeScale = 1f; #region Panels if (!player.GameState.Equals(GameStates.Restarted)) { HomePanel.SetActive(true); GamePanel.SetActive(false); CountDownPanel.SetActive(false); GameOverPanel.SetActive(false); PausePanel.SetActive(false); PauseOverlay.SetActive(true); PauseContainer.SetActive(true); ShopOverlay.gameObject.SetActive(false); ShopContainer.gameObject.SetActive(false); ShopPanel.SetActive(true); SettingsOverlay.gameObject.SetActive(false); SettingsContainer.gameObject.SetActive(false); SettingsPanel.SetActive(true); ChangelogPanel.SetActive(true); ChangelogOverlay.SetActive(false); ChangelogContainer.SetActive(false); DevPanel.SetActive(false); StarterUI.SetActive(false); RewardsPanel.SetActive(false); DebugRewardsPanel.SetActive(false); } else { HomePanel.SetActive(false); GameOverPanel.SetActive(false); PausePanel.SetActive(false); PauseOverlay.SetActive(true); PauseContainer.SetActive(true); ShopOverlay.gameObject.SetActive(false); ShopContainer.gameObject.SetActive(false); ShopPanel.SetActive(true); SettingsOverlay.gameObject.SetActive(false); SettingsContainer.gameObject.SetActive(false); SettingsPanel.SetActive(true); ChangelogPanel.SetActive(true); ChangelogOverlay.SetActive(false); ChangelogContainer.SetActive(false); DevPanel.SetActive(false); StarterUI.SetActive(false); RewardsPanel.SetActive(false); DebugRewardsPanel.SetActive(false); Play(); } #endregion if (player.isFirstTime) { if (!player.hasSelectedStarter) { OpenStarterUI(); } else { CloseStarterUI(); } } textVersione.text = "" + GV.projectVersionToString(); player.GameState = GameStates.HomeScreen; }
public BaseMobsManager() { DataTable mobsProtoTable = DatabaseUtils.ReturnQuery("SELECT * FROM mobs_proto"); for (int i = 0; i < mobsProtoTable.Rows.Count; i++) { BaseMobData data = new BaseMobData() { id = (int)mobsProtoTable.Rows[i]["id"], name = (string)mobsProtoTable.Rows[i]["name"], lvl = (byte)mobsProtoTable.Rows[i]["lvl"], health = (int)mobsProtoTable.Rows[i]["health"], expReward = (int)mobsProtoTable.Rows[i]["exp_reward"], max_dmg = (ushort)mobsProtoTable.Rows[i]["max_dmg"], min_dmg = (ushort)mobsProtoTable.Rows[i]["min_dmg"], }; mobsProto.Add(data.id, data); } DataTable table = DatabaseUtils.ReturnQuery("SELECT * FROM mobs_spawn"); for (int i = 0; i < table.Rows.Count; i++) { ushort baseId = (ushort)table.Rows[i]["mob_id"]; Vector2UInt16 pos = new Vector2UInt16((ushort)(double)table.Rows[i]["pos_x"], (ushort)(double)table.Rows[i]["pos_z"]); float respawnTime = (int)table.Rows[i]["respawn_time"]; byte zoneId = (byte)table.Rows[i]["zone_id"]; byte spawnType = (byte)table.Rows[i]["spawn_type"]; if (!mobsProto.ContainsKey(baseId)) { Console.WriteLine("Missing mob proto for spawn id: " + baseId); continue; } if (mobsProto.ContainsKey(baseId)) { BaseMobData data = mobsProto[baseId]; Character c; switch ((PacketsSender.SpawnData.SpawnType)spawnType) { case PacketsSender.SpawnData.SpawnType.VENDOR: c = CharactersManager.CreateCharacter <Vendor>(); break; default: c = CharactersManager.CreateCharacter <Monster>(); break; } c.baseId = baseId; c.Pos = pos; CharactersManager.Stats.SetProperty(c.id, ObjectStats.NAME, (string)data.name); CharactersManager.Stats.SetProperty(c.id, ObjectStats.RESPAWN_TIME, (int)respawnTime); CharactersManager.Stats.SetProperty(c.id, ObjectStats.HP, (int)data.health); CharactersManager.Stats.SetProperty(c.id, ObjectStats.MAX_HP, (int)data.health); CharactersManager.Stats.SetProperty(c.id, ObjectStats.LVL, (ushort)data.lvl); CharactersManager.Stats.SetProperty(c.id, ObjectStats.EXP_REWARD, (uint)data.expReward); } } }