void HandleInput() { Ray inputRay = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(inputRay, out hit)) { if (hit.collider.tag == "PlayerBase") { if (gc.IsBaseSelected) { gc.IsBaseSelected = false; gc.SetIsObjectSelected(false); gc.SelectedObject = null; } else { gc.IsBaseSelected = true; gc.SetIsObjectSelected(true); gc.SelectedObject = hit.collider.gameObject; gc.DeselectAllUnits(); } } if (hit.collider.tag == "Unit") { ub = hit.collider.GetComponent <UnitBehaviour>(); if (ub != null) { if (hit.collider.GetComponent <ObjectInfo>().ut != UnitTypes.Enemy) { gc.DeselectAllUnits(); ub.SelectUnit(); gc.IsBaseSelected = false; } } } if (hit.collider.tag == "AncBuilding") { gc.SelectedObject = hit.collider.gameObject; mh = hit.collider.GetComponent <MineHandler>(); oh = hit.collider.GetComponent <OutpostHandler>(); } } } }
// Update is called once per frame void Update() { if (tooltipOn == true) { tooltipPanel.SetActive(true); tooltip1.enabled = true; BuildingValue(); } if (tooltipOn == false) { tooltip1.enabled = false; tooltipPanel.SetActive(false); } if (uiChange != uiState) { if (uiState == "Main") { mainPanel.SetActive(true); heroesPanel.SetActive(false); governmentPanel.SetActive(false); marketPanel.SetActive(false); buildPanel.SetActive(false); buildCat.SetActive(false); buildingSelectedPanel.SetActive(false); buildGatheringPanel.SetActive(false); buildRefiningPanel.SetActive(false); //hireButton.onClick.RemoveAllListeners(); //questButton.onClick.RemoveAllListeners(); characterSelPanel.SetActive(false); armouryPanel.SetActive(false); tooltipOn = false; armouryOnPanel.SetActive(false); characterStatsPanel.SetActive(false); } if (uiState == "Build") { marketPanel.SetActive(false); buildPanel.SetActive(true); buildCat.SetActive(true); heroesPanel.SetActive(false); governmentPanel.SetActive(false); mainPanel.SetActive(false); buildGatheringPanel.SetActive(false); buildRefiningPanel.SetActive(false); buildingSelectedPanel.SetActive(false); tooltipOn = false; armouryPanel.SetActive(false); characterStatsPanel.SetActive(false); } if (uiState == "Building Selected") { buildingSelectedPanel.SetActive(true); heroesPanel.SetActive(false); governmentPanel.SetActive(false); buildPanel.SetActive(false); mainPanel.SetActive(false); buildGatheringPanel.SetActive(false); buildRefiningPanel.SetActive(false); buildCat.SetActive(false); characterSelPanel.SetActive(false); marketPanel.SetActive(false); armouryPanel.SetActive(false); characterStatsPanel.SetActive(false); } if (uiState == "Build Gathering") { marketPanel.SetActive(false); //buildPanel.SetActive(false); buildGatheringPanel.SetActive(true); buildCat.SetActive(false); heroesPanel.SetActive(false); governmentPanel.SetActive(false); mainPanel.SetActive(false); buildingSelectedPanel.SetActive(false); buildRefiningPanel.SetActive(false); tooltipOn = false; } if (uiState == "Build Refining") { marketPanel.SetActive(false); //buildPanel.SetActive(false); buildRefiningPanel.SetActive(true); buildCat.SetActive(false); heroesPanel.SetActive(false); governmentPanel.SetActive(false); mainPanel.SetActive(false); buildingSelectedPanel.SetActive(false); buildGatheringPanel.SetActive(false); tooltipOn = false; } if (uiState == "Build Heroes") { marketPanel.SetActive(false); //buildPanel.SetActive(false); heroesPanel.SetActive(true); buildCat.SetActive(false); governmentPanel.SetActive(false); mainPanel.SetActive(false); buildingSelectedPanel.SetActive(false); buildGatheringPanel.SetActive(false); buildRefiningPanel.SetActive(false); tooltipOn = false; } if (uiState == "Build Government") { marketPanel.SetActive(false); //buildPanel.SetActive(false); governmentPanel.SetActive(true); heroesPanel.SetActive(false); buildCat.SetActive(false); mainPanel.SetActive(false); buildingSelectedPanel.SetActive(false); buildGatheringPanel.SetActive(false); buildRefiningPanel.SetActive(false); tooltipOn = false; } if (uiState == "CharacterSelected") { characterSelPanel.SetActive(true); buildPanel.SetActive(false); governmentPanel.SetActive(false); heroesPanel.SetActive(false); buildCat.SetActive(false); mainPanel.SetActive(false); buildingSelectedPanel.SetActive(false); buildGatheringPanel.SetActive(false); buildRefiningPanel.SetActive(false); tooltipOn = false; armouryPanel.SetActive(false); marketPanel.SetActive(false); armouryOnPanel.SetActive(false); } } uiChange = uiState; if (uiState == "CharacterSelected") { characterPanelButton.enabled = false; if (characterRef) { armourIcon.sprite = emptyInventory; string name = "No Name", className = "No Class", level = "1"; CharacterHealthHandler healthRef = characterRef.GetComponent <CharacterHealthHandler>(); CharacterStats statsRef = characterRef.GetComponent <CharacterStats>(); healthBar.maxValue = healthRef.maxHealth; healthBar.value = healthRef.currentHealth; if (characterRef.tag != "Hero") { questButton.interactable = true; questButton.onClick.AddListener(() => { QuestDatabase.questDB.AddQuest(characterRef); }); characterName.text = "Enemy"; characterHP.text = "Health: " + characterRef.GetComponent <CharacterHealthHandler>().currentHealth; } else { weaponIcon.color = new Color(1, 1, 1, 0); Color noAlpha = new Color(armourIcon.color.r, armourIcon.color.g, armourIcon.color.b, 1); questButton.interactable = false; characterHP.text = "Health: " + characterRef.GetComponent <CharacterHealthHandler>().currentHealth; //hireButton.enabled = false; //upgradeButton.enabled = false; if (characterRef.GetComponent <WarriorHandler>()) { weaponIcon.color = new Color(1, 1, 1, 0); WarriorHandler warRef = characterRef.GetComponent <WarriorHandler>(); name = characterRef.GetComponent <WarriorHandler>().myName; characterName.text = "Name: " + name; className = "Warrior"; characterPanelButton.enabled = true; if (warRef.tier1Weapon) { weaponIcon.sprite = meleeWT1Sprite; weaponIcon.color = noAlpha; } } if (characterRef.GetComponent <RangerHandler>()) { RangerHandler rangerRef = characterRef.GetComponent <RangerHandler>(); name = characterRef.GetComponent <RangerHandler>().myName; characterName.text = "Name: " + name; className = "Ranger"; characterPanelButton.enabled = true; if (rangerRef.tier1Weapon) { weaponIcon.sprite = rangedWT1Sprite; weaponIcon.color = noAlpha; } } } if (characterStatsPanel.activeSelf) { characterStatsTxt.text = "Strenght:" + statsRef.strenght + "\nAgility:" + statsRef.agility + "\nStamina:" + statsRef.stamina + "\nIntelect:" + statsRef.intelect + "\nArmour:" + statsRef.armor + "\nMoney:" + characterRef.GetComponent <HeroMoney>().currentMoney; characterDetailsTxt.text = "Name: " + name + "\nClass: " + className + "\nLevel: " + level; } } //else uiState = "Main"; } //building selected block if (uiState == "Building Selected") { ////////////////////////////////////////////Carpentry Block////////////////////////////////////// if (selectedBuilding == "Carpenter") { hireButton.interactable = true; CarpentryHandler carpenterRef = buildingRef.GetComponent <CarpentryHandler>(); if (carpenterRef.buildingOn) { carpenterMoney.text = "Carpenter Available Money: " + (int)carpenterRef.carpentryMoney; hireButton.interactable = false; workProgress.enabled = true; } else { hireButton.interactable = true; workProgress.enabled = false; } if (lastBSelected != buildingRef) { lastBSelected = buildingRef; //hireButtonRef.SetActive(false); txt_buildingName.text = buildingRef.tag; hireButton.onClick.RemoveAllListeners(); hireButton.onClick.AddListener(carpenterRef.HireCarpenter); } if (carpenterRef.buildBed) { workProgress.text = "Constructing Bed: " + Mathf.RoundToInt(carpenterRef.workProgress) + "%"; } if (carpenterRef.buildTable) { workProgress.text = "Constructing Table: " + Mathf.RoundToInt(carpenterRef.workProgress) + "%"; } if (carpenterRef.buildChair) { workProgress.text = "Constructing Chair: " + Mathf.RoundToInt(carpenterRef.workProgress) + "%"; } if (!carpenterRef.buildBed && !carpenterRef.buildTable && !carpenterRef.buildChair) { workProgress.text = "No money for raw resources"; } } else { carpenterMoney.text = ""; } //////////////Armoury block//////////////////////////////////// if (selectedBuilding == "Armoury") { ArmoryHandler armRef = buildingRef.GetComponent <ArmoryHandler>(); if (lastBSelected != buildingRef) { armouryChange = true; lastBSelected = buildingRef; txt_buildingName.text = buildingRef.tag; armouryHire.onClick.RemoveAllListeners(); buildingSelectedPanel.SetActive(false); armouryPanel.SetActive(true); } armouryMoney.text = "Available Money: " + armRef.armouryMoney; if (armRef.working) { armouryWorkingPercent.text = "Working: " + (int)armRef.workProgress; } else { armouryWorkingPercent.text = ""; } if (armouryChange) { buildingSelectedPanel.SetActive(false); armouryChange = false; if (armRef.buildingOn) { buildingSelectedPanel.SetActive(false); armouryPanel.SetActive(false); armouryOnPanel.SetActive(true); armouryOffPanel.SetActive(false); if (armRef.meleeTier1) { armouryMTier1.SetActive(true); armouryMeleeT1Count.text = armRef.tier1MCount.ToString(); } else { armouryMTier1.SetActive(false); } if (armRef.meleeTier2) { armouryMTier2.SetActive(true); } else { armouryMTier2.SetActive(false); } if (armRef.meleeTier3) { armouryMTier3.SetActive(true); } else { armouryMTier3.SetActive(false); } if (armRef.rangedTier1) { armouryRTier1.SetActive(true); armouryRangedT1Count.text = armRef.tier1RCount.ToString(); } else { armouryRTier1.SetActive(false); } if (armRef.rangedTier2) { armouryRTier2.SetActive(true); } else { armouryRTier2.SetActive(false); } if (armRef.rangedTier3) { armouryRTier3.SetActive(true); } else { armouryRTier3.SetActive(false); } } else { armouryPanel.SetActive(true); armouryOnPanel.SetActive(false); armouryOffPanel.SetActive(true); armouryHire.onClick.AddListener(armRef.HireSmith); buildingSelectedPanel.SetActive(false); } } } else { armouryOnPanel.SetActive(false); } if (selectedBuilding == "Farmhouse") { hireButton.interactable = true; FarmhouseHandler farmRef = buildingRef.GetComponent <FarmhouseHandler>(); if (farmRef.buildingOn) { hireButton.interactable = false; workProgress.enabled = true; } else { hireButton.interactable = true; workProgress.enabled = false; } if (lastBSelected != buildingRef) { debugResource.text = farmRef.grainAmmount.ToString(); lastBSelected = buildingRef; //hireButtonRef.SetActive(false); txt_buildingName.text = buildingRef.tag; hireButton.onClick.RemoveAllListeners(); hireButton.onClick.AddListener(farmRef.HireWorker); } farmRef.grainAmmount = int.Parse(debugResource.text); //DEBUG STUFF workProgress.text = "Growing Crops: " + (int)farmRef.progressGrain + "%"; } if (selectedBuilding == "Mine") { hireButton.interactable = true; MineHandler mineRef = buildingRef.GetComponent <MineHandler>(); if (mineRef.buildingOn) { hireButton.interactable = false; workProgress.enabled = true; } else { hireButton.interactable = true; workProgress.enabled = false; } if (lastBSelected != buildingRef) { debugResource.text = mineRef.ironAmmount.ToString(); lastBSelected = buildingRef; //hireButtonRef.SetActive(false); txt_buildingName.text = buildingRef.tag; hireButton.onClick.RemoveAllListeners(); hireButton.onClick.AddListener(mineRef.HireMiner); } mineRef.ironAmmount = int.Parse(debugResource.text); if (mineRef.mining) { workProgress.text = "Mining: " + (int)mineRef.progressMining + "%"; } if (mineRef.processingOre) { workProgress.text = "Smelting: " + (int)mineRef.progressSmelt + "%"; } } if (selectedBuilding == "Quarry") { QuarryHandler quarryRef = buildingRef.GetComponent <QuarryHandler>(); if (lastBSelected != buildingRef) { debugResource.text = quarryRef.stoneAmmount.ToString(); lastBSelected = buildingRef; //hireButtonRef.SetActive(false); txt_buildingName.text = buildingRef.tag; hireButton.onClick.RemoveAllListeners(); hireButton.onClick.AddListener(quarryRef.HireWorker); } quarryRef.stoneAmmount = int.Parse(debugResource.text); if (quarryRef.buildingOn) { hireButton.interactable = false; workProgress.enabled = true; } else { hireButton.interactable = true; workProgress.enabled = false; } workProgress.text = "Cutting Stone: " + (int)quarryRef.progressStone + "%"; } if (selectedBuilding == "Lumber Mill") { LumberMillHandler lMRef = buildingRef.GetComponent <LumberMillHandler>(); if (lMRef.buildingOn) { hireButton.interactable = false; workProgress.enabled = true; } else { hireButton.interactable = true; workProgress.enabled = false; } workProgress.text = "Processing Wood: " + (int)lMRef.processingPercent + "%"; if (moneyRef.currentMoney > lMRef.upgradeCost) { upgradeButton.interactable = true; upgradeButton.onClick.RemoveAllListeners(); upgradeButton.onClick.AddListener(lMRef.UpgradeBuilding); } else { upgradeButton.interactable = false; } if (lastBSelected != buildingRef) { debugResource.text = lMRef.woodAmmount.ToString(); lastBSelected = buildingRef; hireButton.enabled = true; txt_buildingName.text = buildingRef.tag; hireButton.onClick.RemoveAllListeners(); hireButton.onClick.AddListener(lMRef.HireLumberjack); } lMRef.woodAmmount = int.Parse(debugResource.text); } //else workProgress.text = ""; if (selectedBuilding == "Warrior Guild") { hireButton.interactable = true; if (lastBSelected != buildingRef) { workProgress.enabled = false; lastBSelected = buildingRef; txt_buildingName.text = buildingRef.tag; hireButton.onClick.RemoveAllListeners(); hireButton.onClick.AddListener(buildingRef.GetComponent <HeroHallHandler>().CreateWarrior); } } if (selectedBuilding == "Archery Guild") { hireButton.interactable = true; if (lastBSelected != buildingRef) { workProgress.enabled = false; lastBSelected = buildingRef; txt_buildingName.text = buildingRef.tag; hireButton.onClick.RemoveAllListeners(); hireButton.onClick.AddListener(buildingRef.GetComponent <HeroHallHandler>().CreateRanger); } } ////////////////////////Market block///////////////////////////////// if (selectedBuilding == "Market") { MarketHandler marketRef = buildingRef.GetComponent <MarketHandler>(); if (lastBSelected != buildingRef) { mRef = buildingRef.GetComponent <MarketHandler>(); marketState = "Main"; marketChange = true; lastBSelected = buildingRef; txt_buildingName.text = buildingRef.tag; hireButton.onClick.RemoveAllListeners(); } if (marketState == "Main" && marketChange) { marketChange = false; marketMainPanel.SetActive(true); marketPanel.SetActive(true); marketBuyPanel.SetActive(false); buildingSelectedPanel.SetActive(false); marketAutomationPanel.SetActive(false); marketInventoryPanel.SetActive(false); return; } if (marketState == "Buy") { if (marketChange) { marketBuyPanel.SetActive(true); marketChange = false; marketMainPanel.SetActive(false); marketAutomationPanel.SetActive(false); marketInventoryPanel.SetActive(false); if (!marketSetup) { marketSetup = true; marketM1.interactable = false; marketM1.onClick.AddListener(marketRef.marketMultiplierX1); marketM5.onClick.AddListener(marketRef.marketMultiplierX5); marketM10.onClick.AddListener(marketRef.marketMultiplierX10); marketM50.onClick.AddListener(marketRef.marketMultiplierX50); marketBuyIron.onClick.AddListener(marketRef.BuyIron); marketSellIron.onClick.AddListener(marketRef.SellIron); marketBuyWood.onClick.AddListener(marketRef.BuyWood); marketSellWood.onClick.AddListener(marketRef.SellWood); marketBuyStone.onClick.AddListener(marketRef.BuyStone); marketSellStone.onClick.AddListener(marketRef.SellStone); marketBuyGrain.onClick.AddListener(marketRef.BuyGrain); marketSellGrain.onClick.AddListener(marketRef.SellGrain); } } if (tooltipOn) { marketRef.AddTooltip(marketTooltip); } return; } if (marketState == "Automate") { if (marketChange) { marketAutomationPanel.SetActive(true); marketChange = false; marketMainPanel.SetActive(false); marketBuyPanel.SetActive(false); marketInventoryPanel.SetActive(false); return; } } if (marketState == "Inventory" && marketChange) { marketInventoryPanel.SetActive(true); marketChange = false; marketMainPanel.SetActive(false); marketBuyPanel.SetActive(false); marketAutomationPanel.SetActive(false); } if (marketState == "Inventory") { marketIron.text = "Iron: " + moneyRef.currentIron; marketWood.text = "Wood: " + moneyRef.currentWood; marketStone.text = "Stone: " + moneyRef.currentStone; marketGems.text = "Gems: " + moneyRef.currentGems; } ////////////////////////////////////////////////////////////////////////////////////////////////// } else { if (marketState != "") { //marketMainPanel.SetActive(false); marketPanel.SetActive(false); marketBuyPanel.SetActive(false); marketState = ""; marketInventoryPanel.SetActive(false); marketAutomationPanel.SetActive(false); //buildingSelectedPanel.SetActive(true); } } } ///////////////////////////////////////building selected block end////////////////////////////////////////////////////////////////////////////// }