Esempio n. 1
0
 private void SetupBoard(int players, PlayerMaterials playerMaterials, bool[] boardTemplate)
 {
     for (int i = 0; i < _AmountOfBricks; i++)
     {
         ActivateBrick(i, GetRandomMaterial(players, playerMaterials), boardTemplate[i]);
     }
 }
Esempio n. 2
0
    /////////////////
    public void AddMaterial(MaterialData material, int amount = 1)
    {
        if (material == null)
        {
            return;
        }

        MaterialInfo materialToAdd = null;

        foreach (MaterialInfo materialInfo in PlayerMaterials)
        {
            // если в инвентаре есть такой материал, то добавляем
            if (materialInfo.Data.Name == material.Name)
            {
                materialInfo.AddMaterial(amount);
                materialToAdd = materialInfo;
                break;
            }
        }

        // если материала в инвентаре не было, то создаем и прибавляем
        if (materialToAdd == null)
        {
            materialToAdd = new MaterialInfo(material, amount);
            PlayerMaterials.Add(materialToAdd);
        }

        if (OnInventoryContentChanged != null)
        {
            OnInventoryContentChanged(materialToAdd);
        }
    }
Esempio n. 3
0
    /////////////////
    public void Init(JsonObject json)
    {
        if (json == null)
        {
            return;
        }

        JsonArray equipments = json.Get <JsonArray>("equipments");

        for (int i = 0; i < equipments.Count; i++)
        {
            string        obj  = (string)equipments[i];
            EquipmentItem item = GameDataStorage.Instance.GetEquipmentByName(obj);

            PlayerEquipments.Add(item);
        }

        JsonArray materials = json.Get <JsonArray>("materials");

        foreach (JsonObject item in materials)
        {
            MaterialData data   = GameDataStorage.Instance.GetMaterialByName((string)item["name"]);
            int          amount = item.GetInt("amount");

            PlayerMaterials.Add(new MaterialInfo(data, amount));
        }
    }
Esempio n. 4
0
 /// <summary>
 /// Renders the outline of the board
 /// </summary>
 /// <param name="boardTemplate">template of the board to render</param>
 /// <param name="playerMaterials">material loader</param>
 public void RenderOutline(bool[] boardTemplate, PlayerMaterials playerMaterials)
 {
     TurnOffAllBricks();
     _boardBehaviour.CheckTemplate(boardTemplate, _boardOfBricks);
     bool[] outlined = _boardBehaviour.OutlinedBricks(boardTemplate, _WidthAndHeightOfGrid);
     for (int i = 0; i < _AmountOfBricks; i++)
     {
         ActivateBrick(i, playerMaterials.GetDefaultMaterial(), outlined[i]);
     }
 }
Esempio n. 5
0
    /////////////////
    private MaterialInfo GetMaterialInfo(MaterialData data)
    {
        if (data == null)
        {
            return(null);
        }

        MaterialInfo info = PlayerMaterials.Find((mat) => mat.Data.Name.Equals(data.Name));

        return(info);
    }
Esempio n. 6
0
    /////////////////
    public bool TryRemoveMaterial(MaterialData data, int amount)
    {
        MaterialInfo info = GetMaterialInfo(data);

        if (info == null)
        {
            return(false);
        }

        if (info.TryRemoveMaterial(amount))
        {
            if (info.Amount <= 0)
            {
                PlayerMaterials.Remove(info);
            }

            return(true);
        }

        return(false);
    }
Esempio n. 7
0
 /// <summary>
 /// Initializes the Player Manager
 /// </summary>
 /// <param name="playerMaterials">player materials loader</param>
 public void Initialize(PlayerMaterials playerMaterials)
 {
     _behaviour = new PlayerManagerBehaviour(playerMaterials);
     SetupPlayerPlatform();
     _behaviour.CheckPlayerAvailabilityCount(_arrayOfPlayerPlatforms);
 }
Esempio n. 8
0
 /// <summary>
 /// Initializes the board according to template and players
 /// </summary>
 /// <param name="boardTemplate">template for the board</param>
 /// <param name="players">amount of players in game</param>
 /// <param name="playerMaterials">materials for player</param>
 public void InitializeChosenBoard(bool[] boardTemplate, int players, PlayerMaterials playerMaterials)
 {
     _boardBehaviour.CheckTemplate(boardTemplate, _boardOfBricks);
     SetupBoard(players, playerMaterials, boardTemplate);
 }
Esempio n. 9
0
 private Material GetRandomMaterial(int players, PlayerMaterials mat)
 {
     return(mat.GetPlayerMaterialFor(MPHT.Utilities.RandomPlayer(players)));
 }