private void SetupBoard(int players, PlayerMaterials playerMaterials, bool[] boardTemplate) { for (int i = 0; i < _AmountOfBricks; i++) { ActivateBrick(i, GetRandomMaterial(players, playerMaterials), boardTemplate[i]); } }
///////////////// 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); } }
///////////////// 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)); } }
/// <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]); } }
///////////////// private MaterialInfo GetMaterialInfo(MaterialData data) { if (data == null) { return(null); } MaterialInfo info = PlayerMaterials.Find((mat) => mat.Data.Name.Equals(data.Name)); return(info); }
///////////////// 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); }
/// <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); }
/// <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); }
private Material GetRandomMaterial(int players, PlayerMaterials mat) { return(mat.GetPlayerMaterialFor(MPHT.Utilities.RandomPlayer(players))); }