Beispiel #1
0
    private void SelectMenuChoice()
    {
        if (checkingWeapons)
        {
            Weapon weapon = weaponList[menuCursorPosition - 1];
            if (weapon != null && MapUIInfo.selectedAllyUnit_AllyStats.CanUseWeapon(weapon))
            {
                EquipWeapon(weapon);
                MapUIInfo.tileController.SetCurrentTile(MapUIInfo.selectedAllyUnit);
                if (MapUIInfo.tileController.EnemyInRange(MapUIInfo.selectedAllyUnit_AllyStats.GetMinRange(), MapUIInfo.selectedAllyUnit_AllyStats.GetMaxRange()))
                {
                    MapUIInfo.tileController.ShowWeaponRange(MapUIInfo.selectedAllyUnit_AllyStats.GetMinRange(),
                                                             MapUIInfo.selectedAllyUnit_AllyStats.GetMaxRange());
                    MapUIInfo.mapManager.unitState = UnitStates.FINDING_TARGET;
                }
            }
        }
        else if (checkingItems)
        {
            if (unitInventory[menuCursorPosition - 1] != null && unitInventory[menuCursorPosition - 1].GetType() == typeof(Weapon) &&
                MapUIInfo.selectedAllyUnit_AllyStats.CanUseWeapon(menuCursorPosition - 1))
            {
                EquipWeapon();
            }
            else if (unitInventory[menuCursorPosition - 1] != null && unitInventory[menuCursorPosition - 1].GetType() == typeof(HealingItem))
            {
                HealingItem item = (HealingItem)unitInventory[menuCursorPosition - 1];
                MapUIInfo.selectedAllyUnit_AllyStats.hp += item.healAmount;
                if (MapUIInfo.selectedAllyUnit_AllyStats.hp > MapUIInfo.selectedAllyUnit_AllyStats.maxHP)
                {
                    MapUIInfo.selectedAllyUnit_AllyStats.hp = MapUIInfo.selectedAllyUnit_AllyStats.maxHP;
                }
                item.currentUses--;
                if (item.currentUses == 0)
                {
                    unitInventory[menuCursorPosition - 1] = null;
                }
                MapUIInfo.selectedAllyUnit_AllyStats.finishedTurn = true;
                MapUIInfo.mapManager.unitState = UnitStates.MOVED;
            }
        }

        else if (checkingBlackMagic && (menuCursorPosition - 1) < MapUIInfo.selectedAllyUnit_AllyStats.blackMagic.Count)
        {
            MapUIInfo.tileController.SetCurrentTile(MapUIInfo.selectedAllyUnit);
            EquipBlackMagic();
            if (MapUIInfo.tileController.EnemyInRange(MapUIInfo.selectedAllyUnit_AllyStats.GetMinRange(), MapUIInfo.selectedAllyUnit_AllyStats.GetMaxRange()))
            {
                MapUIInfo.tileController.ShowWeaponRange(MapUIInfo.selectedAllyUnit_AllyStats.equippedBlackMagic.minRange,
                                                         MapUIInfo.selectedAllyUnit_AllyStats.equippedBlackMagic.maxRange);
                MapUIInfo.mapManager.unitState = UnitStates.FINDING_TARGET;
            }
        }

        else if (checkingWhiteMagic)
        {
            MapUIInfo.tileController.SetCurrentTile(MapUIInfo.selectedAllyUnit);
            EquipWhiteMagic();
            HealingMagic temp = (HealingMagic)MapUIInfo.selectedAllyUnit_AllyStats.whiteMagic[menuCursorPosition - 1];
            if (temp && MapUIInfo.tileController.AllyInRange(temp.minRange, temp.maxRange))
            {
                MapUIInfo.mapManager.unitState = UnitStates.FINDING_ALLY;
                MapUIInfo.tileController.FindHealableTiles(temp.minRange, temp.maxRange);
            }
        }
    }
Beispiel #2
0
    private void UpdateItemSlotInfo(int index)
    {
        MapUIInfo.tileController.RemoveSelectableTiles();
        MapUIInfo.tileController.SetCurrentTile(MapUIInfo.selectedAllyUnit);
        string damage, hitRate, critRate, range, heal;

        if (checkingItems)
        {
            actionMenuDisplay.itemInfo.staticTextDmgHeal.text = "Damage";
            if (unitInventory[index] && unitInventory[index].GetType() == typeof(Weapon))
            {
                Weapon weapon = ((Weapon)unitInventory[index]);
                MapUIInfo.tileController.ShowWeaponRange(weapon.minRange, weapon.maxRange);
                damage   = weapon.dmg.ToString();
                hitRate  = weapon.hitRate.ToString();
                critRate = weapon.critRate.ToString();
                if (weapon.minRange == weapon.maxRange)
                {
                    range = weapon.minRange.ToString();
                }
                else
                {
                    range = weapon.minRange + "-" + weapon.maxRange;
                }

                actionMenuDisplay.UpdateItemInfo(damage, hitRate, critRate, range);
            }
            else
            {
                actionMenuDisplay.UpdateItemInfo("-", "-", "-", "-");
            }
        }
        else if (checkingBlackMagic)
        {
            actionMenuDisplay.itemInfo.staticTextDmgHeal.text = "Damage";
            if (index < MapUIInfo.selectedAllyUnit_AllyStats.blackMagic.Count)
            {
                OffensiveMagic blackMagic = (OffensiveMagic)MapUIInfo.selectedAllyUnit_AllyStats.blackMagic[index];
                MapUIInfo.tileController.ShowWeaponRange(blackMagic.minRange, blackMagic.maxRange);
                damage   = blackMagic.dmg.ToString();
                hitRate  = blackMagic.hitRate.ToString();
                critRate = "0";
                if (blackMagic.minRange == blackMagic.maxRange)
                {
                    range = blackMagic.minRange.ToString();
                }
                else
                {
                    range = blackMagic.minRange + "-" + blackMagic.maxRange;
                }

                actionMenuDisplay.UpdateItemInfo(damage, hitRate, critRate, range);
            }
            else
            {
                actionMenuDisplay.UpdateItemInfo("-", "-", "-", "-");
            }
        }
        else if (checkingWhiteMagic)
        {
            actionMenuDisplay.itemInfo.staticTextDmgHeal.text = "Heal";
            if (index < MapUIInfo.selectedAllyUnit_AllyStats.whiteMagic.Count)
            {
                HealingMagic whiteMagic = (HealingMagic)MapUIInfo.selectedAllyUnit_AllyStats.whiteMagic[index];
                heal     = whiteMagic.GetHealAmount(MapUIInfo.selectedAllyUnit_AllyStats.mag).ToString();
                hitRate  = whiteMagic.hitRate.ToString();
                critRate = "0";
                if (whiteMagic.minRange == whiteMagic.maxRange)
                {
                    range = whiteMagic.minRange.ToString();
                }
                else
                {
                    range = whiteMagic.minRange + "-" + whiteMagic.maxRange;
                }

                actionMenuDisplay.UpdateItemInfo(heal, hitRate, critRate, range);
            }
            else
            {
                actionMenuDisplay.UpdateItemInfo("-", "-", "-", "-");
            }
        }
    }