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]); } }
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))); }
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); }
public static void WaitForSkillConfirmation(SkillBattle _skillData) { if (_skillData.SkillUser.GetComponent <LuckBased>() != null) { PendingSkill = _skillData.SkillUser.GetComponent <LuckBased>().HandleLuckForSkills(_skillData); } else { PendingSkill = _skillData; } }
public void UseSkill(PawnInstance _target) { SkillBattle sb = skillDecisionAlgo.Invoke(this); if (sb.TargetType == TargetType.FriendSingle) { sb.UseSkill(_target); } else { sb.UseSkill(); } }
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; } }