Esempio n. 1
0
 private void SetAnimatorLayer(MixinSummonItem item, BaseMonoAnimatorEntity animEntity)
 {
     if (item.UseCoffinAnim && (animEntity != null))
     {
         animEntity.StartFadeAnimatorLayerWeight(item.CoffinIndex + 1, 1f, 0.01f);
     }
 }
Esempio n. 2
0
        private void OnSummon(EvtAbilityStart evt)
        {
            MonsterSummonMixinArgument abilityArgument = evt.abilityArgument as MonsterSummonMixinArgument;
            BaseMonoAnimatorEntity     animEntity      = base.entity as BaseMonoAnimatorEntity;

            for (int i = 2; i < 6; i++)
            {
                if (animEntity != null)
                {
                    animEntity.StartFadeAnimatorLayerWeight(i, 0f, 0.01f);
                }
            }
            if (abilityArgument != null)
            {
                MixinSummonItem item = this.config.SummonMonsters[abilityArgument.SummonMonsterIndex];
                this.OrderSummonMonster(item.EffectDelay, item.SummonDelay, item, evt);
                this.SetAnimatorLayer(item, animEntity);
            }
            else
            {
                int index  = 0;
                int length = this.config.SummonMonsters.Length;
                while (index < length)
                {
                    MixinSummonItem item2 = this.config.SummonMonsters[index];
                    this.OrderSummonMonster(item2.EffectDelay, item2.SummonDelay, item2, evt);
                    this.SetAnimatorLayer(item2, animEntity);
                    index++;
                }
            }
        }
Esempio n. 3
0
        private void SummonMonster(MixinSummonItem item, Vector3 position)
        {
            uint runtimeID = Singleton <MonsterManager> .Instance.CreateMonster(base.instancedAbility.Evaluate(item.MonsterName), base.instancedAbility.Evaluate(item.TypeName), Singleton <LevelScoreManager> .Instance.NPCHardLevel, true, position, 0, false, 0, true, false, 0);

            BaseAbilityActor actor = Singleton <EventManager> .Instance.GetActor <BaseAbilityActor>(runtimeID);

            actor.ownerID = base.actor.runtimeID;
            if (item.Abilities != null)
            {
                foreach (KeyValuePair <string, ConfigEntityAbilityEntry> pair in item.Abilities)
                {
                    actor.abilityPlugin.AddAbility(AbilityData.GetAbilityConfig(pair.Value.AbilityName, pair.Value.AbilityOverride));
                }
            }
        }
Esempio n. 4
0
        private void OrderSummonMonster(float effectDelay, float summonDelay, MixinSummonItem item, EvtAbilityStart evt)
        {
            SummonItem item2 = new SummonItem {
                effectTimer = effectDelay,
                summonTimer = effectDelay + summonDelay,
                summon      = item
            };

            if (evt.hitCollision != null)
            {
                item2.summonPosition   = evt.hitCollision.hitPoint;
                item2.summonPosition.y = 0f;
                item2.summonPosition   = this.CalculateSummonPosition(item2.summonPosition);
            }
            else
            {
                item2.summonPosition = this.CalculateSummonPosition(item.BaseOnTarget, item.Distance, item.Angle);
                item2.summonPosition = this.CalculateSummonPosition(item2.summonPosition);
            }
            this.summonList.Add(item2);
        }