Beispiel #1
0
 public void AutoPlayCharacterAndAttackSelectFunction(CharacterStateControl currentCharacter)
 {
     currentCharacter.isSelectSkill = 0;
     CharacterStateControl[] aliveCharacters = CharacterStateControl.GetAliveCharacters(base.battleStateData.enemies);
     CharacterStateControl[] array           = CharacterStateControlSorter.SortedTargetSelect(aliveCharacters, currentCharacter.currentSkillStatus, null);
     currentCharacter.targetCharacter = array[0];
 }
Beispiel #2
0
    public void EnemyAICharacterAndSkillSelectFunction(CharacterStateControl currentCharacters)
    {
        EnemyAIPattern  enemyAiPattern       = currentCharacters.enemyStatus.enemyAiPattern;
        AIActionPattern currentActionPattern = enemyAiPattern.GetCurrentActionPattern(currentCharacters, base.battleStateData.currentRoundNumber - 1);
        AIActionClip    randomActionClip     = currentActionPattern.GetRandomActionClip();
        int             isSelectSkill        = currentCharacters.SkillIdToIndexOf(base.stateManager.publicAttackSkillId);

        if (!currentCharacters.currentSufferState.FindSufferState(SufferStateProperty.SufferType.SkillLock))
        {
            int num = currentCharacters.SkillIdToIndexOf(randomActionClip.useSkillId);
            if (currentCharacters.isUseSkill(num))
            {
                isSelectSkill = num;
            }
        }
        currentCharacters.isSelectSkill = isSelectSkill;
        CharacterStateControl[] array = this.GetSkillTargetList(currentCharacters, currentCharacters.currentSkillStatus.target);
        if (!randomActionClip.IsFindMachConditionTargets(array))
        {
            currentCharacters.isSelectSkill = currentCharacters.SkillIdToIndexOf(base.stateManager.publicAttackSkillId);
            array = base.battleStateData.playerCharacters;
        }
        CharacterStateControl[] aliveCharacters = CharacterStateControl.GetAliveCharacters(array);
        CharacterStateControl[] array2          = CharacterStateControlSorter.SortedTargetSelect(aliveCharacters, currentCharacters.currentSkillStatus, randomActionClip);
        currentCharacters.targetCharacter = array2[0];
    }
Beispiel #3
0
    public void AutoPlayCharacterAndSkillSelectFunction(CharacterStateControl currentCharacter)
    {
        if (currentCharacter.currentSufferState.FindSufferState(SufferStateProperty.SufferType.SkillLock))
        {
            currentCharacter.isSelectSkill = 0;
        }
        else
        {
            currentCharacter.isSelectSkill = 0;
            SkillStatus[] array       = currentCharacter.skillStatus.Where((SkillStatus item) => item.skillId != this.stateManager.publicAttackSkillId).ToArray <SkillStatus>();
            int           num         = currentCharacter.SkillIdToIndexOf(base.stateManager.publicAttackSkillId);
            SkillStatus   skillStatus = currentCharacter.skillStatus[num];
            foreach (SkillStatus skillStatus2 in array)
            {
                if (skillStatus2.skillType == SkillType.Deathblow)
                {
                    skillStatus = skillStatus2;
                    break;
                }
            }
            for (int j = 0; j < currentCharacter.skillStatus.Length; j++)
            {
                if (currentCharacter.skillStatus[j] == skillStatus && currentCharacter.isUseSkill(j))
                {
                    currentCharacter.isSelectSkill = j;
                    break;
                }
            }
        }
        CharacterStateControl[] characterStatus = null;
        switch (currentCharacter.currentSkillStatus.target)
        {
        case EffectTarget.Enemy:
            characterStatus = base.battleStateData.enemies;
            break;

        case EffectTarget.Ally:
            characterStatus = base.battleStateData.playerCharacters;
            break;

        case EffectTarget.Attacker:
            characterStatus = new CharacterStateControl[]
            {
                currentCharacter
            };
            break;

        case EffectTarget.EnemyWithoutAttacker:
            characterStatus = base.battleStateData.enemies.Where((CharacterStateControl item) => item.myIndex != currentCharacter.myIndex).ToArray <CharacterStateControl>();
            break;

        case EffectTarget.AllyWithoutAttacker:
            characterStatus = base.battleStateData.playerCharacters.Where((CharacterStateControl item) => item.myIndex != currentCharacter.myIndex).ToArray <CharacterStateControl>();
            break;
        }
        CharacterStateControl[] aliveCharacters = CharacterStateControl.GetAliveCharacters(characterStatus);
        CharacterStateControl[] array3          = CharacterStateControlSorter.SortedTargetSelect(aliveCharacters, currentCharacter.currentSkillStatus, null);
        currentCharacter.targetCharacter = array3[0];
    }