示例#1
0
 static void DefineCombatMemberTriggers(TriggersHost triggersHost, CombatMember combatMember)
 {
     foreach (var ability in combatMember.GetAbilities())
     {
         triggersHost.AddTrigger(CombatTriggersFactory.Create(ability));
     }
 }
示例#2
0
        public static void ObserveChanges(TriggersHost triggersHost)
        {
            var character = triggersHost.GetComponent <Character>();

            if (character)
            {
                triggersHost.AddTrigger(CharacterTriggersFactory.CreateMoveTrigger(character));
            }

            var combatMember = triggersHost.GetComponent <CombatMember>();

            if (combatMember)
            {
                DefineCombatMemberTriggers(triggersHost, combatMember);
                combatMember.OnStateChanged += () =>
                {
                    DefineCombatMemberTriggers(triggersHost, combatMember);
                };
            }
        }