Пример #1
0
        public SkillBattle HandleLuckForSkills(SkillBattle _skill)
        {
            if (_skill.SkillName == "Attack" || _skill.SkillName == "Great Power")
            {
                return(_skill);
            }

            int randDieForSkills = Random.Range(0, 3);

            if (randDieForSkills == 0)
            {
                isSkillFeedbackPending      = true;
                isSkillFeedbackPendingLucky = false;
            }
            else if (randDieForSkills == 1)
            {
                isSkillFeedbackPending      = true;
                isSkillFeedbackPendingLucky = true;
            }

            if (_skill.SkillType == SkillType.Physical)
            {
                return(physicalSkills[randDieForSkills]);
            }
            else if (_skill.SkillType == SkillType.Magical)
            {
                return(magicalSkills[randDieForSkills]);
            }
            else
            {
                return(defensiveSkills[randDieForSkills]);
            }
        }
Пример #2
0
    public override void Init()
    {
        base.Init();

        SeqTutoCombat seqTutoCombat = TutoManager.s_instance.GetComponent <SeqTutoCombat>();

        foreach (Button b in seqTutoCombat.uiBattle.GetComponentsInChildren <Button>())
        {
            b.interactable = false;
        }

        seqTutoCombat.rollDiceButton.GetComponentInChildren <ThrowDiceButtonFeedback>().enabled = false;

        previousCharacterSkills = new List <SkillBattle>();
        for (int i = 0; i < BattleHandler.CurrentBattleKeepers[0].GetComponent <Behaviour.Fighter>().BattleSkills.Count; i++)
        {
            previousCharacterSkills.Add(new SkillBattle(BattleHandler.CurrentBattleKeepers[0].GetComponent <Behaviour.Fighter>().BattleSkills[i]));
        }
        BattleHandler.CurrentBattleKeepers[0].GetComponent <Behaviour.Fighter>().BattleSkills.Clear();
        SkillBattle tutoSkill = new SkillBattle();

        tutoSkill.Damage     = 20;
        tutoSkill.TargetType = TargetType.FoeSingle;
        tutoSkill.SkillUser  = BattleHandler.CurrentBattleKeepers[0].GetComponent <Behaviour.Fighter>();
        tutoSkill.Cost       = new List <Face>();
        tutoSkill.Cost.Add(new Face(FaceType.Physical, 0));
        tutoSkill.Cost.Add(new Face(FaceType.Magical, 0));
        tutoSkill.Cost.Add(new Face(FaceType.Defensive, 0));
        tutoSkill.CharacterSkillIndex = -1;
        BattleHandler.CurrentBattleKeepers[0].GetComponent <Behaviour.Fighter>().BattleSkills.Add(tutoSkill);
        GameManager.Instance.GetBattleUI.GetComponent <UIBattleHandler>().TutoReloadSkillPanel(BattleHandler.CurrentBattleKeepers[0]);

        Etapes = new List <Step>();

        // Content
        Etapes.Add(new TutoManager.Message(null, Translater.TutoText("SeqTutoCombat", 0)));
        Etapes.Add(new RollDiceButtonExplain(Translater.TutoText("SeqTutoCombat", 1)));
        Etapes.Add(new ShowCharactersStocks(Translater.TutoText("SeqTutoCombat", 2)));
        Etapes.Add(new ShowCharactersStocks(Translater.TutoText("SeqTutoCombat", 3)));
        Etapes.Add(new PawnSelection(Translater.TutoText("SeqTutoCombat", 4)));
        Etapes.Add(new StandardAtkExplain(Translater.TutoText("SeqTutoCombat", 5)));
        Etapes.Add(new SkillCostExplain(Translater.TutoText("SeqTutoCombat", 6)));
        Etapes.Add(new SkillSelectionStep(Translater.TutoText("SeqTutoCombat", 7)));

        Etapes.Add(new TutoManager.Message(null, Translater.TutoText("SeqTutoCombat", 8)));
        if (BattleHandler.CurrentBattleKeepers.Length > 1 || BattleHandler.isPrisonerOnTile)
        {
            Etapes.Add(new TutoManager.Message(null, Translater.TutoText("SeqTutoCombat", 9)));
            Etapes.Add(new MonstersTurnStep(Translater.TutoText("SeqTutoCombat", 10)));
        }
        else
        {
            Etapes.Add(new MonstersTurnStep(Translater.TutoText("SeqTutoCombat", 11)));
        }

        Etapes.Add(new TutoManager.Message(null, Translater.TutoText("SeqTutoCombat", 12)));
    }
Пример #3
0
        void Start()
        {
            if (GetComponent <Monster>() != null)
            {
                IsAMonster = true;
            }
            else
            {
                IsAMonster = false;
            }

            showSkillPanelTimer = 0.5f;

            if (!IsAMonster && GetComponent <Prisoner>() == null)
            {
                SkillBattle defaultAtk = new SkillBattle("default");
                battleSkills.Insert(0, defaultAtk);
                depressedSkills.Insert(0, defaultAtk);
            }

            int skillIndex = 0;

            foreach (SkillBattle sb in battleSkills)
            {
                sb.CharacterSkillIndex = skillIndex++;
                if (sb.SkillUser == null)
                {
                    sb.SkillUser = this;
                }
            }

            if (GetComponent <LuckBased>() != null || GetComponent <MentalHealthHandler>() == null)
            {
                foreach (SkillBattle sb in battleSkills)
                {
                    depressedSkills.Add(new SkillBattle(sb));
                }
            }
            else
            {
                skillIndex = 0;
                foreach (SkillBattle sb in depressedSkills)
                {
                    sb.CharacterSkillIndex = skillIndex++;
                    if (sb.SkillUser == null)
                    {
                        sb.SkillUser = this;
                    }
                }
            }

            MonstersBattleSkillsSelection mbss = new MonstersBattleSkillsSelection();

            skillDecisionAlgo = mbss.GetDecisionAlgorithm(GetComponent <PawnInstance>().Data.PawnId);
        }
Пример #4
0
 public static void WaitForSkillConfirmation(SkillBattle _skillData)
 {
     if (_skillData.SkillUser.GetComponent <LuckBased>() != null)
     {
         PendingSkill = _skillData.SkillUser.GetComponent <LuckBased>().HandleLuckForSkills(_skillData);
     }
     else
     {
         PendingSkill = _skillData;
     }
 }
Пример #5
0
        public void UseSkill(PawnInstance _target)
        {
            SkillBattle sb = skillDecisionAlgo.Invoke(this);

            if (sb.TargetType == TargetType.FriendSingle)
            {
                sb.UseSkill(_target);
            }
            else
            {
                sb.UseSkill();
            }
        }
Пример #6
0
    public SkillBattle(SkillBattle _origin)
    {
        if (_origin == null)
        {
            new SkillBattle();
        }
        else
        {
            skillUser = _origin.skillUser;
            damage    = _origin.damage;

            skillName           = _origin.skillName;
            description         = _origin.description;
            cost                = _origin.cost;
            targetType          = _origin.targetType;
            boeufs              = _origin.boeufs;
            skillType           = _origin.skillType;
            isMeantToHeal       = _origin.isMeantToHeal;
            isMeantToBuff       = _origin.isMeantToBuff;
            battleAnimation     = _origin.battleAnimation;
            characterSkillIndex = _origin.characterSkillIndex;
        }
    }