コード例 #1
0
ファイル: SummonTrustsState.cs プロジェクト: PmanAce/EasyFarm
        private IPartyMemberTools FindPartyMember(BattleAbility trust)
        {
            if (string.IsNullOrEmpty(trust.Name))
            {
                return(null);
            }

            for (var i = 1; i < 6; i++)
            {
                var p    = EliteApi.PartyMember[(byte)i];
                var comp = trust.Name;
                if (comp.Contains("(UC)") || comp.Contains("II"))
                {
                    comp = comp.Replace(" (UC)", "");
                    comp = comp.Replace(" II", "");
                }

                if (p.UnitPresent && p.Name == comp)
                {
                    return(p);
                }
            }

            return(null);
        }
コード例 #2
0
    private List <BattleAbility> LoadAbilities(int id)
    {
        List <BattleAbility> abilities = new List <BattleAbility>();
        MenuWeaponData       weapon    = GetWeapon(id);

        if (weapon.name == "" || weapon.name == null)
        {
            Debug.LogError("Weapon does not exist");
        }
        int[] abilityIds = { weapon.abilities[0], weapon.abilities[1], weapon.abilities[2] };
        foreach (int abilityId in abilityIds)
        {
            MenuAbilityData abilityData = GetAbility(abilityId);
            BattleAbility   ability     = new BattleAbility();
            ability.abilityId   = abilityId;
            ability.name        = abilityData.name;
            ability.value       = abilityData.value;
            ability.xAxis       = abilityData.xAxis;
            ability.range       = abilityData.range;
            ability.abilityType = abilityData.type;
            ability.reticleType = abilityData.reticle;
            ability.targetType  = abilityData.target;
            abilities.Add(ability);
        }
        return(abilities);
    }
