public void Unequip(EquipSlot Slot) { if (inventoryManager.inventory.Count < 12) { EquippableItem item = EquippedItemsArray[(int)Slot]; EquippedItemsArray[(int)Slot] = null; MessageSystem.Print($"{item.Name} is unequiped on {gameObject.name}."); itemEquipGraphics.UnequipItem(Slot); characterSkills.RemoveFromSkillList(item); if (healthBar) { healthBar.UpdateHealthBar(GetComponent <Controller>().Health); } inventoryManager.AddItemToInventory(item); } else { MessageSystem.Print("Inventory is full"); } #region Skill Manager Update GameObject battleSystemGO = GameObject.Find("BattleSystem"); if (battleSystemGO) { SkillManager skillManager = battleSystemGO.GetComponent <SkillManager>(); skillManager.RenderSkillSlots(); } #endregion Skill Manager Update equippedItemsUI.UpdateUI(Slot); }
public IEnumerator MoveForwards(Controller current, Controller opponent) { float margin = 5f; current.Animator.SetTrigger("Walk"); float maximumMovementAndDirection = (current.UnitStats.GetStat(EStats.MoveSpeed) * (int)Mathf.Sign(current.transform.localScale.x)); float distanceBetweenCharacters = Mathf.Abs(current.transform.position.x - opponent.transform.position.x); float finalPositionX; float viableMovement = distanceBetweenCharacters - margin; if (Mathf.Abs(maximumMovementAndDirection) > viableMovement) { float opponentSlowValue; if (distanceBetweenCharacters > margin) { finalPositionX = current.transform.position.x + viableMovement * (int)Mathf.Sign(current.transform.localScale.x); opponentSlowValue = current.UnitStats.GetStat(EStats.MoveSpeed) - viableMovement; } else { finalPositionX = current.transform.position.x; opponentSlowValue = current.UnitStats.GetStat(EStats.MoveSpeed); } opponent.CharacterActiveEffects.AddEffect(new StatChangeEffect(3, EStats.MoveSpeed, -opponentSlowValue)); MessageSystem.Print("Opponent slowed"); } else { finalPositionX = current.transform.position.x + maximumMovementAndDirection; } finalPositionX = battleSystem.ConstrainXMovement(finalPositionX); yield return(StartCoroutine(current.UnitMovement.MoveUnit(finalPositionX, current.AnimationDurations.WalkTime))); }
// Start is called before the first frame update private void Start() { myFile.Delete(); if (myFile.FileExists()) { if (myFile.Load()) { LoadInventory(); LoadEquipment(); LoadShop(); // Gold gold.ChangeGold(myFile.GetInt("gold", defaultValue: 5000)); // Encounter gameManager.nextEncounterNumber = myFile.GetInt("encounter", defaultValue: 1); } else { MessageSystem.Print("Load Failed!"); } } else { gold.ChangeGold(5000); shop.GenerateItems(); SaveInventory(); } myFile.Dispose(); }
public virtual IEnumerator Equip(EquippableItem item) { // Base implementation reverts the actions, if it's not the player's turn. BattleSystem.Player.GetComponent <PlayerEquippedItems>().Unequip(item.Slot); MessageSystem.Print("Not player turn"); yield break; }
public override IEnumerator Start() { SetUpBattle(); MessageSystem.Print("The battle has begun"); yield return(new WaitForSeconds(0.1f)); BattleSystem.SetState(new PlayerTurn(BattleSystem)); }
public override IEnumerator Start() { MessageSystem.Print("Player has lost the match"); ResetCharacters(); CleanScene(); GameObject.Find("UI").GetComponent <UIContainer>().gold.ChangeGold(-500); LoadTown(); return(base.Start()); }
private bool CriticalCheck(Controller current) { bool isCritical = current.TryCritical(); if (isCritical) { MessageSystem.Print("Critical hit!"); } return(isCritical); }
private bool EvadeCheck(Controller opponent, float currentAccuracy) { bool evaded = opponent.TryEvade(currentAccuracy); if (evaded) { MessageSystem.Print("Attack was evaded"); opponent.Animator.SetTrigger("Evade"); } return(evaded); }
public override IEnumerator Start() { MessageSystem.Print("Player has won the match"); ResetCharacters(); CleanScene(); GameObject.Find("UI").GetComponent <UIContainer>().gold.ChangeGold(500); GameObject.Find("UI").transform.GetChild(0).GetComponent <InventoryManager>().AddItemToInventory(ItemGenerator.GenerateItem(GameManager.instance.GetTier())); GameObject.Find("GameManager").GetComponent <GameManager>().nextEncounterNumber += 1; LoadTown(); return(base.Start()); }
public virtual void ForceEquip(EquippableItem item) { EquippedItemsArray[(int)item.Slot] = item; MessageSystem.Print($"{item.Name} is equiped on {gameObject.name}."); itemEquipGraphics.EquipItem(item); characterSkills.AddToSkillList(item); if (healthBar) { healthBar.UpdateHealthBar(GetComponent <Controller>().Health); } }
public override IEnumerator Start() { BattleSystem.skillsContainer.SetActive(true); // TODO: Check if player dead, set lost state if is BattleSystem.Player.characterCooldowns.ReduceAllCooldownsByOne(); BattleSystem.Enemy.characterCooldowns.ReduceAllCooldownsByOne(); BattleSystem.GetComponent <SkillManager>().RenderSkillCooldowns(); float playerAttackRange = BattleSystem.Player.UnitStats.GetStat(EStats.AttackRange); BattleSystem.GetComponent <SkillManager>().DisableOutOfRangeSkills(BattleSystem.GetDistanceBetweenFighters(), playerAttackRange); MessageSystem.Print("Player Turn"); yield break; }
public void AddItemToShop(EquippableItem item) { if (inventory.Count < shopCapacity) { inventory.Add(item); if (shopUI) { shopUI.UpdateUI(); } } else { MessageSystem.Print("Inventory is full."); } }
public void AddItemToInventory(EquippableItem item) { if (inventory.Count < 12) { inventory.Add(item); if (inventoryUIManager) { inventoryUIManager.UpdateUI(); } MessageSystem.Print($"{item.Name} was added to inventory"); } else { MessageSystem.Print("Inventory is full."); } }
private void LoadShop() { List <EquippableItem> shopItemsToAdd = (List <EquippableItem>)myFile.GetDeserialized("shop", typeof(List <EquippableItem>)); if (shopItemsToAdd == null) { MessageSystem.Print("Loaded Null"); return; } else { MessageSystem.Print("File Loaded Successfully"); } foreach (EquippableItem item in shopItemsToAdd) { shop.AddItemToShop(item); } }
private void LoadInventory() { List <EquippableItem> itemToAdd = (List <EquippableItem>)myFile.GetDeserialized("inventory", typeof(List <EquippableItem>)); if (itemToAdd == null) { MessageSystem.Print("Loaded Null"); return; } else { MessageSystem.Print("File Loaded Successfully"); } foreach (EquippableItem item in itemToAdd) { inventoryManager.AddItemToInventory(item); } }
public IEnumerator Execute(Controller current, Controller opponent) { AddSkillCooldown(current, ESkills.Execute, 9); current.Animator.SetTrigger("Slash"); if (!EvadeCheck(opponent, current.UnitStats.GetStat(EStats.Accuracy))) { if (opponent.Health < opponent.UnitStats.GetStat(EStats.Health) / 100 * 50) { GetAttacked(current, opponent, skillMultiplier: 10); MessageSystem.Print("Executed!"); } else { GetAttacked(current, opponent); } } yield return(new WaitForSeconds(current.AnimationDurations.SlashTime)); }
private void LoadEquipment() { EquippableItem[] eqItemsToAdd = (EquippableItem[])myFile.GetDeserialized("eqItems", typeof(EquippableItem[])); if (eqItemsToAdd == null) { MessageSystem.Print("Loaded Null"); return; } else { MessageSystem.Print("File Loaded Successfully"); } foreach (EquippableItem eqItem in eqItemsToAdd) { if (eqItem != null) { Player.GetComponent <PlayerEquippedItems>().ForceEquip(eqItem); } } }
public void BuyItem(EquippableItem item) { if (inventoryManager.inventory.Count >= 12) { MessageSystem.Print("Not enough space in inventory."); return; } int BuyPrice = (int)item.SellPrice * 5; if (gold.Wealth >= BuyPrice) { RemoveItemFromShop(item); gold.ChangeGold(-BuyPrice); inventoryManager.AddItemToInventory(item); } else { MessageSystem.Print("Not enough gold!"); } }
public void DisableOutOfRangeSkills(float distance, float unitAttackRange) { int i = 0; foreach (ESkills skill in characterSkills.characterSkills) { // Disables out of range skill if (distance > unitAttackRange + Skills.instance.skillsList[skill].SkillRange) { skillSlots[i].GetComponent <Image>().color = Color.red; int cooldown = battleSystem.Player.characterCooldowns.cooldowns[skill]; if (cooldown > 0) { skillSlots[i].gameObject.GetComponentInChildren <TextMeshProUGUI>().text = cooldown.ToString(); } skillSlots[i].GetComponent <Button>().onClick.RemoveAllListeners(); skillSlots[i].GetComponent <Button>().onClick.AddListener(() => MessageSystem.Print("Out of range")); } i++; } }
public override IEnumerator Start() { //orderList[AIOrders.MoveLeft] = () => Move(-1); //orderList[AIOrders.MoveRight] = () => Move(1); //orderList[AIOrders.Attack] = Attack; //orderList[AIOrders.UseSkill] = UseSkill(); MessageSystem.Print("Enemy Turn"); if (BattleSystem.Enemy.Health <= 0) { BattleSystem.SetState(new Won(BattleSystem)); yield break; } BattleSystem.Player.GetComponent <CharacterActiveEffects>().TriggerEffects(); BattleSystem.playerOverTimeEffectManager.RefreshOverTimeEffectUI(); BattleSystem.enemyOverTimeEffectManager.RefreshOverTimeEffectUI(); UseSkillHandler order = BattleSystem.Enemy.GetComponent <EnemyAI>().DecideOrder(BattleSystem); yield return(order(BattleSystem.Enemy, BattleSystem.Player)); DecideNextState(); }
public void RenderSkillCooldowns() { int i = 0; foreach (ESkills skill in characterSkills.characterSkills) { int cooldown = battleSystem.Player.characterCooldowns.cooldowns[skill]; if (cooldown > 0) { skillSlots[i].GetComponent <Image>().color = Color.grey; skillSlots[i].gameObject.GetComponentInChildren <TextMeshProUGUI>().text = cooldown.ToString(); skillSlots[i].GetComponent <Button>().onClick.RemoveAllListeners(); skillSlots[i].GetComponent <Button>().onClick.AddListener(() => MessageSystem.Print("On cooldown.")); } else { skillSlots[i].gameObject.GetComponentInChildren <TextMeshProUGUI>().text = Skills.instance.skillsList[skill].Name; skillSlots[i].GetComponent <Image>().color = Color.white; skillSlots[i].GetComponent <Button>().onClick.RemoveAllListeners(); skillSlots[i].GetComponent <Button>().onClick.AddListener(() => battleSystem.OnSkillButton(Skills.instance.skillsList[skill].Effect)); } i++; } }
private void Die() { // TODO: Death animation, sound etc. MessageSystem.Print("Enemy is dead"); }
public override IEnumerator Start() { BattleSystem.skillsContainer.SetActive(false); MessageSystem.Print("Action chosen"); return(base.Start()); }
public void RemoveItemFromInventory(EquippableItem item) { inventory.Remove(item); inventoryUIManager.UpdateUI(); MessageSystem.Print($"{item.Name} was removed from inventory"); }