public void ResetLists() { if (characters[0] == null) { characters[0] = new EntryList <SquadMemberEntry>(8); characters[1] = new EntryList <SquadMemberEntry>(8); characters[2] = new EntryList <SquadMemberEntry>(8); } characters[0].ResetList(); characters[1].ResetList(); characters[2].ResetList(); MissionEntry mission = (MissionEntry)currentMission.value; selectionX = selectionY = 0; selectMode = false; squadLimits[1] = mission.Squad1Size(); squadLimits[2] = mission.Squad2Size(); squadCount = (squadLimits[2] > 0) ? 2 : 1; squadLists[0].ResetData(); for (int i = 0; i < playerData.stats.Count; i++) { PrepCharacter pc = new PrepCharacter(i, mission.IsCharacterForced(playerData.stats[i].charData), mission.IsCharacterLocked(playerData.stats[i].charData)); squadLists[0].values.Add(pc); } for (int i = 1; i < squadLists.Length; i++) { squadLists[i].ResetData(); } }
private void GeneratePrepList() { MapEntry map = (MapEntry)currentMapEntry.value; int playerCap = map.spawnPoints1.Count; prepList.values = new List <PrepCharacter>(); for (int i = 0; i < playerData.stats.Count; i++) { if (!map.IsForced(playerData.stats[i].charData)) { continue; } PrepCharacter pc = new PrepCharacter(i, map.IsForced(playerData.stats[i].charData), map.IsLocked(playerData.stats[i].charData)); if (!pc.locked && playerCap > 0) { playerCap--; } prepList.values.Add(pc); } for (int i = 0; i < playerData.stats.Count; i++) { if (map.IsForced(playerData.stats[i].charData)) { continue; } PrepCharacter pc = new PrepCharacter(i, map.IsForced(playerData.stats[i].charData), map.IsLocked(playerData.stats[i].charData)); if (!pc.locked && playerCap > 0) { playerCap--; } prepList.values.Add(pc); } prepList.SortListPicked(); }
/// <summary> /// Fills the entry with the data of the character. /// </summary> /// <param name="stats"></param> public void FillData(StatsContainer stats, InventoryContainer inventory, PrepCharacter prep) { invCon = inventory; icon.sprite = stats.charData.portraitSet.small; entryName.text = stats.charData.entryName; className.text = stats.currentClass.entryName; level.text = stats.level.ToString(); exp.text = stats.currentExp.ToString(); hp.text = stats.hp.ToString(); entryName.color = (prep.forced) ? Color.green : Color.black; }
/// <summary> /// Spawns a player character on the map. /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="stats"></param> /// <param name="inventory"></param> /// <param name="skills"></param> public PlayerMove SpawnPlayerCharacter(SpawnData pos, bool addToPrep, bool active, bool cursorHover) { Transform playerTransform = Instantiate(playerPrefab, battleMap.playerParent); PlayerMove tactics = playerTransform.GetComponent <PlayerMove>(); tactics.battleMap = battleMap; tactics.posx = pos.x; tactics.posy = pos.y; tactics.stats = pos.stats ?? new StatsContainer(pos); tactics.inventory = pos.inventoryContainer ?? new InventoryContainer(playerClassWheel.GetWpnSkillFromLevel(pos.charData.startClassLevels), pos.inventory); tactics.skills = pos.skills ?? new SkillsContainer(playerClassWheel.GetSkillsFromLevel(pos.charData.startClassLevels, pos.charData.startClass, pos.level)); tactics.squad = pos.joiningSquad; if (addToPrep) { playerData.AddNewPlayer(tactics); PrepCharacter prep = new PrepCharacter(playerData.stats.Count - 1); if (pos.joiningSquad == 2) { prepList2.values.Add(prep); } else { prepList1.values.Add(prep); } } if (active) { tactics.Setup(); } else { playerTransform.gameObject.SetActive(false); } if (cursorHover) { cursorX.value = pos.x; cursorY.value = pos.y; cursorMoveEvent.Invoke(); } return(tactics); }
public bool MoveCharacter() { if (squadLists[selectionX].Count >= squadLimits[selectionX] && selectionX != 0) { return(false); } PrepCharacter prep = squadLists[targetX].values[targetY]; squadLists[targetX].values.RemoveAt(targetY); squadLists[selectionX].values.Add(new PrepCharacter(prep.index)); selectMode = false; targetX = -1; targetY = -1; GenerateLists(); selectionY = squadLists[selectionX].Count - 1; characters[selectionX].ForcePosition(selectionY); return(true); }