예제 #1
0
파일: UserXpMod.cs 프로젝트: MoArtis/RCGMod
        public static void AddBackAttackComboToMovesList(System.Collections.Generic.List <MoveDescription> movesList)
        {
            MoveDescription backAttack = null;

            foreach (MoveDescription move in movesList)
            {
                if (move.MoveName.ToLower().Contains("block") && move.ComboList.Count > 0)
                {
                    backAttack = move.ComboList[0].ToMove;
                }
            }

            if (backAttack != null)
            {
                foreach (MoveDescription move in movesList)
                {
                    ComboMove backCombo = null;
                    foreach (ComboMove combo in move.ComboList)
                    {
                        foreach (ComboCondition condition in combo.Conditions)
                        {
                            if (condition is InputCondition)
                            {
                                InputCondition inputCondition = condition as InputCondition;
                                if (inputCondition.DirectionModifier == InputDirectionModifier.None && inputCondition.ComboInputs == ComboInputs.Heavy)
                                {
                                    backCombo             = new ComboMove();
                                    backCombo.MoveName    = backAttack.MoveName;
                                    backCombo.ToMove      = backAttack;
                                    backCombo.Priority    = combo.Priority + 1;
                                    backCombo.AI_Followup = combo.AI_Followup;
                                    backCombo.Conditions  = new System.Collections.Generic.List <ComboCondition>();
                                    foreach (ComboCondition comboCondition in combo.Conditions)
                                    {
                                        if (comboCondition is InputCondition)
                                        {
                                            InputCondition newInputCondition = ScriptableObject.CreateInstance <InputCondition>();
                                            newInputCondition.ComboInputs       = ComboInputs.Heavy;
                                            newInputCondition.DirectionModifier = InputDirectionModifier.Back;
                                            backCombo.Conditions.Add(newInputCondition);
                                        }
                                        else
                                        {
                                            backCombo.Conditions.Add(comboCondition);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (backCombo != null)
                    {
                        move.ComboList.Add(backCombo);
                    }
                }
            }
        }
예제 #2
0
파일: UserXpMod.cs 프로젝트: MoArtis/RCGMod
 public static void AddQuickOverrideToMovesList(System.Collections.Generic.List <MoveDescription> movesList)
 {
     foreach (MoveDescription move in movesList)
     {
         ComboMove lightAttack = null;
         foreach (ComboMove combo in move.ComboList)
         {
             if (combo.Priority == 0)
             {
                 foreach (ComboCondition condition in combo.Conditions)
                 {
                     if (condition is InputCondition)
                     {
                         InputCondition inputCondition = condition as InputCondition;
                         if (inputCondition.DirectionModifier == InputDirectionModifier.None && inputCondition.ComboInputs == ComboInputs.Quick)
                         {
                             lightAttack             = new ComboMove();
                             lightAttack.MoveName    = combo.MoveName;
                             lightAttack.ToMove      = combo.ToMove;
                             lightAttack.Priority    = 3;
                             lightAttack.AI_Followup = combo.AI_Followup;
                             lightAttack.Conditions  = new System.Collections.Generic.List <ComboCondition>();
                             foreach (ComboCondition comboCondition in combo.Conditions)
                             {
                                 if (comboCondition is InputCondition)
                                 {
                                     InputCondition newInputCondition = ScriptableObject.CreateInstance <InputCondition>();
                                     newInputCondition.ComboInputs       = ComboInputs.Quick;
                                     newInputCondition.DirectionModifier = InputDirectionModifier.Up;
                                     lightAttack.Conditions.Add(newInputCondition);
                                 }
                                 else
                                 {
                                     lightAttack.Conditions.Add(comboCondition);
                                 }
                             }
                         }
                     }
                 }
             }
         }
         if (lightAttack != null)
         {
             move.ComboList.Add(lightAttack);
         }
     }
 }
예제 #3
0
        public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex, AnimatorControllerPlayable controller)
        {
            log.Info("State exit for {0}", comboMoveName);
            if (moveCache != null)
            {
                moveCache.DisableCollider();

                var nextTrigger = moveCache.ConsumeNextActionTrigger();
                log.Info("extracted trigger: {0}", nextTrigger);
                if (nextTrigger != null)
                {
                    animator.SetTrigger(nextTrigger);
                }
                moveCache.FinishHit(nextTrigger != null);
                moveCache = null;
            }
        }