示例#1
0
        public void CastAbility(Ability ability, string abilityName, AbilityTarget target)
        {
            if (m_CachedAbilities.ContainsKey(abilityName) == false)
            {
                return;
            }
            var abilityData = new Ability.AbilityData()
            {
                name      = abilityName,
                startTime = Utils.Time.logicTime,
                root      = m_CachedAbilities[abilityName].Clone() as AbilityRoot
            };

            ability.current             = abilityData;
            ability.current.root.caster = ability.entity.id;
            ability.current.root.target = target;
            ability.current.root.Execute();
            LogicEvent.RaiseEvent(LogicEventType.CastAbility, ability.entity);
        }