private bool PutPart() { /* * Tries to put a part taken from inventory into the building. Returns true on success and false on failure. */ Inventory inventory = Inventory.instance; foreach (var matN in matsNeeded) { BuildMaterial matL = BuildMaterial.GetByKey(matsLeft, matN.item); if (matL.count <= 0) // Check if this material has already been exhausted { continue; } if (inventory.Pull(matN.item)) // Takes the item from the inventory { matL.count--; return(true); } } return(false); }
public DefenceUnit(int _MAX_defense, WorldDirection worldDirect, BuildMaterial buildMaterial) { MAX_defense = _MAX_defense; defense = _MAX_defense; position = worldDirect; material = buildMaterial; guard_count = 0; warriors = null; dmgPerGuardian = default_dmg_per_guardian; }
public BuildC(BuildType __buildType, BuildSize __buildSize, BuildMaterial __buildMaterial, float __health, float __burningRate, int __livingPlaces, int __toolsStorage, int __foodStorage, int __clothStorage) { _buildType = __buildType; _buildMaterial = __buildMaterial; _buildSize = __buildSize; _health = __health; _burningRate = __burningRate; _livingPlaces = __livingPlaces; _toolStorage = new ITool[__toolsStorage]; _foodStorage = new IFood[__foodStorage]; _clothStorage = new ICloth[__clothStorage]; }
///<returns> Return burning rate for build depending on material.</returns> public float GetBurningRate() { float _burningRate = 0; switch (_buildMaterial) { case BuildMaterial.Stone: _buildMaterial += 20; break; case BuildMaterial.Wood: _buildMaterial += 50; break; } return(_burningRate); }
private bool IsFinished() { /* * Check if player has put every part into the building */ foreach (var matN in matsNeeded) { BuildMaterial matL = BuildMaterial.GetByKey(matsLeft, matN.item); if (matL.count > 0) { return(false); } } return(true); }
public void UpdateTooltip() { /* * Updates the tooltip displaying the amount of materials needed and already put */ StringBuilder sb = new StringBuilder(); foreach (var matN in matsNeeded) { sb.Append(matN.item.name + ": "); BuildMaterial matL = BuildMaterial.GetByKey(matsLeft, matN.item); int matPut = matN.count - matL.count; sb.Append(matPut + "/" + matN.count + "\n"); } interactable._tooltipText = sb.ToString(); }
public void PickUpMaterial(BuildMaterial.Type type) { BuildMaterial closestMaterial = null; float distance = 1000; List <BuildMaterial> materialsOnLevel = new List <BuildMaterial>(); if (type == BuildMaterial.Type.Rock) { materialsOnLevel = new List <BuildMaterial>(gm.rock); } else if (type == BuildMaterial.Type.Wood) { materialsOnLevel = new List <BuildMaterial>(gm.wood); } foreach (BuildMaterial bm in materialsOnLevel) { if (!bm.usedInBuilding) { float newDistance = Vector3.Distance(transform.position, bm.transform.position); if (newDistance <= distance) { distance = newDistance; closestMaterial = bm; } } } if (closestMaterial != null) { closestMaterial.hc.characterWhoTargeted = hc; targetObject = closestMaterial.hc; hc.movement.Move(closestMaterial.gameObject); StartCoroutine(GetDistanceToTarget()); } else { Invoke("ChooseTask", 1); } }
public void AddMaterial(BuildMaterial bm) { materials.Add(bm); }
public void SetBuildMaterial(int __buildMaterial) { _buildMaterial = (BuildMaterial)__buildMaterial; }
public Tower(WorldDirection worldDirect, BuildMaterial buildMaterial, int attackdmg) : base(worldDirect, buildMaterial) { attackDmg = attackdmg; }
public Tower(int _MAX_defense, WorldDirection worldDirect, BuildMaterial buildMaterial, int attackdmg) : base(_MAX_defense, worldDirect, buildMaterial) { attackDmg = attackdmg; }
public Gate(WorldDirection worldDirect, BuildMaterial buildMaterial, bool isOpen) : base(worldDirect, buildMaterial) { isGateOpen = isOpen; }
public Gate(int _MAX_defense, WorldDirection worldDirect, BuildMaterial buildMaterial, bool isOpen) : base(_MAX_defense, worldDirect, buildMaterial) { isGateOpen = isOpen; }