Exemple #1
0
    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();
        }
    }
Exemple #2
0
    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;
    }
Exemple #4
0
    /// <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);
    }
Exemple #5
0
    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);
    }