コード例 #3
0
ファイル: SummonTrustsState.cs プロジェクト: PmanAce/EasyFarm
        private bool TrustNeedsDismissal(BattleAbility trust)
        {
            var t = FindPartyMember(trust);

            if (t == null)
            {
                return(false);
            }

            // If the trust is set to be resummonable, respect the MP.
            if (trust.ResummonOnLowMP)
            {
                if (t.MPPCurrent <= trust.ResummonMPHigh && t.MPPCurrent >= trust.ResummonMPLow)
                {
                    return(true);
                }
            }

            // If the trust is set to be resummonable, respect the HP
            if (trust.ResummonOnLowHP)
            {
                if (t.HPPCurrent <= trust.ResummonHPHigh && t.HPPCurrent >= trust.ResummonHPLow)
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #4
0
ファイル: SummonTrustsState.cs プロジェクト: sruon/EasyFarm
        private bool TrustNeedsDismissal(IGameContext context, BattleAbility trust)
        {
            var t = FindPartyMember(context, trust);

            if (t == null)
            {
                return(false);
            }

            // If the trust is set to be resummonable, respect the MP.
            if (trust.ResummonOnLowMP)
            {
                if (t.MPPCurrent <= trust.ResummonMPHigh && t.MPPCurrent >= trust.ResummonMPLow)
                {
                    return(true);
                }
            }

            // If the trust is set to be resummonable, respect the HP
            if (trust.ResummonOnLowHP)
            {
                if (t.HPPCurrent <= trust.ResummonHPHigh && t.HPPCurrent >= trust.ResummonHPLow)
                {
                    return(true);
                }
            }

            if (trust.SummonedLevel < context.Player.Level)
            {
                return(true);
            }

            return(false);
        }
コード例 #5
0
        private void ReleaseTrust(IGameContext context, BattleAbility trust)
        {
            var comp    = NormalizeSpecialTrustNames(trust.Name);
            var command = string.Format("/refa {0}", comp);

            context.API.Windower.SendString(command);
        }
コード例 #6
0
 private bool TrustNeedsSummoning(IGameContext context, BattleAbility trust)
 {
     if (TrustInParty(context, trust) && TrustNeedsDismissal(context, trust))
     {
         ReleaseTrust(context, trust);
     }
     return(!TrustInParty(context, trust) && PartyHasSpace(context));
 }
コード例 #7
0
ファイル: SummonTrustsState.cs プロジェクト: PmanAce/EasyFarm
 private bool TrustNeedsSummoning(BattleAbility trust)
 {
     if (TrustInParty(trust) && TrustNeedsDismissal(trust))
     {
         ReleaseTrust(trust);
     }
     return(!TrustInParty(trust) && PartyHasSpace());
 }
コード例 #8
0
        public static BattleAbility FindAbility()
        {
            var battleAbility = new BattleAbility();

            battleAbility.IsEnabled = true;
            battleAbility.Name      = "valid";
            return(battleAbility);
        }
コード例 #9
0
            private static BattleAbility FindJobAbility(string actionName)
            {
                BattleAbility battleAbility = FindAbility();

                battleAbility.Name        = actionName;
                battleAbility.AbilityType = AbilityType.Jobability;
                battleAbility.TargetType  = TargetType.Self;
                return(battleAbility);
            }
コード例 #10
0
 public void AbilityPressed(BattleParticipant caster, BattleAbility ability)
 {
     abilityUseCaster  = caster;
     abilityUseAbility = ability;
     foreach (MenuCharacter mCharacter in menuCharacters)
     {
         mCharacter.GetComponent <Button>().enabled = true;
         mCharacter.GetComponent <Image>().color    = Color.yellow;
     }
 }
コード例 #11
0
 private void AddAbilities(List <BattleAbility> abilities)
 {
     for (int i = 0; i < abilities.Count; i++)
     {
         BattleAbility ability    = abilities[i];
         GameObject    newAbility = GameObject.FindWithTag("BattleAbilityPool").GetComponent <SimpleObjectPool>().GetObject();
         newAbility.transform.SetParent(this.transform);
         SampleAbility sampleAbility = newAbility.GetComponent <SampleAbility>();
         sampleAbility.Setup(ability, this);
     }
 }
コード例 #12
0
ファイル: BattleStateTests.cs プロジェクト: sruon/EasyFarm
        public void WithInvalidActionWillNotSendCommand()
        {
            // Fixture setup
            BattleAbility ability = FindAbility();

            ability.IsEnabled = false;
            context.Config.BattleLists["Battle"].Actions.Add(ability);
            // Exercise system
            sut.Run(context);
            // Verify outcome
            Assert.Null(context.MockAPI.Windower.LastCommand);
        }
コード例 #13
0
 public void UseAbilityOnCharacter(BattleParticipant target)
 {
     abilityUseCaster.UseAbility(target, abilityUseAbility);
     foreach (MenuCharacter mCharacter in menuCharacters)
     {
         mCharacter.ToggleAbilityButtons(false);
         mCharacter.GetComponent <Button>().enabled = false;
         mCharacter.GetComponent <Image>().color    = Color.white;
     }
     abilityUseCaster  = null;
     abilityUseAbility = null;
 }
コード例 #14
0
ファイル: BattleStateTests.cs プロジェクト: sruon/EasyFarm
        public void WithValidActionWillSendCommand()
        {
            // Fixture setup
            BattleAbility ability = FindAbility();

            ability.Command = "/jobability test <me>";
            context.Config.BattleLists["Battle"].Actions.Add(ability);
            // Exercise system
            sut.Run(context);
            // Verify outcome
            Assert.Equal("/jobability test <me>", context.MockAPI.Windower.LastCommand);
            // Teardown
        }
コード例 #15
0
        /// <summary>
        ///     Ensures a list has at least one ability item in it.
        /// </summary>
        public void KeepOne()
        {
            if (SelectedList == null)
            {
                return;
            }

            // Ensure there is atleast one ability.
            if (!SelectedList.Actions.Any())
            {
                var action = new BattleAbility();
                SelectedList.Actions.Add(action);
            }
        }
コード例 #16
0
ファイル: SummonTrustsState.cs プロジェクト: PmanAce/EasyFarm
        private void ReleaseTrust(BattleAbility trust)
        {
            var comp = trust.Name;

            if (comp.Contains("(UC)") || comp.Contains("II"))
            {
                comp = comp.Replace(" (UC)", "");
                comp = comp.Replace(" II", "");
            }

            var command = string.Format("/refa {0}", comp);

            EliteApi.Windower.SendString(command);
        }
コード例 #17
0
            public void WithInvalidActionWillNotSendCommand()
            {
                // Fixture setup
                BattleState sut = CreateSut();
                ObservableCollection <BattleAbility> actions = FindBattleActions();
                BattleAbility ability = FindJobAbility("test");

                ability.IsEnabled = false;
                actions.Add(ability);
                // Exercise system
                sut.Run();
                // Verify outcome
                Assert.Null(MockEliteAPI.Windower.LastCommand);
            }
コード例 #18
0
 public void callAbility(BattleAbility ability, List <BattleClick> targets)
 {
     if (ability.activeAbility.Equals("Phagocytosis Slash"))
     {
         ability7(ability.character, targets);
     }
     else if (ability.activeAbility.Equals("Devour"))
     {
         ability8(ability.character, targets);
     }
     else if (ability.activeAbility.Equals("Apoptosis"))
     {
         ability9(ability.character, targets);
     }
 }
コード例 #19
0
 public void UseAbility(BattleParticipant target, BattleAbility ability)
 {
     if (this.MP >= ability.cost)
     {
         this.MP -= ability.cost;
         int power = (this.MAGICATTACK + ability.damage) - target.MAGICDEFENSE;
         power = Mathf.Max(0, power);
         MessageBox.instance.setText($"{name} uses {ability.abilityName} on {target.name} for {power} damage!");
         target.HP -= power;
     }
     else
     {
         MessageBox.instance.setText($"{name} uses {ability.abilityName} on {target.name}! It failed!");
     }
 }
コード例 #20
0
            public void WithValidActionWillSendCommand()
            {
                // Fixture setup
                BattleState sut = CreateSut();
                ObservableCollection <BattleAbility> actions = FindBattleActions();
                BattleAbility ability = FindJobAbility("test");

                ability.Command = "/jobability test <me>";
                actions.Add(ability);
                // Exercise system
                sut.Run();
                // Verify outcome
                Assert.Equal("/jobability test <me>", MockEliteAPI.Windower.LastCommand);
                // Teardown
            }
コード例 #21
0
        public void Run_UsesWeaponSkill()
        {
            // Setup fixture
            BattleAbility battleAbility = AbstractTestBase.FindAbility();

            battleAbility.Command = "/test";
            _context.Config.BattleLists["Weaponskill"].Actions.Add(battleAbility);
            _context.SetTargetValid();
            _context.SetPlayerFighting();
            // Exercise system
            // Verify outcome
            _sut.Run(_context);
            Assert.Equal("/test", _context.Memory.Executor.LastCommand);
            // Teardown
        }
コード例 #22
0
    void Awake()
    {
        setEnemies();
        string text = File.ReadAllText("Assets/Resources/SaveFile.txt");

        characterIndexes = indexes(text, 9);
        for (int x = 0, y = 1; x < 9; x++)
        {
            if (characterIndexes[x] != 1000)
            {
                BattleAbility temp = GameObject.Find("Ability " + y++).GetComponent <BattleAbility>();
                temp.index  = characterIndexes[x];
                temp.active = true;
            }
        }
    }
コード例 #23
0
    public void Setup(BattleAbility currentAbility, SampleAbilityBar currentAbilityBar)
    {
        castRange    = currentAbility.range;
        xAxis        = currentAbility.xAxis;
        abilityValue = currentAbility.value;
        reticleType  = currentAbility.reticleType;
        targetType   = currentAbility.targetType;
        abilityType  = currentAbility.abilityType;
        string img           = currentAbility.abilityId.ToString() + ".jpg";
        Image  abilityIcon   = gameObject.GetComponentsInChildren <Image>()[1];
        Sprite abilitySprite = IMG2Sprite.instance.LoadNewSprite(Application.streamingAssetsPath + "/Abilities/" + img);

        abilityIcon.sprite = abilitySprite;
        abilityName.text   = currentAbility.name;
        ability            = currentAbility;
        sampleAbilityBar   = currentAbilityBar;
    }
コード例 #24
0
        /// <summary>
        /// Ignoring test since it will always hang right now.
        ///
        /// Ensure cast does not seem to proceed, and will loop indefintiely.
        /// </summary>
        public void UseBuffingActionsWillUseAbilityNameToCastCommand()
        {
            // Fixture setup
            BattleAbility battleAbility = FindAbility();

            battleAbility.Name        = "test";
            battleAbility.AbilityType = AbilityType.Magic;
            Executor sut = new Executor(MockEliteAPI.AsMemoryApi());

            // Exercise system
            sut.UseBuffingActions(new List <BattleAbility> {
                battleAbility
            });
            // Verify outcome
            Assert.Equal("/magic test <t>", MockEliteAPI.Windower.LastCommand);
            // Teardown
        }
コード例 #25
0
        private void ReleaseTrust(IGameContext context, BattleAbility trust)
        {
            var comp = trust.Name;

            if (comp.Contains("(UC)") || comp.Contains("II") || comp.Contains("AA"))
            {
                comp = comp.Replace(" (UC)", "");
                comp = comp.Replace(" II", "");
                comp = comp.Replace("AA", "Ark");
            }

            comp = comp.Replace(" ", "");

            var command = string.Format("/refa {0}", comp);

            context.API.Windower.SendString(command);
        }
コード例 #26
0
        /// <summary>
        ///     Add an move to the currently selected list.
        /// </summary>
        private void AddAction()
        {
            // Check to see if an ability is selected. If so, find the list with which to add the
            // new ability under.
            if (SelectedAbility != null)
            {
                SelectedList = FindListContainingAbility(SelectedAbility);
            }

            // Now, if the user has either selected an ability or a list,
            // add the new ability.
            if (SelectedList != null)
            {
                var action = new BattleAbility();
                SelectedList.Actions.Add(action);
            }
        }
コード例 #27
0
        private IPartyMemberTools FindPartyMember(IGameContext context, BattleAbility trust)
        {
            if (string.IsNullOrEmpty(trust.Name))
            {
                return(null);
            }

            for (var i = 1; i < 6; i++)
            {
                var p    = context.API.PartyMember[(byte)i];
                var comp = NormalizeSpecialTrustNames(trust.Name);
                if (p.UnitPresent && p.Name == comp)
                {
                    return(p);
                }
            }

            return(null);
        }
コード例 #28
0
        public void UsedTargetedActionsWillUseAbilityNameToCastCommand()
        {
            // Fixture setup
            BattleAbility battleAbility = FindAbility();

            battleAbility.Name        = "test";
            battleAbility.AbilityType = AbilityType.Magic;
            battleAbility.Command     = "/magic test <t>";
            IUnit    unit = FindUnit();
            Executor sut  = new Executor(MockGameAPI);

            // Exercise system
            sut.UseTargetedActions(new List <BattleAbility> {
                battleAbility
            }, unit);
            // Verify outcome
            Assert.Equal("/magic test <t>", MockGameAPI.Mock.Windower.LastCommand);
            // Teardown
        }
コード例 #29
0
    // For initializing the selected ability
    public void Init(BattleAbility ability)
    {
        Debug.Log(JsonUtility.ToJson(ability));
        SetTargetType(ability.targetType);
        SetAbilityType(ability.abilityType);
        CastRange = ability.range;
        SetAbilityDamage(ability.value);
        XAxis = ability.xAxis;
        SetReticleType(ability.reticleType);
        if (ability.status != null)
        {
            status = ability.status;
        }
        else
        {
            status = null;
        }

        TurnController.State = TurnController.TurnState.Attack;
    }
コード例 #30
0
 // For initializing the selected ability
 public void Init(BattleAbility ability, SampleAbility btn)
 {
     SetTargetType(ability.targetType);
     SetAbilityType(ability.abilityType);
     secondaryValue = ability.secondaryValue;
     CastRange      = ability.range;
     SetAbilityDamage(ability.value);
     XAxis = ability.xAxis;
     SetReticleType(ability.reticleType);
     if (ability.status != null)
     {
         status = ability.status;
     }
     else
     {
         status = null;
     }
     button = btn;
     Cost   = ability.cost;
     TurnController.State = TurnController.TurnState.Attack;
 }