private void SetAnimatorLayer(MixinSummonItem item, BaseMonoAnimatorEntity animEntity) { if (item.UseCoffinAnim && (animEntity != null)) { animEntity.StartFadeAnimatorLayerWeight(item.CoffinIndex + 1, 1f, 0.01f); } }
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++; } } }
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)); } } }
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); }