Пример #1
0
 public void FireRootProjectile(Vector2 v2Dir, Vector2 v2Offset)
 {
     float fVelocity = 3.5f;
     _EnemySpells_HalloweedRoot xInst = (_EnemySpells_HalloweedRoot)Program.GetTheGame()._EntityMaster_AddSpellInstance(SpellCodex.SpellTypes._EnemySkill_Halloweed_Root, this.xOwner, this.xOwner.xTransform.v2Pos + v2Offset, true, new float[]
     {
         fVelocity,
         (float)this.xOwner.byAnimationDirection
     });
     xInst.xOwner = this.xOwner;
     xInst.fVelocity = fVelocity;
     xInst.v2Direction = v2Dir;
     ((SphereCollider)xInst.xAttackPhasePlayer.lxCurrentColliders[0]).fRadius = 10f;
     xInst.xAttackPhasePlayer.lxCurrentColliders[0].ibitLayers = this.xOwner.xCollisionComponent.xMovementCollider.ibitLayers;
     xInst.xAttackPhasePlayer.lenLayers.Add(Collider.ColliderLayers.Players);
     xInst.xAttackPhasePlayer.xStats.fKnockBack = 0f;
     xInst.xAttackPhaseEnvironment.lenLayers.Add(Collider.ColliderLayers.StaticEnvironment);
     xInst.xAttackPhaseEnvironment.lxCurrentColliders[0].ibitLayers = this.xOwner.xCollisionComponent.xMovementCollider.ibitLayers;
     xInst.xRenderComponent.fVirtualHeight = this.xOwner.xRenderComponent.fVirtualHeight;
     xInst.xRenderComponent.SwitchAnimation(0, Animation.CancelOptions.IgnoreIfPlaying);
     if (this.xOwner.byAnimationDirection == 1)
     {
         xInst.v2Offset1 = new Vector2(-8f, 3f);
         xInst.v2Offset2 = new Vector2(6f, -2f);
     }
     else
     {
         xInst.v2Offset1 = new Vector2(8f, 3f);
         xInst.v2Offset2 = new Vector2(-6f, -2f);
     }
     this.xRootInstance = xInst;
 }
Пример #2
0
 public static ISpellInstance GetSpellInstance(SpellCodex.SpellTypes enType, int iPowerLevel)
 {
     ISpellInstance xIn = null;
     ContentManager Content = Program.GetTheGame().Content;
     string MONSTER_PATH = "Sprites/Monster/";
     if (enType == SpellCodex.SpellTypes._Magic_Fire_Fireball)
     {
         xIn = new _Spells_FireballInstance();
         _Spells_FireballInstance xFireball = xIn as _Spells_FireballInstance;
         xFireball.xRenderComponent = new AnimatedRenderComponent(xIn);
         xFireball.xRenderComponent.xTransform = xIn.xTransform;
         xFireball.xAttackPhaseEnemy = new AttackPhase(xFireball);
         xFireball.xAttackPhaseEnvironment = new AttackPhase(xFireball);
         xFireball.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xFireball.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         SphereCollider col = new SphereCollider(10f, new Vector2(0f, -11f), xFireball.xTransform, 0f, xFireball);
         col.xAttackPhase = xFireball.xAttackPhaseEnemy;
         col.bIsLarge = false;
         xFireball.xAttackPhaseEnemy.lxCurrentColliders.Add(col);
         xFireball.xAttackPhaseEnemy.RegisterCurrent();
         col = new SphereCollider(2f, new Vector2(0f, -3f), xFireball.xTransform, 0f, xFireball);
         col.xAttackPhase = xFireball.xAttackPhaseEnvironment;
         col.bCollideWithFlat = false;
         xFireball.xAttackPhaseEnvironment.lxCurrentColliders.Add(col);
         xFireball.xAttackPhaseEnvironment.RegisterCurrent();
         xFireball.enType = enType;
         xFireball.xRenderComponent.xOwnerObject = xIn;
         xFireball.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -12f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv1Up"), new Vector2(9f, 7f), 4, 5, 18, 25, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(1, new Animation(1, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv1Up"), new Vector2(9f, 7f), 4, 5, 18, 25, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(2, new Animation(2, 2, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv1Up"), new Vector2(9f, 7f), 4, 5, 18, 25, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(3, new Animation(3, 3, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv1Up"), new Vector2(9f, 7f), 4, 5, 18, 25, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations[1].SetRotationOverride(1.57079637f);
         xIn.xRenderComponent.dixAnimations[2].SetRotationOverride(3.14159274f);
         xIn.xRenderComponent.dixAnimations[3].SetRotationOverride(4.712389f);
         xIn.xRenderComponent.dixAnimations.Add(4, new Animation(4, 0, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv3Up"), new Vector2(12f, 10f), 4, 6, 24, 38, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(5, new Animation(5, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv3Up"), new Vector2(12f, 10f), 4, 6, 24, 38, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(6, new Animation(6, 2, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv3Up"), new Vector2(12f, 10f), 4, 6, 24, 38, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(7, new Animation(7, 3, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv3Up"), new Vector2(12f, 10f), 4, 6, 24, 38, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations[5].SetRotationOverride(1.57079637f);
         xIn.xRenderComponent.dixAnimations[6].SetRotationOverride(3.14159274f);
         xIn.xRenderComponent.dixAnimations[7].SetRotationOverride(4.712389f);
         xIn.xRenderComponent.dixAnimations.Add(8, new Animation(8, 0, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv4Up"), new Vector2(16f, 11f), 4, 6, 29, 46, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(9, new Animation(9, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv4Up"), new Vector2(16f, 11f), 4, 6, 29, 46, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(10, new Animation(10, 2, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv4Up"), new Vector2(16f, 11f), 4, 6, 29, 46, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(11, new Animation(11, 3, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv4Up"), new Vector2(16f, 11f), 4, 6, 29, 46, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations[9].SetRotationOverride(1.57079637f);
         xIn.xRenderComponent.dixAnimations[10].SetRotationOverride(3.14159274f);
         xIn.xRenderComponent.dixAnimations[11].SetRotationOverride(4.712389f);
         xIn.xRenderComponent.dixAnimations.Add(12, new Animation(12, 0, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv5Up"), new Vector2(28f, 30f), 4, 1, 56, 51, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(13, new Animation(13, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv5Up"), new Vector2(28f, 30f), 4, 1, 56, 51, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(14, new Animation(14, 2, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv5Up"), new Vector2(28f, 30f), 4, 1, 56, 51, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(15, new Animation(15, 3, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv5Up"), new Vector2(28f, 30f), 4, 1, 56, 51, 0, 0, 10, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations[13].SetRotationOverride(1.57079637f);
         xIn.xRenderComponent.dixAnimations[14].SetRotationOverride(3.14159274f);
         xIn.xRenderComponent.dixAnimations[15].SetRotationOverride(4.712389f);
         xIn.xRenderComponent.dixAnimations.Add(20, new Animation(20, 0, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv1Disappear"), new Vector2(9f, 7f), 4, 9, 18, 25, 0, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFramesXtoY, new float[]
             {
                 1f,
                 9f
             }), new AnimInsEvent(AnimInsEvent.EventType.AdjustAlpha, new float[]
             {
                 -0.1f
             }))
         }));
         xIn.xRenderComponent.dixAnimations.Add(21, new Animation(21, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv1Disappear"), new Vector2(9f, 7f), 4, 9, 18, 25, 0, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFramesXtoY, new float[]
             {
                 1f,
                 9f
             }), new AnimInsEvent(AnimInsEvent.EventType.AdjustAlpha, new float[]
             {
                 -0.1f
             }))
         }));
         xIn.xRenderComponent.dixAnimations.Add(22, new Animation(22, 2, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv1Disappear"), new Vector2(9f, 7f), 4, 9, 18, 25, 0, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFramesXtoY, new float[]
             {
                 1f,
                 9f
             }), new AnimInsEvent(AnimInsEvent.EventType.AdjustAlpha, new float[]
             {
                 -0.1f
             }))
         }));
         xIn.xRenderComponent.dixAnimations.Add(23, new Animation(23, 3, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv1Disappear"), new Vector2(9f, 7f), 4, 9, 18, 25, 0, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFramesXtoY, new float[]
             {
                 1f,
                 9f
             }), new AnimInsEvent(AnimInsEvent.EventType.AdjustAlpha, new float[]
             {
                 -0.1f
             }))
         }));
         xIn.xRenderComponent.dixAnimations[21].SetRotationOverride(1.57079637f);
         xIn.xRenderComponent.dixAnimations[22].SetRotationOverride(3.14159274f);
         xIn.xRenderComponent.dixAnimations[23].SetRotationOverride(4.712389f);
         xIn.xRenderComponent.dixAnimations.Add(24, new Animation(24, 0, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv3Disappear"), new Vector2(12f, 10f), 4, 9, 24, 38, 0, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFramesXtoY, new float[]
             {
                 1f,
                 9f
             }), new AnimInsEvent(AnimInsEvent.EventType.AdjustAlpha, new float[]
             {
                 -0.1f
             }))
         }));
         xIn.xRenderComponent.dixAnimations.Add(25, new Animation(25, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv3Disappear"), new Vector2(12f, 10f), 4, 9, 24, 38, 0, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFramesXtoY, new float[]
             {
                 1f,
                 9f
             }), new AnimInsEvent(AnimInsEvent.EventType.AdjustAlpha, new float[]
             {
                 -0.1f
             }))
         }));
         xIn.xRenderComponent.dixAnimations.Add(26, new Animation(26, 2, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv3Disappear"), new Vector2(12f, 10f), 4, 9, 24, 38, 0, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFramesXtoY, new float[]
             {
                 1f,
                 9f
             }), new AnimInsEvent(AnimInsEvent.EventType.AdjustAlpha, new float[]
             {
                 -0.1f
             }))
         }));
         xIn.xRenderComponent.dixAnimations.Add(27, new Animation(27, 3, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Fire_Fireball, "Sprites/Spells/Fireball/Lv3Disappear"), new Vector2(12f, 10f), 4, 9, 24, 38, 0, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFramesXtoY, new float[]
             {
                 1f,
                 9f
             }), new AnimInsEvent(AnimInsEvent.EventType.AdjustAlpha, new float[]
             {
                 -0.1f
             }))
         }));
         xIn.xRenderComponent.dixAnimations[25].SetRotationOverride(1.57079637f);
         xIn.xRenderComponent.dixAnimations[26].SetRotationOverride(3.14159274f);
         xIn.xRenderComponent.dixAnimations[27].SetRotationOverride(4.712389f);
         DynamicLight xLight = new DynamicLight();
         xLight.xRenderComponent.xTransform = xIn.xTransform;
         xLight.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Program.GetTheGame().xRenderMaster.dstxLightSources["OmniLightRad100"], new Vector2(100f, 100f), 4, 1, 200, 200, 0, 0, 1, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xLight.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -10f);
         xLight.SetScale(0.3f);
         xLight.xMountObject = xFireball;
         xLight.enDestructionType = DynamicLight.DestructionType.Flash;
         xLight.fFlicker = 0.3f;
         xLight.iFlickerInterval = 15;
         Program.GetTheGame()._DynamicLight_CreateDynamicLight(xLight);
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Fire_Meteor)
     {
         xIn = new _Spells_MeteorInstance();
         _Spells_MeteorInstance xFireball2 = xIn as _Spells_MeteorInstance;
         xFireball2.xRenderComponent = new AnimatedRenderComponent(xIn);
         xFireball2.xRenderComponent.xTransform = xIn.xTransform;
         xFireball2.bSendOwnerID = true;
         xFireball2.xAttackPhaseEnemy = new AttackPhase(xFireball2);
         xFireball2.xAttackPhaseEnvironment = new AttackPhase(xFireball2);
         xFireball2.xAttackPhaseEpicenter = new AttackPhase(xFireball2);
         xFireball2.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xFireball2.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         if (Program.GetTheGame().xNetworkInfo.enCurrentRole != NetworkHelperInterface.NetworkRole.Client)
         {
             SphereCollider col2 = new SphereCollider(14f, new Vector2(0f, 0f), xFireball2.xTransform, 0f, xFireball2);
             col2.xAttackPhase = xFireball2.xAttackPhaseEnemy;
             col2.bIsLarge = false;
             xFireball2.xAttackPhaseEnemy.lxCurrentColliders.Add(col2);
             col2 = new SphereCollider(12f, new Vector2(0f, 0f), xFireball2.xTransform, 0f, xFireball2);
             col2.xAttackPhase = xFireball2.xAttackPhaseEnvironment;
             col2.bCollideWithFlat = false;
             xFireball2.xAttackPhaseEnvironment.lxCurrentColliders.Add(col2);
             col2 = new SphereCollider(10f, new Vector2(0f, 0f), xFireball2.xTransform, 0f, xFireball2);
             col2.xAttackPhase = xFireball2.xAttackPhaseEpicenter;
             col2.bCollideWithFlat = false;
             xFireball2.xAttackPhaseEpicenter.lxCurrentColliders.Add(col2);
         }
         xFireball2.enType = enType;
         xFireball2.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(18f, 32f), 3, 7, 36, 41, 36, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Fire_Flamethrower)
     {
         xIn = new _Spells_FlamethrowerInstance();
         _Spells_FlamethrowerInstance xFireball3 = xIn as _Spells_FlamethrowerInstance;
         xFireball3.xRenderComponent = new AnimatedRenderComponent(xIn);
         xFireball3.xRenderComponent.xTransform = xIn.xTransform;
         xFireball3.bSendOwnerID = true;
         xFireball3.xAttackPhaseEnemy = new AttackPhase(xFireball3);
         xFireball3.xAttackPhaseEnvironment = new AttackPhase(xFireball3);
         xFireball3.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xFireball3.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         if (Program.GetTheGame().xNetworkInfo.enCurrentRole != NetworkHelperInterface.NetworkRole.Client)
         {
             SphereCollider col3 = new SphereCollider(17f, new Vector2(0f, 0f), xFireball3.xTransform, 0f, xFireball3);
             col3.xAttackPhase = xFireball3.xAttackPhaseEnemy;
             col3.bIsLarge = false;
             xFireball3.xAttackPhaseEnemy.lxCurrentColliders.Add(col3);
             col3 = new SphereCollider(17f, new Vector2(0f, 0f), xFireball3.xTransform, 0f, xFireball3);
             col3.xAttackPhase = xFireball3.xAttackPhaseEnemy;
             col3.bIsLarge = false;
             xFireball3.xAttackPhaseEnemy.lxCurrentColliders.Add(col3);
             col3 = new SphereCollider(17f, new Vector2(0f, 0f), xFireball3.xTransform, 0f, xFireball3);
             col3.xAttackPhase = xFireball3.xAttackPhaseEnvironment;
             col3.bCollideWithFlat = false;
             xFireball3.xAttackPhaseEnvironment.lxCurrentColliders.Add(col3);
             col3 = new SphereCollider(17f, new Vector2(0f, 0f), xFireball3.xTransform, 0f, xFireball3);
             col3.xAttackPhase = xFireball3.xAttackPhaseEnvironment;
             col3.bCollideWithFlat = false;
             xFireball3.xAttackPhaseEnvironment.lxCurrentColliders.Add(col3);
         }
         xFireball3.enType = enType;
         xFireball3.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(18f, 32f), 3, 7, 36, 41, 36, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Fire_BurnControlInstance)
     {
         xIn = new _Spells_BurnInstance();
         _Spells_BurnInstance xBurn = xIn as _Spells_BurnInstance;
         xBurn.xRenderComponent = new AnimatedRenderComponent(xIn);
         xBurn.xRenderComponent.xTransform = xIn.xTransform;
         xBurn.xDummyPhase = new AttackPhase(xBurn);
         xBurn.xDummyPhase.xStats.iBreakingPower = -1;
         xBurn.enType = enType;
         xBurn.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(18f, 32f), 3, 7, 36, 41, 36, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Earth_EarthSpike)
     {
         xIn = new _Spells_EarthSpikeInstance();
         _Spells_EarthSpikeInstance xFireball4 = xIn as _Spells_EarthSpikeInstance;
         xFireball4.xRenderComponent = new AnimatedRenderComponent(xIn);
         xFireball4.xRenderComponent.xTransform = xIn.xTransform;
         xFireball4.xAttackPhaseEnemy = new AttackPhase(xFireball4);
         xFireball4.xAttackPhaseEnvironment = new AttackPhase(xFireball4);
         xFireball4.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xFireball4.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         if (Program.GetTheGame().xNetworkInfo.enCurrentRole != NetworkHelperInterface.NetworkRole.Client)
         {
             SphereCollider col4 = new SphereCollider(14f, new Vector2(0f, 0f), xFireball4.xTransform, 0f, xFireball4);
             col4.xAttackPhase = xFireball4.xAttackPhaseEnemy;
             col4.bIsLarge = false;
             xFireball4.xAttackPhaseEnemy.lxCurrentColliders.Add(col4);
             xFireball4.xAttackPhaseEnemy.RegisterCurrent();
             col4 = new SphereCollider(12f, new Vector2(0f, 0f), xFireball4.xTransform, 0f, xFireball4);
             col4.xAttackPhase = xFireball4.xAttackPhaseEnvironment;
             col4.bCollideWithFlat = false;
             xFireball4.xAttackPhaseEnvironment.lxCurrentColliders.Add(col4);
             xFireball4.xAttackPhaseEnvironment.RegisterCurrent();
         }
         xFireball4.enType = enType;
         xFireball4.xRenderComponent.xOwnerObject = xIn;
         Dictionary<ushort, Animation> arg_1546_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_1546_1 = 0;
         ushort arg_1541_0 = 0;
         byte arg_1541_1 = 0;
         Texture2D arg_1541_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_EarthSpike, "Sprites/Spells/Earth Spike/Level 1-2/Start");
         Vector2 arg_1541_3 = new Vector2(18f, 32f);
         int arg_1541_4 = 3;
         int arg_1541_5 = 7;
         int arg_1541_6 = 36;
         int arg_1541_7 = 41;
         int arg_1541_8 = 36;
         int arg_1541_9 = 0;
         int arg_1541_10 = 10;
         Animation.LoopSettings arg_1541_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_1541_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_1541_13 = true;
         bool arg_1541_14 = true;
         AnimationInstruction[] array = new AnimationInstruction[1];
         AnimationInstruction[] arg_153E_0 = array;
         int arg_153E_1 = 0;
         AnimInsCriteria arg_1539_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             1f
         });
         AnimInsEvent.EventType arg_1534_0 = AnimInsEvent.EventType.PlaySound;
         string arg_1534_1 = "Earth_Spike";
         float[] array2 = new float[1];
         arg_153E_0[arg_153E_1] = new AnimationInstruction(arg_1539_0, new AnimInsEvent(arg_1534_0, arg_1534_1, array2));
         arg_1546_0.Add(arg_1546_1, new Animation(arg_1541_0, arg_1541_1, arg_1541_2, arg_1541_3, arg_1541_4, arg_1541_5, arg_1541_6, arg_1541_7, arg_1541_8, arg_1541_9, arg_1541_10, arg_1541_11, arg_1541_12, arg_1541_13, arg_1541_14, array));
         xIn.xRenderComponent.dixAnimations.Add(1, new Animation(1, 0, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_EarthSpike, "Sprites/Spells/Earth Spike/Level 1-2/End"), new Vector2(18f, 32f), 4, 12, 36, 41, 0, 0, 12, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         Dictionary<ushort, Animation> arg_162C_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_162C_1 = 2;
         ushort arg_1627_0 = 2;
         byte arg_1627_1 = 0;
         Texture2D arg_1627_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_EarthSpike, "Sprites/Spells/Earth Spike/Level 3/Start");
         Vector2 arg_1627_3 = new Vector2(17f, 37f);
         int arg_1627_4 = 3;
         int arg_1627_5 = 7;
         int arg_1627_6 = 35;
         int arg_1627_7 = 45;
         int arg_1627_8 = 35;
         int arg_1627_9 = 0;
         int arg_1627_10 = 10;
         Animation.LoopSettings arg_1627_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_1627_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_1627_13 = true;
         bool arg_1627_14 = true;
         array = new AnimationInstruction[1];
         AnimationInstruction[] arg_1624_0 = array;
         int arg_1624_1 = 0;
         AnimInsCriteria arg_161F_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             1f
         });
         AnimInsEvent.EventType arg_161A_0 = AnimInsEvent.EventType.PlaySound;
         string arg_161A_1 = "Earth_Spike";
         array2 = new float[1];
         arg_1624_0[arg_1624_1] = new AnimationInstruction(arg_161F_0, new AnimInsEvent(arg_161A_0, arg_161A_1, array2));
         arg_162C_0.Add(arg_162C_1, new Animation(arg_1627_0, arg_1627_1, arg_1627_2, arg_1627_3, arg_1627_4, arg_1627_5, arg_1627_6, arg_1627_7, arg_1627_8, arg_1627_9, arg_1627_10, arg_1627_11, arg_1627_12, arg_1627_13, arg_1627_14, array));
         xIn.xRenderComponent.dixAnimations.Add(3, new Animation(3, 0, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_EarthSpike, "Sprites/Spells/Earth Spike/Level 3/End"), new Vector2(17f, 37f), 4, 12, 35, 45, 0, 0, 12, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Earth_SummonPlant)
     {
         xIn = new _Spells_PlantInstance();
         _Spells_PlantInstance xCloud = xIn as _Spells_PlantInstance;
         xCloud.xRenderComponent = new AnimatedRenderComponent(xIn);
         xCloud.xRenderComponent.xTransform = xIn.xTransform;
         xCloud.enType = enType;
         xCloud.xRenderComponent.xOwnerObject = xIn;
         xCloud.xAttackPhaseEnemy = new AttackPhase(xCloud);
         xCloud.xAttackPhaseEnemy.xStats = new AttackStats();
         xCloud.xAttackPhaseEnemy.xStats.iBreakingPower = -1;
         xCloud.xAttackPhaseEnemy.xStats.iBaseDamage = 25;
         xCloud.xAttackPhaseEnemy.lenLayers.Add(Collider.ColliderLayers.Enemies);
         xCloud.xAttackPhaseEnemy.lenLayers.Add(Collider.ColliderLayers.DynamicEnvironment);
         SphereCollider col5 = new SphereCollider(12f, new Vector2(-7f, -6f), xCloud.xTransform, 0f, xCloud);
         col5.xAttackPhase = xCloud.xAttackPhaseEnemy;
         col5.bIsLarge = false;
         col5.ibitLayers = 2147483647;
         xCloud.xAttackPhaseEnemy.lxCurrentColliders.Add(col5);
         col5 = new SphereCollider(12f, new Vector2(-7f, 9f), xCloud.xTransform, 0f, xCloud);
         col5.xAttackPhase = xCloud.xAttackPhaseEnemy;
         col5.bIsLarge = false;
         col5.ibitLayers = 2147483647;
         xCloud.xAttackPhaseEnemy.lxCurrentColliders.Add(col5);
         Dictionary<ushort, Animation> arg_18B6_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_18B6_1 = 0;
         ushort arg_18B1_0 = 0;
         byte arg_18B1_1 = 1;
         Texture2D arg_18B1_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 1/Appear");
         Vector2 arg_18B1_3 = new Vector2(11f, 20f);
         int arg_18B1_4 = 4;
         int arg_18B1_5 = 9;
         int arg_18B1_6 = 22;
         int arg_18B1_7 = 25;
         int arg_18B1_8 = 0;
         int arg_18B1_9 = 0;
         int arg_18B1_10 = 10;
         Animation.LoopSettings arg_18B1_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_18B1_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_18B1_13 = false;
         bool arg_18B1_14 = false;
         AnimationInstruction[] array = new AnimationInstruction[2];
         AnimationInstruction[] arg_1880_0 = array;
         int arg_1880_1 = 0;
         AnimInsCriteria arg_187B_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_1876_0 = AnimInsEvent.EventType.PlaySound;
         string arg_1876_1 = "Halloweed_Appear";
         float[] array2 = new float[1];
         arg_1880_0[arg_1880_1] = new AnimationInstruction(arg_187B_0, new AnimInsEvent(arg_1876_0, arg_1876_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             1f
         }));
         arg_18B6_0.Add(arg_18B6_1, new Animation(arg_18B1_0, arg_18B1_1, arg_18B1_2, arg_18B1_3, arg_18B1_4, arg_18B1_5, arg_18B1_6, arg_18B1_7, arg_18B1_8, arg_18B1_9, arg_18B1_10, arg_18B1_11, arg_18B1_12, arg_18B1_13, arg_18B1_14, array));
         xIn.xRenderComponent.dixAnimations.Add(1, new Animation(1, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 1/Idle"), new Vector2(8f, 13f), 4, 8, 15, 18, 0, 0, 12, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         Dictionary<ushort, Animation> arg_19C1_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_19C1_1 = 2;
         ushort arg_19BC_0 = 2;
         byte arg_19BC_1 = 1;
         Texture2D arg_19BC_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 1/Disappear");
         Vector2 arg_19BC_3 = new Vector2(9f, 21f);
         int arg_19BC_4 = 4;
         int arg_19BC_5 = 9;
         int arg_19BC_6 = 18;
         int arg_19BC_7 = 27;
         int arg_19BC_8 = 0;
         int arg_19BC_9 = 0;
         int arg_19BC_10 = 12;
         Animation.LoopSettings arg_19BC_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_19BC_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_19BC_13 = false;
         bool arg_19BC_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_1981_0 = array;
         int arg_1981_1 = 0;
         AnimInsCriteria arg_197C_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]);
         AnimInsEvent.EventType arg_1977_0 = AnimInsEvent.EventType.CallBackAnimation;
         array2 = new float[1];
         arg_1981_0[arg_1981_1] = new AnimationInstruction(arg_197C_0, new AnimInsEvent(arg_1977_0, array2));
         AnimationInstruction[] arg_19B9_0 = array;
         int arg_19B9_1 = 1;
         AnimInsCriteria arg_19B4_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_19AF_0 = AnimInsEvent.EventType.PlaySound;
         string arg_19AF_1 = "Halloweed_Disappear";
         array2 = new float[1];
         arg_19B9_0[arg_19B9_1] = new AnimationInstruction(arg_19B4_0, new AnimInsEvent(arg_19AF_0, arg_19AF_1, array2));
         arg_19C1_0.Add(arg_19C1_1, new Animation(arg_19BC_0, arg_19BC_1, arg_19BC_2, arg_19BC_3, arg_19BC_4, arg_19BC_5, arg_19BC_6, arg_19BC_7, arg_19BC_8, arg_19BC_9, arg_19BC_10, arg_19BC_11, arg_19BC_12, arg_19BC_13, arg_19BC_14, array));
         Dictionary<ushort, Animation> arg_1AF8_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_1AF8_1 = 3;
         ushort arg_1AF3_0 = 3;
         byte arg_1AF3_1 = 3;
         Texture2D arg_1AF3_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 1/Attack/Left");
         Vector2 arg_1AF3_3 = new Vector2(20f, 19f);
         int arg_1AF3_4 = 4;
         int arg_1AF3_5 = 9;
         int arg_1AF3_6 = 36;
         int arg_1AF3_7 = 40;
         int arg_1AF3_8 = 0;
         int arg_1AF3_9 = 0;
         int arg_1AF3_10 = 12;
         Animation.LoopSettings arg_1AF3_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_1AF3_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_1AF3_13 = false;
         bool arg_1AF3_14 = false;
         array = new AnimationInstruction[4];
         AnimationInstruction[] arg_1A4A_0 = array;
         int arg_1A4A_1 = 0;
         AnimInsCriteria arg_1A45_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtStart, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_1A40_0 = AnimInsEvent.EventType.PlaySound;
         string arg_1A40_1 = "Halloweed_Attack";
         array2 = new float[1];
         arg_1A4A_0[arg_1A4A_1] = new AnimationInstruction(arg_1A45_0, new AnimInsEvent(arg_1A40_0, arg_1A40_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             4f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             1f
         }));
         array[2] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             2f
         }));
         array[3] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             1f
         }));
         arg_1AF8_0.Add(arg_1AF8_1, new Animation(arg_1AF3_0, arg_1AF3_1, arg_1AF3_2, arg_1AF3_3, arg_1AF3_4, arg_1AF3_5, arg_1AF3_6, arg_1AF3_7, arg_1AF3_8, arg_1AF3_9, arg_1AF3_10, arg_1AF3_11, arg_1AF3_12, arg_1AF3_13, arg_1AF3_14, array));
         Dictionary<ushort, Animation> arg_1C2F_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_1C2F_1 = 4;
         ushort arg_1C2A_0 = 4;
         byte arg_1C2A_1 = 1;
         Texture2D arg_1C2A_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 1/Attack/Right");
         Vector2 arg_1C2A_3 = new Vector2(16f, 19f);
         int arg_1C2A_4 = 4;
         int arg_1C2A_5 = 9;
         int arg_1C2A_6 = 36;
         int arg_1C2A_7 = 40;
         int arg_1C2A_8 = 0;
         int arg_1C2A_9 = 0;
         int arg_1C2A_10 = 12;
         Animation.LoopSettings arg_1C2A_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_1C2A_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_1C2A_13 = false;
         bool arg_1C2A_14 = false;
         array = new AnimationInstruction[4];
         AnimationInstruction[] arg_1B81_0 = array;
         int arg_1B81_1 = 0;
         AnimInsCriteria arg_1B7C_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtStart, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_1B77_0 = AnimInsEvent.EventType.PlaySound;
         string arg_1B77_1 = "Halloweed_Attack";
         array2 = new float[1];
         arg_1B81_0[arg_1B81_1] = new AnimationInstruction(arg_1B7C_0, new AnimInsEvent(arg_1B77_0, arg_1B77_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             4f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             1f
         }));
         array[2] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             2f
         }));
         array[3] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             1f
         }));
         arg_1C2F_0.Add(arg_1C2F_1, new Animation(arg_1C2A_0, arg_1C2A_1, arg_1C2A_2, arg_1C2A_3, arg_1C2A_4, arg_1C2A_5, arg_1C2A_6, arg_1C2A_7, arg_1C2A_8, arg_1C2A_9, arg_1C2A_10, arg_1C2A_11, arg_1C2A_12, arg_1C2A_13, arg_1C2A_14, array));
         Dictionary<ushort, Animation> arg_1CEE_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_1CEE_1 = 5;
         ushort arg_1CE9_0 = 5;
         byte arg_1CE9_1 = 1;
         Texture2D arg_1CE9_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 2/Appear");
         Vector2 arg_1CE9_3 = new Vector2(11f, 20f);
         int arg_1CE9_4 = 4;
         int arg_1CE9_5 = 9;
         int arg_1CE9_6 = 22;
         int arg_1CE9_7 = 25;
         int arg_1CE9_8 = 0;
         int arg_1CE9_9 = 0;
         int arg_1CE9_10 = 10;
         Animation.LoopSettings arg_1CE9_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_1CE9_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_1CE9_13 = false;
         bool arg_1CE9_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_1CB8_0 = array;
         int arg_1CB8_1 = 0;
         AnimInsCriteria arg_1CB3_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_1CAE_0 = AnimInsEvent.EventType.PlaySound;
         string arg_1CAE_1 = "Halloweed_Appear";
         array2 = new float[1];
         arg_1CB8_0[arg_1CB8_1] = new AnimationInstruction(arg_1CB3_0, new AnimInsEvent(arg_1CAE_0, arg_1CAE_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             6f
         }));
         arg_1CEE_0.Add(arg_1CEE_1, new Animation(arg_1CE9_0, arg_1CE9_1, arg_1CE9_2, arg_1CE9_3, arg_1CE9_4, arg_1CE9_5, arg_1CE9_6, arg_1CE9_7, arg_1CE9_8, arg_1CE9_9, arg_1CE9_10, arg_1CE9_11, arg_1CE9_12, arg_1CE9_13, arg_1CE9_14, array));
         xIn.xRenderComponent.dixAnimations.Add(6, new Animation(6, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 2/Idle"), new Vector2(8f, 16f), 4, 8, 17, 18, 0, 0, 12, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         Dictionary<ushort, Animation> arg_1DF9_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_1DF9_1 = 7;
         ushort arg_1DF4_0 = 7;
         byte arg_1DF4_1 = 1;
         Texture2D arg_1DF4_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 2/Disappear");
         Vector2 arg_1DF4_3 = new Vector2(9f, 21f);
         int arg_1DF4_4 = 4;
         int arg_1DF4_5 = 9;
         int arg_1DF4_6 = 18;
         int arg_1DF4_7 = 27;
         int arg_1DF4_8 = 0;
         int arg_1DF4_9 = 0;
         int arg_1DF4_10 = 12;
         Animation.LoopSettings arg_1DF4_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_1DF4_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_1DF4_13 = false;
         bool arg_1DF4_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_1DB9_0 = array;
         int arg_1DB9_1 = 0;
         AnimInsCriteria arg_1DB4_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]);
         AnimInsEvent.EventType arg_1DAF_0 = AnimInsEvent.EventType.CallBackAnimation;
         array2 = new float[1];
         arg_1DB9_0[arg_1DB9_1] = new AnimationInstruction(arg_1DB4_0, new AnimInsEvent(arg_1DAF_0, array2));
         AnimationInstruction[] arg_1DF1_0 = array;
         int arg_1DF1_1 = 1;
         AnimInsCriteria arg_1DEC_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_1DE7_0 = AnimInsEvent.EventType.PlaySound;
         string arg_1DE7_1 = "Halloweed_Disappear";
         array2 = new float[1];
         arg_1DF1_0[arg_1DF1_1] = new AnimationInstruction(arg_1DEC_0, new AnimInsEvent(arg_1DE7_0, arg_1DE7_1, array2));
         arg_1DF9_0.Add(arg_1DF9_1, new Animation(arg_1DF4_0, arg_1DF4_1, arg_1DF4_2, arg_1DF4_3, arg_1DF4_4, arg_1DF4_5, arg_1DF4_6, arg_1DF4_7, arg_1DF4_8, arg_1DF4_9, arg_1DF4_10, arg_1DF4_11, arg_1DF4_12, arg_1DF4_13, arg_1DF4_14, array));
         Dictionary<ushort, Animation> arg_1F30_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_1F30_1 = 8;
         ushort arg_1F2B_0 = 8;
         byte arg_1F2B_1 = 3;
         Texture2D arg_1F2B_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 2/Attack/Left");
         Vector2 arg_1F2B_3 = new Vector2(20f, 19f);
         int arg_1F2B_4 = 4;
         int arg_1F2B_5 = 9;
         int arg_1F2B_6 = 36;
         int arg_1F2B_7 = 39;
         int arg_1F2B_8 = 0;
         int arg_1F2B_9 = 0;
         int arg_1F2B_10 = 12;
         Animation.LoopSettings arg_1F2B_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_1F2B_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_1F2B_13 = false;
         bool arg_1F2B_14 = false;
         array = new AnimationInstruction[4];
         AnimationInstruction[] arg_1E82_0 = array;
         int arg_1E82_1 = 0;
         AnimInsCriteria arg_1E7D_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtStart, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_1E78_0 = AnimInsEvent.EventType.PlaySound;
         string arg_1E78_1 = "Halloweed_Attack";
         array2 = new float[1];
         arg_1E82_0[arg_1E82_1] = new AnimationInstruction(arg_1E7D_0, new AnimInsEvent(arg_1E78_0, arg_1E78_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             4f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             1f
         }));
         array[2] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             2f
         }));
         array[3] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             6f
         }));
         arg_1F30_0.Add(arg_1F30_1, new Animation(arg_1F2B_0, arg_1F2B_1, arg_1F2B_2, arg_1F2B_3, arg_1F2B_4, arg_1F2B_5, arg_1F2B_6, arg_1F2B_7, arg_1F2B_8, arg_1F2B_9, arg_1F2B_10, arg_1F2B_11, arg_1F2B_12, arg_1F2B_13, arg_1F2B_14, array));
         Dictionary<ushort, Animation> arg_2069_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_2069_1 = 9;
         ushort arg_2064_0 = 9;
         byte arg_2064_1 = 1;
         Texture2D arg_2064_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 2/Attack/Right");
         Vector2 arg_2064_3 = new Vector2(16f, 19f);
         int arg_2064_4 = 4;
         int arg_2064_5 = 9;
         int arg_2064_6 = 36;
         int arg_2064_7 = 40;
         int arg_2064_8 = 0;
         int arg_2064_9 = 0;
         int arg_2064_10 = 12;
         Animation.LoopSettings arg_2064_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_2064_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_2064_13 = false;
         bool arg_2064_14 = false;
         array = new AnimationInstruction[4];
         AnimationInstruction[] arg_1FBB_0 = array;
         int arg_1FBB_1 = 0;
         AnimInsCriteria arg_1FB6_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtStart, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_1FB1_0 = AnimInsEvent.EventType.PlaySound;
         string arg_1FB1_1 = "Halloweed_Attack";
         array2 = new float[1];
         arg_1FBB_0[arg_1FBB_1] = new AnimationInstruction(arg_1FB6_0, new AnimInsEvent(arg_1FB1_0, arg_1FB1_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             4f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             1f
         }));
         array[2] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             2f
         }));
         array[3] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             6f
         }));
         arg_2069_0.Add(arg_2069_1, new Animation(arg_2064_0, arg_2064_1, arg_2064_2, arg_2064_3, arg_2064_4, arg_2064_5, arg_2064_6, arg_2064_7, arg_2064_8, arg_2064_9, arg_2064_10, arg_2064_11, arg_2064_12, arg_2064_13, arg_2064_14, array));
         Dictionary<ushort, Animation> arg_212A_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_212A_1 = 10;
         ushort arg_2125_0 = 10;
         byte arg_2125_1 = 1;
         Texture2D arg_2125_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 3/Appear");
         Vector2 arg_2125_3 = new Vector2(11f, 24f);
         int arg_2125_4 = 4;
         int arg_2125_5 = 9;
         int arg_2125_6 = 22;
         int arg_2125_7 = 28;
         int arg_2125_8 = 0;
         int arg_2125_9 = 0;
         int arg_2125_10 = 10;
         Animation.LoopSettings arg_2125_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_2125_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_2125_13 = false;
         bool arg_2125_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_20F4_0 = array;
         int arg_20F4_1 = 0;
         AnimInsCriteria arg_20EF_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_20EA_0 = AnimInsEvent.EventType.PlaySound;
         string arg_20EA_1 = "Halloweed_Appear";
         array2 = new float[1];
         arg_20F4_0[arg_20F4_1] = new AnimationInstruction(arg_20EF_0, new AnimInsEvent(arg_20EA_0, arg_20EA_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             11f
         }));
         arg_212A_0.Add(arg_212A_1, new Animation(arg_2125_0, arg_2125_1, arg_2125_2, arg_2125_3, arg_2125_4, arg_2125_5, arg_2125_6, arg_2125_7, arg_2125_8, arg_2125_9, arg_2125_10, arg_2125_11, arg_2125_12, arg_2125_13, arg_2125_14, array));
         xIn.xRenderComponent.dixAnimations.Add(11, new Animation(11, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 3/Idle"), new Vector2(9f, 24f), 4, 8, 18, 28, 0, 0, 12, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         Dictionary<ushort, Animation> arg_2239_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_2239_1 = 12;
         ushort arg_2234_0 = 12;
         byte arg_2234_1 = 1;
         Texture2D arg_2234_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 3/Disappear");
         Vector2 arg_2234_3 = new Vector2(11f, 27f);
         int arg_2234_4 = 4;
         int arg_2234_5 = 9;
         int arg_2234_6 = 20;
         int arg_2234_7 = 31;
         int arg_2234_8 = 0;
         int arg_2234_9 = 0;
         int arg_2234_10 = 12;
         Animation.LoopSettings arg_2234_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_2234_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_2234_13 = false;
         bool arg_2234_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_21F9_0 = array;
         int arg_21F9_1 = 0;
         AnimInsCriteria arg_21F4_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]);
         AnimInsEvent.EventType arg_21EF_0 = AnimInsEvent.EventType.CallBackAnimation;
         array2 = new float[1];
         arg_21F9_0[arg_21F9_1] = new AnimationInstruction(arg_21F4_0, new AnimInsEvent(arg_21EF_0, array2));
         AnimationInstruction[] arg_2231_0 = array;
         int arg_2231_1 = 1;
         AnimInsCriteria arg_222C_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_2227_0 = AnimInsEvent.EventType.PlaySound;
         string arg_2227_1 = "Halloweed_Disappear";
         array2 = new float[1];
         arg_2231_0[arg_2231_1] = new AnimationInstruction(arg_222C_0, new AnimInsEvent(arg_2227_0, arg_2227_1, array2));
         arg_2239_0.Add(arg_2239_1, new Animation(arg_2234_0, arg_2234_1, arg_2234_2, arg_2234_3, arg_2234_4, arg_2234_5, arg_2234_6, arg_2234_7, arg_2234_8, arg_2234_9, arg_2234_10, arg_2234_11, arg_2234_12, arg_2234_13, arg_2234_14, array));
         Dictionary<ushort, Animation> arg_2372_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_2372_1 = 13;
         ushort arg_236D_0 = 13;
         byte arg_236D_1 = 3;
         Texture2D arg_236D_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 3/Attack/Left");
         Vector2 arg_236D_3 = new Vector2(25f, 27f);
         int arg_236D_4 = 4;
         int arg_236D_5 = 11;
         int arg_236D_6 = 43;
         int arg_236D_7 = 51;
         int arg_236D_8 = 0;
         int arg_236D_9 = 0;
         int arg_236D_10 = 12;
         Animation.LoopSettings arg_236D_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_236D_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_236D_13 = false;
         bool arg_236D_14 = false;
         array = new AnimationInstruction[4];
         AnimationInstruction[] arg_22C4_0 = array;
         int arg_22C4_1 = 0;
         AnimInsCriteria arg_22BF_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtStart, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_22BA_0 = AnimInsEvent.EventType.PlaySound;
         string arg_22BA_1 = "Halloweed_Attack";
         array2 = new float[1];
         arg_22C4_0[arg_22C4_1] = new AnimationInstruction(arg_22BF_0, new AnimInsEvent(arg_22BA_0, arg_22BA_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             4f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             1f
         }));
         array[2] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             2f
         }));
         array[3] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             11f
         }));
         arg_2372_0.Add(arg_2372_1, new Animation(arg_236D_0, arg_236D_1, arg_236D_2, arg_236D_3, arg_236D_4, arg_236D_5, arg_236D_6, arg_236D_7, arg_236D_8, arg_236D_9, arg_236D_10, arg_236D_11, arg_236D_12, arg_236D_13, arg_236D_14, array));
         Dictionary<ushort, Animation> arg_24AB_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_24AB_1 = 14;
         ushort arg_24A6_0 = 14;
         byte arg_24A6_1 = 1;
         Texture2D arg_24A6_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Earth_SummonPlant, "Sprites/Spells/Plant/Level 3/Attack/Right");
         Vector2 arg_24A6_3 = new Vector2(21f, 27f);
         int arg_24A6_4 = 4;
         int arg_24A6_5 = 11;
         int arg_24A6_6 = 43;
         int arg_24A6_7 = 51;
         int arg_24A6_8 = 0;
         int arg_24A6_9 = 0;
         int arg_24A6_10 = 12;
         Animation.LoopSettings arg_24A6_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_24A6_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_24A6_13 = false;
         bool arg_24A6_14 = false;
         array = new AnimationInstruction[4];
         AnimationInstruction[] arg_23FD_0 = array;
         int arg_23FD_1 = 0;
         AnimInsCriteria arg_23F8_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtStart, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_23F3_0 = AnimInsEvent.EventType.PlaySound;
         string arg_23F3_1 = "Halloweed_Attack";
         array2 = new float[1];
         arg_23FD_0[arg_23FD_1] = new AnimationInstruction(arg_23F8_0, new AnimInsEvent(arg_23F3_0, arg_23F3_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             4f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             1f
         }));
         array[2] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         }), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             2f
         }));
         array[3] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             11f
         }));
         arg_24AB_0.Add(arg_24AB_1, new Animation(arg_24A6_0, arg_24A6_1, arg_24A6_2, arg_24A6_3, arg_24A6_4, arg_24A6_5, arg_24A6_6, arg_24A6_7, arg_24A6_8, arg_24A6_9, arg_24A6_10, arg_24A6_11, arg_24A6_12, arg_24A6_13, arg_24A6_14, array));
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Earth_InsectSwarm)
     {
         xIn = new _Spells_InsectSwarmInstance();
         _Spells_InsectSwarmInstance xCloud2 = xIn as _Spells_InsectSwarmInstance;
         xCloud2.xRenderComponent = new AnimatedRenderComponent(xIn);
         xCloud2.xRenderComponent.xTransform = xIn.xTransform;
         xCloud2.enType = enType;
         xCloud2.xRenderComponent.xOwnerObject = xIn;
         xCloud2.xAttackPhaseEnemy = new AttackPhase(xCloud2);
         xCloud2.xAttackPhaseEnemy.xStats = new AttackStats();
         xCloud2.xAttackPhaseEnemy.xStats.iBreakingPower = -1;
         xCloud2.xAttackPhaseEnemy.xStats.iBaseDamage = 25;
         xCloud2.xAttackPhaseEnemy.lenLayers.Add(Collider.ColliderLayers.Enemies);
         xCloud2.xAttackPhaseEnemy.lenLayers.Add(Collider.ColliderLayers.DynamicEnvironment);
         SphereCollider col6 = new SphereCollider(12f, new Vector2(-7f, -6f), xCloud2.xTransform, 0f, xCloud2);
         col6.xAttackPhase = xCloud2.xAttackPhaseEnemy;
         col6.bIsLarge = false;
         col6.ibitLayers = 2147483647;
         xCloud2.xAttackPhaseEnemy.lxCurrentColliders.Add(col6);
         col6 = new SphereCollider(12f, new Vector2(-7f, 9f), xCloud2.xTransform, 0f, xCloud2);
         col6.xAttackPhase = xCloud2.xAttackPhaseEnemy;
         col6.bIsLarge = false;
         col6.ibitLayers = 2147483647;
         xCloud2.xAttackPhaseEnemy.lxCurrentColliders.Add(col6);
         xCloud2.xCollisionComponent.xMovementCollider = new SphereCollider(5f, Vector2.Zero, xCloud2.xTransform, 9f + (float)new Random().NextDouble(), xCloud2);
         xCloud2.xCollisionComponent.xMovementCollider.bIsLarge = false;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 1, RenderMaster.txNullTex, new Vector2(11f, 20f), 4, 9, 22, 25, 0, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, false, false, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Wind_SummonCloud)
     {
         xIn = new _Spells_CloudInstance();
         _Spells_CloudInstance xCloud3 = xIn as _Spells_CloudInstance;
         xCloud3.xRenderComponent = new AnimatedRenderComponent(xIn);
         xCloud3.xRenderComponent.xTransform = xIn.xTransform;
         xCloud3.enType = enType;
         xCloud3.xRenderComponent.xOwnerObject = xIn;
         xCloud3.bPersistent = true;
         xCloud3.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -25f);
         xCloud3.xAttackPhaseEnemy = new AttackPhase(xCloud3);
         xCloud3.xAttackPhaseEnemy.xStats = new AttackStats();
         xCloud3.xAttackPhaseEnemy.xStats.iBreakingPower = -1;
         xCloud3.xAttackPhaseEnemy.xStats.iBaseDamage = 25;
         xCloud3.xAttackPhaseEnemy.lenLayers.Add(Collider.ColliderLayers.Enemies);
         xCloud3.xAttackPhaseEnemy.lenLayers.Add(Collider.ColliderLayers.DynamicEnvironment);
         xCloud3.xAttackPhaseEnemy.xStats.enAttackElement = AttackStats.Element.Wind;
         xCloud3.xAttackPhaseEnemy.xStats.enAttackType = AttackStats.Type.Magical;
         SphereCollider col7 = new SphereCollider(7f, new Vector2(0f, 0f), xCloud3.xTransform, 0f, xCloud3);
         col7.xAttackPhase = xCloud3.xAttackPhaseEnemy;
         col7.bIsLarge = false;
         col7.ibitLayers = 2147483647;
         xCloud3.xAttackPhaseEnemy.lxCurrentColliders.Add(col7);
         xCloud3.xShadowComponent = new StaticRenderComponent(Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Monster/Bosses/Papa Slime/Spawn/smallshadow"), xCloud3.xTransform);
         Program.GetTheGame().xRenderMaster.RegisterShadowLayer(xCloud3.xShadowComponent, 60);
         xCloud3.xShadowComponent.fAlpha = 0.5f;
         Dictionary<ushort, Animation> arg_291B_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_291B_1 = 0;
         ushort arg_2916_0 = 0;
         byte arg_2916_1 = 1;
         Texture2D arg_2916_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 1-2/Spawn");
         Vector2 arg_2916_3 = new Vector2(15f, 14f);
         int arg_2916_4 = 4;
         int arg_2916_5 = 7;
         int arg_2916_6 = 28;
         int arg_2916_7 = 18;
         int arg_2916_8 = 0;
         int arg_2916_9 = 0;
         int arg_2916_10 = 10;
         Animation.LoopSettings arg_2916_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_2916_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_2916_13 = false;
         bool arg_2916_14 = false;
         AnimationInstruction[] array = new AnimationInstruction[2];
         AnimationInstruction[] arg_28E5_0 = array;
         int arg_28E5_1 = 0;
         AnimInsCriteria arg_28E0_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_28DB_0 = AnimInsEvent.EventType.PlaySound;
         string arg_28DB_1 = "Summon_cloud";
         float[] array2 = new float[1];
         arg_28E5_0[arg_28E5_1] = new AnimationInstruction(arg_28E0_0, new AnimInsEvent(arg_28DB_0, arg_28DB_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             4f
         }));
         arg_291B_0.Add(arg_291B_1, new Animation(arg_2916_0, arg_2916_1, arg_2916_2, arg_2916_3, arg_2916_4, arg_2916_5, arg_2916_6, arg_2916_7, arg_2916_8, arg_2916_9, arg_2916_10, arg_2916_11, arg_2916_12, arg_2916_13, arg_2916_14, array));
         Dictionary<ushort, Animation> arg_29D9_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_29D9_1 = 1;
         ushort arg_29D4_0 = 1;
         byte arg_29D4_1 = 3;
         Texture2D arg_29D4_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 1-2/Spawn");
         Vector2 arg_29D4_3 = new Vector2(15f, 14f);
         int arg_29D4_4 = 4;
         int arg_29D4_5 = 7;
         int arg_29D4_6 = 28;
         int arg_29D4_7 = 18;
         int arg_29D4_8 = 0;
         int arg_29D4_9 = 0;
         int arg_29D4_10 = 10;
         Animation.LoopSettings arg_29D4_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_29D4_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_29D4_13 = false;
         bool arg_29D4_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_29A3_0 = array;
         int arg_29A3_1 = 0;
         AnimInsCriteria arg_299E_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_2999_0 = AnimInsEvent.EventType.PlaySound;
         string arg_2999_1 = "Summon_cloud";
         array2 = new float[1];
         arg_29A3_0[arg_29A3_1] = new AnimationInstruction(arg_299E_0, new AnimInsEvent(arg_2999_0, arg_2999_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             5f
         }));
         arg_29D9_0.Add(arg_29D9_1, new Animation(arg_29D4_0, arg_29D4_1, arg_29D4_2, arg_29D4_3, arg_29D4_4, arg_29D4_5, arg_29D4_6, arg_29D4_7, arg_29D4_8, arg_29D4_9, arg_29D4_10, arg_29D4_11, arg_29D4_12, arg_29D4_13, arg_29D4_14, array));
         Dictionary<ushort, Animation> arg_2A8F_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_2A8F_1 = 2;
         ushort arg_2A8A_0 = 2;
         byte arg_2A8A_1 = 1;
         Texture2D arg_2A8A_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 1-2/Despawn");
         Vector2 arg_2A8A_3 = new Vector2(18f, 22f);
         int arg_2A8A_4 = 4;
         int arg_2A8A_5 = 5;
         int arg_2A8A_6 = 37;
         int arg_2A8A_7 = 25;
         int arg_2A8A_8 = 0;
         int arg_2A8A_9 = 0;
         int arg_2A8A_10 = 12;
         Animation.LoopSettings arg_2A8A_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_2A8A_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_2A8A_13 = false;
         bool arg_2A8A_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_2A4F_0 = array;
         int arg_2A4F_1 = 0;
         AnimInsCriteria arg_2A4A_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]);
         AnimInsEvent.EventType arg_2A45_0 = AnimInsEvent.EventType.CallBackAnimation;
         array2 = new float[1];
         arg_2A4F_0[arg_2A4F_1] = new AnimationInstruction(arg_2A4A_0, new AnimInsEvent(arg_2A45_0, array2));
         AnimationInstruction[] arg_2A87_0 = array;
         int arg_2A87_1 = 1;
         AnimInsCriteria arg_2A82_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_2A7D_0 = AnimInsEvent.EventType.PlaySound;
         string arg_2A7D_1 = "Enemy_Poof";
         array2 = new float[1];
         arg_2A87_0[arg_2A87_1] = new AnimationInstruction(arg_2A82_0, new AnimInsEvent(arg_2A7D_0, arg_2A7D_1, array2));
         arg_2A8F_0.Add(arg_2A8F_1, new Animation(arg_2A8A_0, arg_2A8A_1, arg_2A8A_2, arg_2A8A_3, arg_2A8A_4, arg_2A8A_5, arg_2A8A_6, arg_2A8A_7, arg_2A8A_8, arg_2A8A_9, arg_2A8A_10, arg_2A8A_11, arg_2A8A_12, arg_2A8A_13, arg_2A8A_14, array));
         Dictionary<ushort, Animation> arg_2B45_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_2B45_1 = 3;
         ushort arg_2B40_0 = 3;
         byte arg_2B40_1 = 3;
         Texture2D arg_2B40_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 1-2/Despawn");
         Vector2 arg_2B40_3 = new Vector2(18f, 22f);
         int arg_2B40_4 = 4;
         int arg_2B40_5 = 5;
         int arg_2B40_6 = 37;
         int arg_2B40_7 = 25;
         int arg_2B40_8 = 0;
         int arg_2B40_9 = 0;
         int arg_2B40_10 = 12;
         Animation.LoopSettings arg_2B40_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_2B40_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_2B40_13 = false;
         bool arg_2B40_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_2B05_0 = array;
         int arg_2B05_1 = 0;
         AnimInsCriteria arg_2B00_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]);
         AnimInsEvent.EventType arg_2AFB_0 = AnimInsEvent.EventType.CallBackAnimation;
         array2 = new float[1];
         arg_2B05_0[arg_2B05_1] = new AnimationInstruction(arg_2B00_0, new AnimInsEvent(arg_2AFB_0, array2));
         AnimationInstruction[] arg_2B3D_0 = array;
         int arg_2B3D_1 = 1;
         AnimInsCriteria arg_2B38_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_2B33_0 = AnimInsEvent.EventType.PlaySound;
         string arg_2B33_1 = "Enemy_Poof";
         array2 = new float[1];
         arg_2B3D_0[arg_2B3D_1] = new AnimationInstruction(arg_2B38_0, new AnimInsEvent(arg_2B33_0, arg_2B33_1, array2));
         arg_2B45_0.Add(arg_2B45_1, new Animation(arg_2B40_0, arg_2B40_1, arg_2B40_2, arg_2B40_3, arg_2B40_4, arg_2B40_5, arg_2B40_6, arg_2B40_7, arg_2B40_8, arg_2B40_9, arg_2B40_10, arg_2B40_11, arg_2B40_12, arg_2B40_13, arg_2B40_14, array));
         xIn.xRenderComponent.dixAnimations.Add(4, new Animation(4, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 1-2/Idle"), new Vector2(15f, 14f), 4, 10, 28, 18, 0, 0, 12, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(5, new Animation(5, 3, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 1-2/Idle"), new Vector2(15f, 14f), 4, 10, 28, 18, 0, 0, 12, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(6, new Animation(6, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 1-2/Attack"), new Vector2(17f, 14f), 5, 4, 32, 17, 0, 0, 12, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, false, false, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
             {
                 1f
             }), new AnimInsEvent(AnimInsEvent.EventType.FreezeFrame, new float[]
             {
                 12f
             })),
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
             {
                 4f
             }))
         }));
         xIn.xRenderComponent.dixAnimations.Add(7, new Animation(7, 3, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 1-2/Attack"), new Vector2(17f, 14f), 5, 4, 32, 17, 0, 0, 12, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, false, false, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
             {
                 1f
             }), new AnimInsEvent(AnimInsEvent.EventType.FreezeFrame, new float[]
             {
                 12f
             })),
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
             {
                 5f
             }))
         }));
         xIn.xRenderComponent.dixAnimations[1].enSpriteEffect = SpriteEffects.FlipHorizontally;
         xIn.xRenderComponent.dixAnimations[3].enSpriteEffect = SpriteEffects.FlipHorizontally;
         xIn.xRenderComponent.dixAnimations[5].enSpriteEffect = SpriteEffects.FlipHorizontally;
         xIn.xRenderComponent.dixAnimations[7].enSpriteEffect = SpriteEffects.FlipHorizontally;
         Dictionary<ushort, Animation> arg_2E8F_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_2E8F_1 = 10;
         ushort arg_2E8A_0 = 10;
         byte arg_2E8A_1 = 1;
         Texture2D arg_2E8A_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 3/Spawn");
         Vector2 arg_2E8A_3 = new Vector2(18f, 20f);
         int arg_2E8A_4 = 4;
         int arg_2E8A_5 = 7;
         int arg_2E8A_6 = 35;
         int arg_2E8A_7 = 22;
         int arg_2E8A_8 = 0;
         int arg_2E8A_9 = 0;
         int arg_2E8A_10 = 10;
         Animation.LoopSettings arg_2E8A_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_2E8A_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_2E8A_13 = false;
         bool arg_2E8A_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_2E59_0 = array;
         int arg_2E59_1 = 0;
         AnimInsCriteria arg_2E54_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_2E4F_0 = AnimInsEvent.EventType.PlaySound;
         string arg_2E4F_1 = "Summon_cloud";
         array2 = new float[1];
         arg_2E59_0[arg_2E59_1] = new AnimationInstruction(arg_2E54_0, new AnimInsEvent(arg_2E4F_0, arg_2E4F_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             14f
         }));
         arg_2E8F_0.Add(arg_2E8F_1, new Animation(arg_2E8A_0, arg_2E8A_1, arg_2E8A_2, arg_2E8A_3, arg_2E8A_4, arg_2E8A_5, arg_2E8A_6, arg_2E8A_7, arg_2E8A_8, arg_2E8A_9, arg_2E8A_10, arg_2E8A_11, arg_2E8A_12, arg_2E8A_13, arg_2E8A_14, array));
         Dictionary<ushort, Animation> arg_2F4F_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_2F4F_1 = 11;
         ushort arg_2F4A_0 = 11;
         byte arg_2F4A_1 = 3;
         Texture2D arg_2F4A_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 3/Spawn");
         Vector2 arg_2F4A_3 = new Vector2(18f, 20f);
         int arg_2F4A_4 = 4;
         int arg_2F4A_5 = 7;
         int arg_2F4A_6 = 35;
         int arg_2F4A_7 = 22;
         int arg_2F4A_8 = 0;
         int arg_2F4A_9 = 0;
         int arg_2F4A_10 = 10;
         Animation.LoopSettings arg_2F4A_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_2F4A_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_2F4A_13 = false;
         bool arg_2F4A_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_2F19_0 = array;
         int arg_2F19_1 = 0;
         AnimInsCriteria arg_2F14_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_2F0F_0 = AnimInsEvent.EventType.PlaySound;
         string arg_2F0F_1 = "Summon_cloud";
         array2 = new float[1];
         arg_2F19_0[arg_2F19_1] = new AnimationInstruction(arg_2F14_0, new AnimInsEvent(arg_2F0F_0, arg_2F0F_1, array2));
         array[1] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
         {
             15f
         }));
         arg_2F4F_0.Add(arg_2F4F_1, new Animation(arg_2F4A_0, arg_2F4A_1, arg_2F4A_2, arg_2F4A_3, arg_2F4A_4, arg_2F4A_5, arg_2F4A_6, arg_2F4A_7, arg_2F4A_8, arg_2F4A_9, arg_2F4A_10, arg_2F4A_11, arg_2F4A_12, arg_2F4A_13, arg_2F4A_14, array));
         Dictionary<ushort, Animation> arg_3007_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_3007_1 = 12;
         ushort arg_3002_0 = 12;
         byte arg_3002_1 = 1;
         Texture2D arg_3002_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 3/Despawn");
         Vector2 arg_3002_3 = new Vector2(20f, 20f);
         int arg_3002_4 = 4;
         int arg_3002_5 = 5;
         int arg_3002_6 = 43;
         int arg_3002_7 = 24;
         int arg_3002_8 = 0;
         int arg_3002_9 = 0;
         int arg_3002_10 = 12;
         Animation.LoopSettings arg_3002_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_3002_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_3002_13 = false;
         bool arg_3002_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_2FC7_0 = array;
         int arg_2FC7_1 = 0;
         AnimInsCriteria arg_2FC2_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]);
         AnimInsEvent.EventType arg_2FBD_0 = AnimInsEvent.EventType.CallBackAnimation;
         array2 = new float[1];
         arg_2FC7_0[arg_2FC7_1] = new AnimationInstruction(arg_2FC2_0, new AnimInsEvent(arg_2FBD_0, array2));
         AnimationInstruction[] arg_2FFF_0 = array;
         int arg_2FFF_1 = 1;
         AnimInsCriteria arg_2FFA_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_2FF5_0 = AnimInsEvent.EventType.PlaySound;
         string arg_2FF5_1 = "Enemy_Poof";
         array2 = new float[1];
         arg_2FFF_0[arg_2FFF_1] = new AnimationInstruction(arg_2FFA_0, new AnimInsEvent(arg_2FF5_0, arg_2FF5_1, array2));
         arg_3007_0.Add(arg_3007_1, new Animation(arg_3002_0, arg_3002_1, arg_3002_2, arg_3002_3, arg_3002_4, arg_3002_5, arg_3002_6, arg_3002_7, arg_3002_8, arg_3002_9, arg_3002_10, arg_3002_11, arg_3002_12, arg_3002_13, arg_3002_14, array));
         Dictionary<ushort, Animation> arg_30BF_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_30BF_1 = 13;
         ushort arg_30BA_0 = 13;
         byte arg_30BA_1 = 3;
         Texture2D arg_30BA_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 3/Despawn");
         Vector2 arg_30BA_3 = new Vector2(20f, 20f);
         int arg_30BA_4 = 4;
         int arg_30BA_5 = 5;
         int arg_30BA_6 = 43;
         int arg_30BA_7 = 24;
         int arg_30BA_8 = 0;
         int arg_30BA_9 = 0;
         int arg_30BA_10 = 12;
         Animation.LoopSettings arg_30BA_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_30BA_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_30BA_13 = false;
         bool arg_30BA_14 = false;
         array = new AnimationInstruction[2];
         AnimationInstruction[] arg_307F_0 = array;
         int arg_307F_1 = 0;
         AnimInsCriteria arg_307A_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]);
         AnimInsEvent.EventType arg_3075_0 = AnimInsEvent.EventType.CallBackAnimation;
         array2 = new float[1];
         arg_307F_0[arg_307F_1] = new AnimationInstruction(arg_307A_0, new AnimInsEvent(arg_3075_0, array2));
         AnimationInstruction[] arg_30B7_0 = array;
         int arg_30B7_1 = 1;
         AnimInsCriteria arg_30B2_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             2f
         });
         AnimInsEvent.EventType arg_30AD_0 = AnimInsEvent.EventType.PlaySound;
         string arg_30AD_1 = "Enemy_Poof";
         array2 = new float[1];
         arg_30B7_0[arg_30B7_1] = new AnimationInstruction(arg_30B2_0, new AnimInsEvent(arg_30AD_0, arg_30AD_1, array2));
         arg_30BF_0.Add(arg_30BF_1, new Animation(arg_30BA_0, arg_30BA_1, arg_30BA_2, arg_30BA_3, arg_30BA_4, arg_30BA_5, arg_30BA_6, arg_30BA_7, arg_30BA_8, arg_30BA_9, arg_30BA_10, arg_30BA_11, arg_30BA_12, arg_30BA_13, arg_30BA_14, array));
         xIn.xRenderComponent.dixAnimations.Add(14, new Animation(14, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 3/Idle"), new Vector2(18f, 20f), 4, 10, 35, 22, 0, 0, 12, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(15, new Animation(15, 3, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 3/Idle"), new Vector2(18f, 20f), 4, 10, 35, 22, 0, 0, 12, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(16, new Animation(16, 1, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 3/Attack"), new Vector2(21f, 20f), 5, 4, 39, 22, 0, 0, 12, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, false, false, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
             {
                 1f
             }), new AnimInsEvent(AnimInsEvent.EventType.FreezeFrame, new float[]
             {
                 12f
             })),
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
             {
                 14f
             }))
         }));
         xIn.xRenderComponent.dixAnimations.Add(17, new Animation(17, 3, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_SummonCloud, "Sprites/Spells/Cloud/Level 3/Attack"), new Vector2(21f, 20f), 5, 4, 39, 22, 0, 0, 12, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, false, false, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
             {
                 1f
             }), new AnimInsEvent(AnimInsEvent.EventType.FreezeFrame, new float[]
             {
                 12f
             })),
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
             {
                 15f
             }))
         }));
         xIn.xRenderComponent.dixAnimations[11].enSpriteEffect = SpriteEffects.FlipHorizontally;
         xIn.xRenderComponent.dixAnimations[13].enSpriteEffect = SpriteEffects.FlipHorizontally;
         xIn.xRenderComponent.dixAnimations[15].enSpriteEffect = SpriteEffects.FlipHorizontally;
         xIn.xRenderComponent.dixAnimations[17].enSpriteEffect = SpriteEffects.FlipHorizontally;
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Wind_ChainLightning)
     {
         xIn = new _Spells_ChainLightningInstance();
         _Spells_ChainLightningInstance xChainLightning = xIn as _Spells_ChainLightningInstance;
         xChainLightning.xRenderComponent = new AnimatedRenderComponent(xIn);
         xChainLightning.xRenderComponent.xTransform = xIn.xTransform;
         xChainLightning.xAttackPhaseEnemy = new AttackPhase(xChainLightning);
         xChainLightning.xAttackPhaseEnvironment = new AttackPhase(xChainLightning);
         xChainLightning.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xChainLightning.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         SphereCollider col8 = new SphereCollider(10f, new Vector2(0f, -11f), xChainLightning.xTransform, 0f, xChainLightning);
         col8.xAttackPhase = xChainLightning.xAttackPhaseEnemy;
         col8.bIsLarge = false;
         xChainLightning.xAttackPhaseEnemy.lxCurrentColliders.Add(col8);
         col8 = new SphereCollider(2f, new Vector2(0f, -3f), xChainLightning.xTransform, 0f, xChainLightning);
         col8.xAttackPhase = xChainLightning.xAttackPhaseEnvironment;
         col8.bCollideWithFlat = false;
         xChainLightning.xAttackPhaseEnvironment.lxCurrentColliders.Add(col8);
         xChainLightning.enType = enType;
         xChainLightning.xRenderComponent.xOwnerObject = xIn;
         xChainLightning.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -12f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 18, 25, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Wind_WindSlice)
     {
         xIn = new _Spells_WindSliceInstance();
         _Spells_WindSliceInstance xFireball5 = xIn as _Spells_WindSliceInstance;
         xFireball5.xRenderComponent = new AnimatedRenderComponent(xIn);
         xFireball5.xRenderComponent.xTransform = xIn.xTransform;
         xFireball5.xAttackPhaseEnemy = new AttackPhase(xFireball5);
         xFireball5.xAttackPhaseEnvironment = new AttackPhase(xFireball5);
         xFireball5.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xFireball5.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         SphereCollider col9 = new SphereCollider(12f, Vector2.Zero, xFireball5.xTransform, 0f, xFireball5);
         col9.xAttackPhase = xFireball5.xAttackPhaseEnemy;
         col9.bIsLarge = false;
         col9.bCollideWithFlat = false;
         xFireball5.xAttackPhaseEnemy.lxCurrentColliders.Add(col9);
         col9 = new SphereCollider(12f, Vector2.Zero, xFireball5.xTransform, 0f, xFireball5);
         col9.xAttackPhase = xFireball5.xAttackPhaseEnvironment;
         col9.bCollideWithFlat = false;
         xFireball5.xAttackPhaseEnvironment.lxCurrentColliders.Add(col9);
         xFireball5.enType = enType;
         xFireball5.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_WindSlice, "Sprites/Spells/Wind Slash/Level 1/Slash/Mid"), new Vector2(9f, 17f), 4, 2, 18, 35, 0, 0, 5, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations[0].enSpriteEffect = SpriteEffects.FlipHorizontally;
         Dictionary<ushort, Animation> arg_36FE_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_36FE_1 = 1;
         ushort arg_36F9_0 = 1;
         byte arg_36F9_1 = 0;
         Texture2D arg_36F9_2 = Program.GetTheGame().xSpellAssetLibrary.GetTexture2DByString(SpellCodex.SpellTypes._Magic_Wind_WindSlice, "Sprites/Spells/Wind Slash/Level 1/Slash/End");
         Vector2 arg_36F9_3 = new Vector2(9f, 15f);
         int arg_36F9_4 = 4;
         int arg_36F9_5 = 5;
         int arg_36F9_6 = 28;
         int arg_36F9_7 = 29;
         int arg_36F9_8 = 0;
         int arg_36F9_9 = 0;
         int arg_36F9_10 = 5;
         Animation.LoopSettings arg_36F9_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_36F9_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_36F9_13 = true;
         bool arg_36F9_14 = true;
         AnimationInstruction[] array = new AnimationInstruction[1];
         AnimationInstruction[] arg_36F6_0 = array;
         int arg_36F6_1 = 0;
         AnimInsCriteria arg_36F1_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]);
         AnimInsEvent.EventType arg_36EC_0 = AnimInsEvent.EventType.CallBackAnimation;
         float[] array2 = new float[1];
         arg_36F6_0[arg_36F6_1] = new AnimationInstruction(arg_36F1_0, new AnimInsEvent(arg_36EC_0, array2));
         arg_36FE_0.Add(arg_36FE_1, new Animation(arg_36F9_0, arg_36F9_1, arg_36F9_2, arg_36F9_3, arg_36F9_4, arg_36F9_5, arg_36F9_6, arg_36F9_7, arg_36F9_8, arg_36F9_9, arg_36F9_10, arg_36F9_11, arg_36F9_12, arg_36F9_13, arg_36F9_14, array));
         xIn.xRenderComponent.dixAnimations[1].enSpriteEffect = SpriteEffects.FlipHorizontally;
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Ice_IceSpikes)
     {
         xIn = new _Spells_IcespikeInstance();
         _Spells_IcespikeInstance xFireball6 = xIn as _Spells_IcespikeInstance;
         xFireball6.xRenderComponent = new AnimatedRenderComponent(xIn);
         xFireball6.xRenderComponent.xTransform = xIn.xTransform;
         xFireball6.xAttackPhaseEnemy = new AttackPhase(xFireball6);
         xFireball6.xAttackPhaseEnvironment = new AttackPhase(xFireball6);
         xFireball6.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xFireball6.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         SphereCollider col10 = new SphereCollider(11f, new Vector2(0f, -7f), xFireball6.xTransform, 0f, xFireball6);
         col10.xAttackPhase = xFireball6.xAttackPhaseEnemy;
         col10.bIsLarge = false;
         xFireball6.xAttackPhaseEnemy.lxCurrentColliders.Add(col10);
         xFireball6.xAttackPhaseEnemy.RegisterCurrent();
         col10 = new SphereCollider(2f, new Vector2(0f, -3f), xFireball6.xTransform, 0f, xFireball6);
         col10.xAttackPhase = xFireball6.xAttackPhaseEnvironment;
         col10.bCollideWithFlat = true;
         xFireball6.xAttackPhaseEnvironment.lxCurrentColliders.Add(col10);
         xFireball6.xAttackPhaseEnvironment.RegisterCurrent();
         xFireball6.enType = enType;
         xFireball6.xRenderComponent.xOwnerObject = xIn;
         xFireball6.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -12f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 18, 25, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(1, new Animation(1, 1, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 18, 25, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(2, new Animation(2, 2, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 18, 25, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(3, new Animation(3, 3, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 18, 25, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Ice_IceNova)
     {
         xIn = new _Spells_IceNovaInstance();
         _Spells_IceNovaInstance xNova = xIn as _Spells_IceNovaInstance;
         xNova.xRenderComponent = new AnimatedRenderComponent(xIn);
         xNova.xRenderComponent.xTransform = xIn.xTransform;
         xNova.xAttackPhaseEnemy = new AttackPhase(xNova);
         SphereCollider col11 = new SphereCollider(12f, new Vector2(0f, -4f), xNova.xTransform, 0f, xNova);
         col11.xAttackPhase = xNova.xAttackPhaseEnemy;
         col11.bIsLarge = false;
         xNova.xAttackPhaseEnemy.lxCurrentColliders.Add(col11);
         xNova.xAttackPhaseEnemy.RegisterCurrent();
         xNova.enType = enType;
         xNova.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 18, 25, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Ice_FrostyFriend)
     {
         xIn = new _Spells_FrostyFriendInstance();
         _Spells_FrostyFriendInstance xCloud4 = xIn as _Spells_FrostyFriendInstance;
         xCloud4.xRenderComponent = new AnimatedRenderComponent(xIn);
         xCloud4.xRenderComponent.xTransform = xIn.xTransform;
         xCloud4.enType = enType;
         xCloud4.xRenderComponent.xOwnerObject = xIn;
         xCloud4.bPersistent = true;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 1, RenderMaster.txNullTex, new Vector2(15f, 14f), 4, 7, 28, 18, 0, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, false, false, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Magic_Light_Heal)
     {
         xIn = new _Spells_HealInstance();
         _Spells_HealInstance xArrow = xIn as _Spells_HealInstance;
         xArrow.enType = enType;
         xArrow.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow.xRenderComponent.xTransform = xIn.xTransform;
         xArrow.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 1, 1, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_Bow_ShootArrow)
     {
         xIn = new _Spells_ArrowInstance();
         _Spells_ArrowInstance xArrow2 = xIn as _Spells_ArrowInstance;
         xArrow2.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow2.xRenderComponent.xTransform = xIn.xTransform;
         xArrow2.xAttackPhaseEnemy = new AttackPhase(xArrow2);
         xArrow2.xAttackPhaseEnvironment = new AttackPhase(xArrow2);
         xArrow2.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xArrow2.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         SphereCollider col12 = new SphereCollider(10f, new Vector2(0f, -3f), xArrow2.xTransform, 0f, xArrow2);
         col12.xAttackPhase = xArrow2.xAttackPhaseEnemy;
         col12.bIsLarge = false;
         xArrow2.xAttackPhaseEnemy.lxCurrentColliders.Add(col12);
         xArrow2.xAttackPhaseEnemy.RegisterCurrent();
         col12 = new SphereCollider(2f, new Vector2(0f, -2f), xArrow2.xTransform, 0f, xArrow2);
         col12.xAttackPhase = xArrow2.xAttackPhaseEnvironment;
         col12.bCollideWithFlat = false;
         xArrow2.xAttackPhaseEnvironment.lxCurrentColliders.Add(col12);
         col12 = new SphereCollider(2f, new Vector2(0f, -2f), xArrow2.xTransform, 0f, xArrow2);
         col12.xAttackPhase = xArrow2.xAttackPhaseEnvironment;
         col12.bCollideWithFlat = false;
         xArrow2.xAttackPhaseEnvironment.lxCurrentColliders.Add(col12);
         xArrow2.xAttackPhaseEnvironment.RegisterCurrent();
         xArrow2.enType = enType;
         xArrow2.xRenderComponent.xOwnerObject = xIn;
         xArrow2.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -12f);
         xArrow2.bAutoDestructInNetwork = false;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Spells/Arrows/Basic/Up"), new Vector2(4f, 8f), 4, 1, 7, 16, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(1, new Animation(1, 1, Content.Load<Texture2D>("Sprites/Spells/Arrows/Basic/Right"), new Vector2(8f, 4f), 4, 1, 16, 7, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(2, new Animation(2, 2, Content.Load<Texture2D>("Sprites/Spells/Arrows/Basic/Down"), new Vector2(4f, 8f), 4, 1, 7, 16, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(3, new Animation(3, 3, Content.Load<Texture2D>("Sprites/Spells/Arrows/Basic/Left"), new Vector2(8f, 4f), 4, 1, 16, 7, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_Bow_SplittingArrow)
     {
         xIn = new _Skills_SplittingArrowInstance();
         _Skills_SplittingArrowInstance xArrow3 = xIn as _Skills_SplittingArrowInstance;
         xArrow3.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow3.xRenderComponent.xTransform = xIn.xTransform;
         xArrow3.xAttackPhaseEnemy = new AttackPhase(xArrow3);
         xArrow3.xAttackPhaseEnvironment = new AttackPhase(xArrow3);
         xArrow3.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xArrow3.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         SphereCollider col13 = new SphereCollider(10f, new Vector2(0f, -6f), xArrow3.xTransform, 0f, xArrow3);
         col13.xAttackPhase = xArrow3.xAttackPhaseEnemy;
         col13.bIsLarge = false;
         xArrow3.xAttackPhaseEnemy.lxCurrentColliders.Add(col13);
         xArrow3.xAttackPhaseEnemy.RegisterCurrent();
         col13 = new SphereCollider(2f, new Vector2(0f, -2f), xArrow3.xTransform, 0f, xArrow3);
         col13.xAttackPhase = xArrow3.xAttackPhaseEnvironment;
         col13.bCollideWithFlat = false;
         xArrow3.xAttackPhaseEnvironment.lxCurrentColliders.Add(col13);
         xArrow3.xAttackPhaseEnvironment.RegisterCurrent();
         xArrow3.enType = enType;
         xArrow3.xRenderComponent.xOwnerObject = xIn;
         xArrow3.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -12f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Spells/Arrows/Basic/Up"), new Vector2(4f, 8f), 4, 1, 7, 16, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(1, new Animation(1, 1, Content.Load<Texture2D>("Sprites/Spells/Arrows/Basic/Right"), new Vector2(8f, 4f), 4, 1, 16, 7, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(2, new Animation(2, 2, Content.Load<Texture2D>("Sprites/Spells/Arrows/Basic/Down"), new Vector2(4f, 8f), 4, 1, 7, 16, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.dixAnimations.Add(3, new Animation(3, 3, Content.Load<Texture2D>("Sprites/Spells/Arrows/Basic/Left"), new Vector2(8f, 4f), 4, 1, 16, 7, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_Bow_MachineBow)
     {
         xIn = new _Skills_MachineBowInstance();
         _Skills_MachineBowInstance xArrow4 = xIn as _Skills_MachineBowInstance;
         xArrow4.enType = enType;
         xArrow4.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow4.xRenderComponent.xTransform = xIn.xTransform;
         xArrow4.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 1, 1, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_OneHanded_Stinger)
     {
         xIn = new _Spells_StingerInstance();
         _Spells_StingerInstance xArrow5 = xIn as _Spells_StingerInstance;
         xArrow5.enType = enType;
         xArrow5.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow5.xRenderComponent.xTransform = xIn.xTransform;
         xArrow5.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 1, 1, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_OneHanded_QuickCounter)
     {
         xIn = new _Spells_ShortswingInstance();
         _Spells_ShortswingInstance xArrow6 = xIn as _Spells_ShortswingInstance;
         xArrow6.bSendOwnerID = true;
         xArrow6.enType = enType;
         xArrow6.xAttackPhaseEnemy = new AttackPhase(xArrow6);
         xArrow6.xAttackPhaseEnemy.xStats.bKnockBackOwner = false;
         if (Program.GetTheGame().xNetworkInfo.enCurrentRole != NetworkHelperInterface.NetworkRole.Client)
         {
             BoxCollider col14 = new BoxCollider(24, 40, 0f, new Vector2(0f, 0f), xArrow6.xTransform, 0f, xArrow6);
             col14.xAttackPhase = xArrow6.xAttackPhaseEnemy;
             col14.bIsLarge = false;
             xArrow6.xAttackPhaseEnemy.lxCurrentColliders.Add(col14);
         }
         xArrow6.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow6.xRenderComponent.xTransform = xIn.xTransform;
         xArrow6.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 1, 1, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_OneHanded_MillionStabs)
     {
         xIn = new _Skills_StabInstance();
         _Skills_StabInstance xArrow7 = xIn as _Skills_StabInstance;
         xArrow7.enType = enType;
         xArrow7.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow7.xRenderComponent.xTransform = xIn.xTransform;
         xArrow7.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 1, 1, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_OneHanded_ShadowClone)
     {
         xIn = new _Skills_ShadowCloneInstance();
         _Skills_ShadowCloneInstance xArrow8 = xIn as _Skills_ShadowCloneInstance;
         xArrow8.enType = enType;
         xArrow8.bSendOwnerID = true;
         xArrow8.bPersistent = true;
         xArrow8.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow8.xRenderComponent.xTransform = xIn.xTransform;
         xArrow8.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 1, 1, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_OneHanded_SpiritSlash)
     {
         xIn = new _Skills_SpiritSlashInstance();
         _Skills_SpiritSlashInstance xArrow9 = xIn as _Skills_SpiritSlashInstance;
         xArrow9.enType = enType;
         xArrow9.bSendOwnerID = true;
         xArrow9.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow9.xRenderComponent.xTransform = xIn.xTransform;
         xArrow9.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 1, 1, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_TwoHanded_Spin)
     {
         xIn = new _Spells_SpinInstance();
         _Spells_SpinInstance xArrow10 = xIn as _Spells_SpinInstance;
         xArrow10.enType = enType;
         xArrow10.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow10.xRenderComponent.xTransform = xIn.xTransform;
         xArrow10.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 1, 1, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_TwoHanded_Overhead)
     {
         xIn = new _Spells_OverheadInstance();
         _Spells_OverheadInstance xArrow11 = xIn as _Spells_OverheadInstance;
         xArrow11.enType = enType;
         xArrow11.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow11.xRenderComponent.xTransform = xIn.xTransform;
         xArrow11.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 1, 1, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_TwoHanded_Throw)
     {
         xIn = new _Spells_ThrowInstance();
         _Spells_ThrowInstance xFireball7 = xIn as _Spells_ThrowInstance;
         xFireball7.xRenderComponent = new AnimatedRenderComponent(xIn);
         xFireball7.xRenderComponent.xTransform = xIn.xTransform;
         xFireball7.bSendOwnerID = true;
         xFireball7.xAttackPhaseEnemy = new AttackPhase(xFireball7);
         xFireball7.xAttackPhaseEnvironment = new AttackPhase(xFireball7);
         xFireball7.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xFireball7.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         if (Program.GetTheGame().xNetworkInfo.enCurrentRole != NetworkHelperInterface.NetworkRole.Client)
         {
             SphereCollider col15 = new SphereCollider(14f, new Vector2(0f, 0f), xFireball7.xTransform, 0f, xFireball7);
             col15.xAttackPhase = xFireball7.xAttackPhaseEnemy;
             col15.bIsLarge = false;
             xFireball7.xAttackPhaseEnemy.lxCurrentColliders.Add(col15);
             col15 = new SphereCollider(12f, new Vector2(0f, 0f), xFireball7.xTransform, 0f, xFireball7);
             col15.xAttackPhase = xFireball7.xAttackPhaseEnvironment;
             col15.bCollideWithFlat = false;
             xFireball7.xAttackPhaseEnvironment.lxCurrentColliders.Add(col15);
         }
         xFireball7.enType = enType;
         xFireball7.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(18f, 32f), 3, 7, 36, 41, 36, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_TwoHanded_Smash)
     {
         xIn = new _Spells_SmashInstance();
         _Spells_SmashInstance xFireball8 = xIn as _Spells_SmashInstance;
         xFireball8.xRenderComponent = new AnimatedRenderComponent(xIn);
         xFireball8.xRenderComponent.xTransform = xIn.xTransform;
         xFireball8.bSendOwnerID = true;
         xFireball8.xAttackPhaseEnemy = new AttackPhase(xFireball8);
         xFireball8.xAttackPhaseEnvironment = new AttackPhase(xFireball8);
         xFireball8.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xFireball8.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         if (Program.GetTheGame().xNetworkInfo.enCurrentRole != NetworkHelperInterface.NetworkRole.Client)
         {
             SphereCollider col16 = new SphereCollider(20f, new Vector2(0f, 0f), xFireball8.xTransform, 0f, xFireball8);
             col16.xAttackPhase = xFireball8.xAttackPhaseEnemy;
             col16.bIsLarge = false;
             xFireball8.xAttackPhaseEnemy.lxCurrentColliders.Add(col16);
             col16 = new SphereCollider(20f, new Vector2(0f, 0f), xFireball8.xTransform, 0f, xFireball8);
             col16.xAttackPhase = xFireball8.xAttackPhaseEnemy;
             col16.bIsLarge = false;
             xFireball8.xAttackPhaseEnemy.lxCurrentColliders.Add(col16);
             col16 = new SphereCollider(1f, new Vector2(0f, 0f), xFireball8.xTransform, 0f, xFireball8);
             col16.xAttackPhase = xFireball8.xAttackPhaseEnvironment;
             col16.bCollideWithFlat = false;
             xFireball8.xAttackPhaseEnvironment.lxCurrentColliders.Add(col16);
         }
         xFireball8.enType = enType;
         xFireball8.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(18f, 32f), 3, 7, 36, 41, 36, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_TwoHanded_Smash_TravelInstance)
     {
         xIn = new _Spells_SmashTravelInstance();
         _Spells_SmashTravelInstance xFireball9 = xIn as _Spells_SmashTravelInstance;
         xFireball9.xRenderComponent = new AnimatedRenderComponent(xIn);
         xFireball9.xRenderComponent.xTransform = xIn.xTransform;
         xFireball9.bSendOwnerID = true;
         xFireball9.xAttackPhaseEnemy = new AttackPhase(xFireball9);
         xFireball9.xAttackPhaseEnvironment = new AttackPhase(xFireball9);
         xFireball9.xAttackPhaseEnvironment.xStats.bKnockBackOwner = (xFireball9.xAttackPhaseEnemy.xStats.bKnockBackOwner = false);
         xFireball9.colMoveCollider = new SphereCollider(18f, new Vector2(0f, 0f), xFireball9.xTransform, 10f, xFireball9);
         xFireball9.colMoveCollider.bIsLarge = false;
         if (Program.GetTheGame().xNetworkInfo.enCurrentRole != NetworkHelperInterface.NetworkRole.Client)
         {
             SphereCollider col17 = new SphereCollider(14f, new Vector2(0f, 0f), xFireball9.xTransform, 0f, xFireball9);
             col17.xAttackPhase = xFireball9.xAttackPhaseEnemy;
             col17.bIsLarge = false;
             xFireball9.xAttackPhaseEnemy.lenLayers.Add(Collider.ColliderLayers.Enemies);
             xFireball9.xAttackPhaseEnemy.lenLayers.Add(Collider.ColliderLayers.DynamicEnvironment);
             xFireball9.xAttackPhaseEnemy.lxCurrentColliders.Add(col17);
             col17 = new SphereCollider(12f, new Vector2(0f, 0f), xFireball9.xTransform, 0f, xFireball9);
             col17.xAttackPhase = xFireball9.xAttackPhaseEnvironment;
             col17.bCollideWithFlat = false;
             xFireball9.xAttackPhaseEnvironment.lxCurrentColliders.Add(col17);
         }
         xFireball9.enType = enType;
         xFireball9.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(18f, 32f), 3, 7, 36, 41, 36, 0, 10, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Skill_TwoHanded_BerserkMode)
     {
         xIn = new _Skills_BerserkInstance();
         _Skills_BerserkInstance xArrow12 = xIn as _Skills_BerserkInstance;
         xArrow12.enType = enType;
         xArrow12.bSendOwnerID = true;
         xArrow12.bPersistent = true;
         xArrow12.xRenderComponent = new AnimatedRenderComponent(xIn);
         xArrow12.xRenderComponent.xTransform = xIn.xTransform;
         xArrow12.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 1, 1, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._Ridiculon_ButterflySwarm)
     {
         xIn = new _Ridiculon_ButterflySwarmInstance();
         _Ridiculon_ButterflySwarmInstance xProjectile = xIn as _Ridiculon_ButterflySwarmInstance;
         xProjectile.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile.enType = enType;
         xProjectile.xRenderComponent.xOwnerObject = xIn;
         xProjectile.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -6f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 4, 5, 18, 25, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_JackLantern_Flame)
     {
         xIn = new _EnemySpells_JackLanternProjectile();
         _EnemySpells_JackLanternProjectile xProjectile2 = xIn as _EnemySpells_JackLanternProjectile;
         xProjectile2.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile2.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile2.xAttackPhasePlayer = new AttackPhase(xProjectile2);
         xProjectile2.xAttackPhaseEnvironment = new AttackPhase(xProjectile2);
         SphereCollider col18 = new SphereCollider(6f, new Vector2(0f, -2f), xProjectile2.xTransform, 0f, xProjectile2);
         col18.xAttackPhase = xProjectile2.xAttackPhasePlayer;
         col18.bIsLarge = false;
         xProjectile2.xAttackPhasePlayer.lxCurrentColliders.Add(col18);
         xProjectile2.xAttackPhasePlayer.RegisterCurrent();
         xProjectile2.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col18 = new SphereCollider(2f, new Vector2(0f, -3f), xProjectile2.xTransform, 0f, xProjectile2);
         col18.xAttackPhase = xProjectile2.xAttackPhaseEnvironment;
         col18.bCollideWithFlat = false;
         xProjectile2.xAttackPhaseEnvironment.lxCurrentColliders.Add(col18);
         xProjectile2.enType = enType;
         xProjectile2.xRenderComponent.xOwnerObject = xIn;
         xProjectile2.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -6f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Halloween Forest/Jack o Lantern/Projectile/Projectile"), new Vector2(3f, 10f), 4, 5, 7, 13, 0, 0, 5, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         DynamicLight xLight2 = new DynamicLight();
         xLight2.xRenderComponent.xTransform = xIn.xTransform;
         xLight2.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Program.GetTheGame().xRenderMaster.dstxLightSources["OmniLightRad100"], new Vector2(100f, 100f), 4, 1, 200, 200, 0, 0, 1, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xLight2.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xLight2.SetScale(0.15f);
         xLight2.xMountObject = xIn;
         xLight2.enDestructionType = DynamicLight.DestructionType.Flash;
         xLight2.fFlicker = 0.3f;
         xLight2.iFlickerInterval = 15;
         Program.GetTheGame()._DynamicLight_CreateDynamicLight(xLight2);
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_Halloweed_Root)
     {
         xIn = new _EnemySpells_HalloweedRoot();
         _EnemySpells_HalloweedRoot xProjectile3 = xIn as _EnemySpells_HalloweedRoot;
         xProjectile3.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile3.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile3.xAttackPhasePlayer = new AttackPhase(xProjectile3);
         xProjectile3.xAttackPhaseEnvironment = new AttackPhase(xProjectile3);
         SphereCollider col19 = new SphereCollider(3f, new Vector2(0f, -2f), xProjectile3.xTransform, 0f, xProjectile3);
         col19.xAttackPhase = xProjectile3.xAttackPhasePlayer;
         col19.bIsLarge = false;
         xProjectile3.xAttackPhasePlayer.lxCurrentColliders.Add(col19);
         xProjectile3.xAttackPhasePlayer.RegisterCurrent();
         xProjectile3.xAttackPhasePlayer.xStats.bNonDamaging = true;
         col19 = new SphereCollider(2f, new Vector2(0f, -3f), xProjectile3.xTransform, 0f, xProjectile3);
         col19.xAttackPhase = xProjectile3.xAttackPhaseEnvironment;
         col19.bCollideWithFlat = false;
         xProjectile3.xAttackPhaseEnvironment.lxCurrentColliders.Add(col19);
         xProjectile3.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile3.enType = enType;
         xProjectile3.xRenderComponent.xOwnerObject = xIn;
         xProjectile3.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -6f);
         xIn.xRenderComponent.dixAnimations[0] = new Animation(0, 0, RenderMaster.txNullTex, new Vector2(11f, 6f), 4, 1, 21, 12, 0, 0, 13, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]);
         Dictionary<ushort, Animation> arg_512E_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_512E_1 = 1;
         ushort arg_5129_0 = 1;
         byte arg_5129_1 = 0;
         Texture2D arg_5129_2 = Content.Load<Texture2D>("Sprites/Monster/Halloween Forest/Halloweed/RootEffect/Start");
         Vector2 arg_5129_3 = new Vector2(21f, 26f);
         int arg_5129_4 = 4;
         int arg_5129_5 = 7;
         int arg_5129_6 = 41;
         int arg_5129_7 = 41;
         int arg_5129_8 = 0;
         int arg_5129_9 = 0;
         int arg_5129_10 = 13;
         Animation.LoopSettings arg_5129_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_5129_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_5129_13 = true;
         bool arg_5129_14 = true;
         AnimationInstruction[] array = new AnimationInstruction[1];
         AnimationInstruction[] arg_5126_0 = array;
         int arg_5126_1 = 0;
         AnimInsCriteria arg_5121_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtStart, new float[0]);
         AnimInsEvent.EventType arg_511C_0 = AnimInsEvent.EventType.PlaySound;
         string arg_511C_1 = "Halloweed_SnareHit";
         float[] array2 = new float[1];
         arg_5126_0[arg_5126_1] = new AnimationInstruction(arg_5121_0, new AnimInsEvent(arg_511C_0, arg_511C_1, array2));
         arg_512E_0[arg_512E_1] = new Animation(arg_5129_0, arg_5129_1, arg_5129_2, arg_5129_3, arg_5129_4, arg_5129_5, arg_5129_6, arg_5129_7, arg_5129_8, arg_5129_9, arg_5129_10, arg_5129_11, arg_5129_12, arg_5129_13, arg_5129_14, array);
         Dictionary<ushort, Animation> arg_528E_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_528E_1 = 2;
         ushort arg_5289_0 = 2;
         byte arg_5289_1 = 0;
         Texture2D arg_5289_2 = Content.Load<Texture2D>("Sprites/Monster/Halloween Forest/Halloweed/RootEffect/End");
         Vector2 arg_5289_3 = new Vector2(21f, 26f);
         int arg_5289_4 = 4;
         int arg_5289_5 = 6;
         int arg_5289_6 = 41;
         int arg_5289_7 = 41;
         int arg_5289_8 = 0;
         int arg_5289_9 = 0;
         int arg_5289_10 = 13;
         Animation.LoopSettings arg_5289_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_5289_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_5289_13 = true;
         bool arg_5289_14 = true;
         array = new AnimationInstruction[5];
         AnimationInstruction[] arg_51A3_0 = array;
         int arg_51A3_1 = 0;
         AnimInsCriteria arg_519E_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             4f
         });
         AnimInsEvent.EventType arg_5199_0 = AnimInsEvent.EventType.CallBackAnimation;
         array2 = new float[1];
         arg_51A3_0[arg_51A3_1] = new AnimationInstruction(arg_519E_0, new AnimInsEvent(arg_5199_0, array2));
         AnimationInstruction[] arg_51DF_0 = array;
         int arg_51DF_1 = 1;
         AnimInsCriteria arg_51DA_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         });
         AnimInsEvent.EventType arg_51D5_0 = AnimInsEvent.EventType.FreezeFrame;
         array2 = new float[2];
         array2[0] = 20f;
         arg_51DF_0[arg_51DF_1] = new AnimationInstruction(arg_51DA_0, new AnimInsEvent(arg_51D5_0, array2));
         array[2] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         }), new AnimInsEvent(AnimInsEvent.EventType.AdjustAlpha, new float[]
         {
             -0.025f
         }));
         AnimationInstruction[] arg_5257_0 = array;
         int arg_5257_1 = 3;
         AnimInsCriteria arg_5252_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         });
         AnimInsEvent.EventType arg_524D_0 = AnimInsEvent.EventType.FreezeFrame;
         array2 = new float[2];
         array2[0] = 40f;
         arg_5257_0[arg_5257_1] = new AnimationInstruction(arg_5252_0, new AnimInsEvent(arg_524D_0, array2));
         array[4] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             1f
         }));
         arg_528E_0[arg_528E_1] = new Animation(arg_5289_0, arg_5289_1, arg_5289_2, arg_5289_3, arg_5289_4, arg_5289_5, arg_5289_6, arg_5289_7, arg_5289_8, arg_5289_9, arg_5289_10, arg_5289_11, arg_5289_12, arg_5289_13, arg_5289_14, array);
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_SummerElder_Root)
     {
         xIn = new _EnemySpells_SummerElderRoot();
         _EnemySpells_SummerElderRoot xProjectile4 = xIn as _EnemySpells_SummerElderRoot;
         xProjectile4.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile4.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile4.xAttackPhasePlayer = new AttackPhase(xProjectile4);
         xProjectile4.xAttackPhaseEnvironment = new AttackPhase(xProjectile4);
         SphereCollider col20 = new SphereCollider(3f, new Vector2(0f, -2f), xProjectile4.xTransform, 0f, xProjectile4);
         col20.xAttackPhase = xProjectile4.xAttackPhasePlayer;
         col20.bIsLarge = false;
         xProjectile4.xAttackPhasePlayer.lxCurrentColliders.Add(col20);
         xProjectile4.xAttackPhasePlayer.RegisterCurrent();
         xProjectile4.xAttackPhasePlayer.xStats.bNonDamaging = true;
         col20 = new SphereCollider(2f, new Vector2(0f, -3f), xProjectile4.xTransform, 0f, xProjectile4);
         col20.xAttackPhase = xProjectile4.xAttackPhaseEnvironment;
         col20.bCollideWithFlat = false;
         xProjectile4.xAttackPhaseEnvironment.lxCurrentColliders.Add(col20);
         xProjectile4.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile4.enType = enType;
         xProjectile4.xRenderComponent.xOwnerObject = xIn;
         xProjectile4.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -6f);
         xIn.xRenderComponent.dixAnimations[0] = new Animation(0, 0, RenderMaster.txNullTex, new Vector2(11f, 6f), 4, 1, 21, 12, 0, 0, 13, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]);
         Dictionary<ushort, Animation> arg_549A_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_549A_1 = 1;
         ushort arg_5495_0 = 1;
         byte arg_5495_1 = 0;
         Texture2D arg_5495_2 = Content.Load<Texture2D>("Sprites/Monster/Halloween Forest/Halloweed/RootEffect/Start");
         Vector2 arg_5495_3 = new Vector2(21f, 26f);
         int arg_5495_4 = 4;
         int arg_5495_5 = 7;
         int arg_5495_6 = 41;
         int arg_5495_7 = 41;
         int arg_5495_8 = 0;
         int arg_5495_9 = 0;
         int arg_5495_10 = 13;
         Animation.LoopSettings arg_5495_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_5495_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_5495_13 = true;
         bool arg_5495_14 = true;
         AnimationInstruction[] array = new AnimationInstruction[1];
         AnimationInstruction[] arg_5492_0 = array;
         int arg_5492_1 = 0;
         AnimInsCriteria arg_548D_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtStart, new float[0]);
         AnimInsEvent.EventType arg_5488_0 = AnimInsEvent.EventType.PlaySound;
         string arg_5488_1 = "Halloweed_SnareHit";
         float[] array2 = new float[1];
         arg_5492_0[arg_5492_1] = new AnimationInstruction(arg_548D_0, new AnimInsEvent(arg_5488_0, arg_5488_1, array2));
         arg_549A_0[arg_549A_1] = new Animation(arg_5495_0, arg_5495_1, arg_5495_2, arg_5495_3, arg_5495_4, arg_5495_5, arg_5495_6, arg_5495_7, arg_5495_8, arg_5495_9, arg_5495_10, arg_5495_11, arg_5495_12, arg_5495_13, arg_5495_14, array);
         Dictionary<ushort, Animation> arg_55FA_0 = xIn.xRenderComponent.dixAnimations;
         ushort arg_55FA_1 = 2;
         ushort arg_55F5_0 = 2;
         byte arg_55F5_1 = 0;
         Texture2D arg_55F5_2 = Content.Load<Texture2D>("Sprites/Monster/Halloween Forest/Halloweed/RootEffect/End");
         Vector2 arg_55F5_3 = new Vector2(21f, 26f);
         int arg_55F5_4 = 4;
         int arg_55F5_5 = 6;
         int arg_55F5_6 = 41;
         int arg_55F5_7 = 41;
         int arg_55F5_8 = 0;
         int arg_55F5_9 = 0;
         int arg_55F5_10 = 13;
         Animation.LoopSettings arg_55F5_11 = Animation.LoopSettings.Clamp;
         Animation.CancelOptions arg_55F5_12 = Animation.CancelOptions.IgnoreIfPlaying;
         bool arg_55F5_13 = true;
         bool arg_55F5_14 = true;
         array = new AnimationInstruction[5];
         AnimationInstruction[] arg_550F_0 = array;
         int arg_550F_1 = 0;
         AnimInsCriteria arg_550A_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             4f
         });
         AnimInsEvent.EventType arg_5505_0 = AnimInsEvent.EventType.CallBackAnimation;
         array2 = new float[1];
         arg_550F_0[arg_550F_1] = new AnimationInstruction(arg_550A_0, new AnimInsEvent(arg_5505_0, array2));
         AnimationInstruction[] arg_554B_0 = array;
         int arg_554B_1 = 1;
         AnimInsCriteria arg_5546_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         });
         AnimInsEvent.EventType arg_5541_0 = AnimInsEvent.EventType.FreezeFrame;
         array2 = new float[2];
         array2[0] = 20f;
         arg_554B_0[arg_554B_1] = new AnimationInstruction(arg_5546_0, new AnimInsEvent(arg_5541_0, array2));
         array[2] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         }), new AnimInsEvent(AnimInsEvent.EventType.AdjustAlpha, new float[]
         {
             -0.025f
         }));
         AnimationInstruction[] arg_55C3_0 = array;
         int arg_55C3_1 = 3;
         AnimInsCriteria arg_55BE_0 = new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtFrameX, new float[]
         {
             6f
         });
         AnimInsEvent.EventType arg_55B9_0 = AnimInsEvent.EventType.FreezeFrame;
         array2 = new float[2];
         array2[0] = 40f;
         arg_55C3_0[arg_55C3_1] = new AnimationInstruction(arg_55BE_0, new AnimInsEvent(arg_55B9_0, array2));
         array[4] = new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.CallBackAnimation, new float[]
         {
             1f
         }));
         arg_55FA_0[arg_55FA_1] = new Animation(arg_55F5_0, arg_55F5_1, arg_55F5_2, arg_55F5_3, arg_55F5_4, arg_55F5_5, arg_55F5_6, arg_55F5_7, arg_55F5_8, arg_55F5_9, arg_55F5_10, arg_55F5_11, arg_55F5_12, arg_55F5_13, arg_55F5_14, array);
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_BallSpark_HomingSpark)
     {
         xIn = new _EnemySpells_BallSparkSpark();
         _EnemySpells_BallSparkSpark xProjectile5 = xIn as _EnemySpells_BallSparkSpark;
         xProjectile5.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile5.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile5.xAttackPhasePlayer = new AttackPhase(xProjectile5);
         xProjectile5.xAttackPhaseEnvironment = new AttackPhase(xProjectile5);
         SphereCollider col21 = new SphereCollider(3f, new Vector2(0f, -3f), xProjectile5.xTransform, 0f, xProjectile5);
         col21.xAttackPhase = xProjectile5.xAttackPhasePlayer;
         col21.bIsLarge = false;
         xProjectile5.xAttackPhasePlayer.lxCurrentColliders.Add(col21);
         xProjectile5.xAttackPhasePlayer.RegisterCurrent();
         xProjectile5.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col21 = new SphereCollider(2f, new Vector2(0f, -4f), xProjectile5.xTransform, 0f, xProjectile5);
         col21.xAttackPhase = xProjectile5.xAttackPhaseEnvironment;
         col21.bCollideWithFlat = false;
         xProjectile5.xAttackPhaseEnvironment.lxCurrentColliders.Add(col21);
         xProjectile5.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile5.enType = enType;
         xProjectile5.xRenderComponent.xOwnerObject = xIn;
         xProjectile5.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Temple/Sphere/Projectile/Idle"), new Vector2(10f, 10f), 3, 6, 20, 20, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 16f;
         DynamicLight xLight3 = new DynamicLight();
         xLight3.xRenderComponent.xTransform = xIn.xTransform;
         xLight3.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Program.GetTheGame().xRenderMaster.dstxLightSources["OmniLightRad100"], new Vector2(100f, 100f), 4, 1, 200, 200, 0, 0, 1, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xLight3.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xLight3.SetScale(0.15f);
         xLight3.xMountObject = xIn;
         xLight3.enDestructionType = DynamicLight.DestructionType.Flash;
         xLight3.fFlicker = 0.3f;
         xLight3.iFlickerInterval = 15;
         Program.GetTheGame()._DynamicLight_CreateDynamicLight(xLight3);
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_Tornado)
     {
         xIn = new _EnemySpells_Tornado();
         _EnemySpells_Tornado xProjectile6 = xIn as _EnemySpells_Tornado;
         xProjectile6.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile6.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile6.xAttackPhasePlayer = new AttackPhase(xProjectile6);
         xProjectile6.xAttackPhaseEnvironment = new AttackPhase(xProjectile6);
         SphereCollider col22 = new SphereCollider(10f, new Vector2(0f, -3f), xProjectile6.xTransform, 0f, xProjectile6);
         col22.xAttackPhase = xProjectile6.xAttackPhasePlayer;
         col22.bIsLarge = false;
         xProjectile6.xAttackPhasePlayer.lxCurrentColliders.Add(col22);
         xProjectile6.xAttackPhasePlayer.xStats.bIsProjectile = false;
         xProjectile6.xAttackPhasePlayer.RegisterCurrent();
         xProjectile6.xAttackPhasePlayer.xStats.bNonDamaging = true;
         col22 = new SphereCollider(8f, new Vector2(0f, -4f), xProjectile6.xTransform, 0f, xProjectile6);
         col22.xAttackPhase = xProjectile6.xAttackPhaseEnvironment;
         col22.bCollideWithFlat = false;
         xProjectile6.xAttackPhaseEnvironment.lxCurrentColliders.Add(col22);
         xProjectile6.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile6.xAttackPhaseEnvironment.lenLayers.Add(Collider.ColliderLayers.StaticEnvironment);
         xProjectile6.enType = enType;
         xProjectile6.xRenderComponent.xOwnerObject = xIn;
         xProjectile6.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Season Change/Fall Wizard/Spellcast/Tornado"), new Vector2(23f, 57f), 4, 3, 46, 58, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fAlpha = 0.8f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_Pumpking_CrowSwarm)
     {
         xIn = new _EnemySpells_CrowSwarm();
         _EnemySpells_CrowSwarm xProjectile7 = xIn as _EnemySpells_CrowSwarm;
         xProjectile7.bSendNetworkUpdates = false;
         xProjectile7.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile7.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile7.xAttackPhasePlayer = new AttackPhase(xProjectile7);
         xProjectile7.xAttackPhaseEnvironment = new AttackPhase(xProjectile7);
         SphereCollider col23 = new SphereCollider(3f, new Vector2(0f, -15f), new TransformComponent(xProjectile7.xTransform.v2Pos), 0f, xProjectile7);
         col23.xAttackPhase = xProjectile7.xAttackPhasePlayer;
         col23.bIsLarge = false;
         xProjectile7.xAttackPhasePlayer.lxCurrentColliders.Add(col23);
         xProjectile7.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col23 = new SphereCollider(2f, new Vector2(0f, -4f), xProjectile7.xTransform, 0f, xProjectile7);
         col23.xAttackPhase = xProjectile7.xAttackPhaseEnvironment;
         col23.bCollideWithFlat = false;
         xProjectile7.xAttackPhaseEnvironment.lxCurrentColliders.Add(col23);
         xProjectile7.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile7.enType = enType;
         xProjectile7.xRenderComponent.xOwnerObject = xIn;
         xProjectile7.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Temple/Sphere/Projectile/Idle"), new Vector2(10f, 10f), 3, 6, 20, 20, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 16f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_PGTest_GuardableProjectile)
     {
         xIn = new _EnemySpells_PGTestGuardableProjectile();
         _EnemySpells_PGTestGuardableProjectile xProjectile8 = xIn as _EnemySpells_PGTestGuardableProjectile;
         xProjectile8.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile8.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile8.xAttackPhasePlayer = new AttackPhase(xProjectile8);
         BoxCollider col24 = new BoxCollider(12, 36, 0f, new Vector2(0f, -3f), xProjectile8.xTransform, 0f, xProjectile8);
         col24.xAttackPhase = xProjectile8.xAttackPhasePlayer;
         col24.bIsLarge = false;
         xProjectile8.xAttackPhasePlayer.lxCurrentColliders.Add(col24);
         xProjectile8.xAttackPhasePlayer.RegisterCurrent();
         xProjectile8.enType = enType;
         xProjectile8.xRenderComponent.xOwnerObject = xIn;
         xProjectile8.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -3f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Bosses/Phaseman/Projectiles/Green"), new Vector2(8f, 8f), 4, 4, 16, 16, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 16f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_PGTest_RoguelikeGuardableProjectile)
     {
         xIn = new _EnemySpells_PGTestGuardableProjectileRoguelike();
         _EnemySpells_PGTestGuardableProjectileRoguelike xProjectile9 = xIn as _EnemySpells_PGTestGuardableProjectileRoguelike;
         xProjectile9.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile9.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile9.xAttackPhasePlayer = new AttackPhase(xProjectile9);
         BoxCollider col25 = new BoxCollider(12, 36, 0f, new Vector2(0f, -3f), xProjectile9.xTransform, 0f, xProjectile9);
         col25.xAttackPhase = xProjectile9.xAttackPhasePlayer;
         col25.bIsLarge = false;
         xProjectile9.xAttackPhasePlayer.lxCurrentColliders.Add(col25);
         xProjectile9.xAttackPhasePlayer.RegisterCurrent();
         xProjectile9.enType = enType;
         xProjectile9.xRenderComponent.xOwnerObject = xIn;
         xProjectile9.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -3f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Bosses/Phaseman/Projectiles/Green"), new Vector2(8f, 8f), 4, 4, 16, 16, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 16f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_BulletHellKnockbackBullet)
     {
         xIn = new _EnemySpells_GenericStraightBullet();
         _EnemySpells_GenericStraightBullet xProjectile10 = xIn as _EnemySpells_GenericStraightBullet;
         xProjectile10.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile10.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile10.xAttackPhasePlayer = new AttackPhase(xProjectile10);
         xProjectile10.xAttackPhaseEnvironment = new AttackPhase(xProjectile10);
         SphereCollider col26 = new SphereCollider(3f, new Vector2(0f, -3f), xProjectile10.xTransform, 0f, xProjectile10);
         col26.xAttackPhase = xProjectile10.xAttackPhasePlayer;
         col26.bIsLarge = false;
         xProjectile10.xAttackPhasePlayer.lxCurrentColliders.Add(col26);
         xProjectile10.xAttackPhasePlayer.RegisterCurrent();
         col26 = new SphereCollider(1f, new Vector2(0f, -3f), xProjectile10.xTransform, 0f, xProjectile10);
         col26.xAttackPhase = xProjectile10.xAttackPhaseEnvironment;
         col26.bCollideWithFlat = false;
         col26.bIsActive = false;
         xProjectile10.xAttackPhaseEnvironment.lxCurrentColliders.Add(col26);
         xProjectile10.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile10.enType = enType;
         xProjectile10.xRenderComponent.xOwnerObject = xIn;
         xProjectile10.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Bosses/Phaseman/Projectiles/Red"), new Vector2(8f, 8f), 4, 4, 16, 16, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 16f;
         DynamicLight xLight4 = new DynamicLight();
         xLight4.xRenderComponent.xTransform = xIn.xTransform;
         xLight4.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Program.GetTheGame().xRenderMaster.dstxLightSources["OmniLightRad100"], new Vector2(100f, 100f), 4, 1, 200, 200, 0, 0, 1, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xLight4.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xLight4.SetScale(0.15f);
         xLight4.xMountObject = xIn;
         xLight4.enDestructionType = DynamicLight.DestructionType.Flash;
         xLight4.fFlicker = 0.3f;
         xLight4.iFlickerInterval = 15;
         Program.GetTheGame()._DynamicLight_CreateDynamicLight(xLight4);
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_PhasemanRedBullet)
     {
         xIn = new _EnemySpells_GenericStraightBullet();
         _EnemySpells_GenericStraightBullet xProjectile11 = xIn as _EnemySpells_GenericStraightBullet;
         xProjectile11.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile11.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile11.xAttackPhasePlayer = new AttackPhase(xProjectile11);
         xProjectile11.xAttackPhaseEnvironment = new AttackPhase(xProjectile11);
         SphereCollider col27 = new SphereCollider(3f, new Vector2(0f, 0f), xProjectile11.xTransform, 0f, xProjectile11);
         col27.xAttackPhase = xProjectile11.xAttackPhasePlayer;
         col27.bIsLarge = false;
         xProjectile11.xAttackPhasePlayer.lxCurrentColliders.Add(col27);
         xProjectile11.xAttackPhasePlayer.RegisterCurrent();
         xProjectile11.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col27 = new SphereCollider(1f, new Vector2(0f, 0f), xProjectile11.xTransform, 0f, xProjectile11);
         col27.xAttackPhase = xProjectile11.xAttackPhaseEnvironment;
         col27.bCollideWithFlat = false;
         xProjectile11.xAttackPhaseEnvironment.lxCurrentColliders.Add(col27);
         xProjectile11.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile11.enType = enType;
         xProjectile11.xRenderComponent.xOwnerObject = xIn;
         xProjectile11.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Bosses/Phaseman/Projectiles/Red"), new Vector2(8f, 8f), 4, 4, 16, 16, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_PhasemanSpecial)
     {
         xIn = new _EnemySpells_PhasemanSpecialProjectile();
         _EnemySpells_PhasemanSpecialProjectile xProjectile12 = xIn as _EnemySpells_PhasemanSpecialProjectile;
         xProjectile12.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile12.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile12.xAttackPhasePlayer = new AttackPhase(xProjectile12);
         SphereCollider col28 = new SphereCollider(3f, new Vector2(0f, -3f), xProjectile12.xTransform, 0f, xProjectile12);
         col28.xAttackPhase = xProjectile12.xAttackPhasePlayer;
         col28.bIsLarge = false;
         xProjectile12.xAttackPhasePlayer.lxCurrentColliders.Add(col28);
         xProjectile12.xAttackPhasePlayer.RegisterCurrent();
         xProjectile12.xAttackPhasePlayer.xStats.bIsProjectile = true;
         xProjectile12.enType = enType;
         xProjectile12.xRenderComponent.xOwnerObject = xIn;
         xProjectile12.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Bosses/Phaseman/Projectiles/Green"), new Vector2(8f, 8f), 4, 4, 16, 16, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
         DynamicLight xLight5 = new DynamicLight();
         xLight5.xRenderComponent.xTransform = xIn.xTransform;
         xLight5.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Program.GetTheGame().xRenderMaster.dstxLightSources["OmniLightRad100"], new Vector2(100f, 100f), 4, 1, 200, 200, 0, 0, 1, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xLight5.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xLight5.SetScale(0.15f);
         xLight5.xMountObject = xIn;
         xLight5.enDestructionType = DynamicLight.DestructionType.Flash;
         xLight5.fFlicker = 0.3f;
         xLight5.iFlickerInterval = 15;
         Program.GetTheGame()._DynamicLight_CreateDynamicLight(xLight5);
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_PhasemanMegaBullet)
     {
         xIn = new _EnemySpells_PhasemanMegabullet();
         _EnemySpells_PhasemanMegabullet xProjectile13 = xIn as _EnemySpells_PhasemanMegabullet;
         xProjectile13.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile13.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile13.xAttackPhasePlayer = new AttackPhase(xProjectile13);
         SphereCollider col29 = new SphereCollider(3f, new Vector2(0f, 0f), xProjectile13.xTransform, 0f, xProjectile13);
         col29.xAttackPhase = xProjectile13.xAttackPhasePlayer;
         col29.bIsLarge = false;
         xProjectile13.xAttackPhasePlayer.lxCurrentColliders.Add(col29);
         xProjectile13.xAttackPhasePlayer.RegisterCurrent();
         xProjectile13.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col29 = new SphereCollider(1f, new Vector2(0f, 0f), xProjectile13.xTransform, 0f, xProjectile13);
         col29.bCollideWithFlat = false;
         xProjectile13.enType = enType;
         xProjectile13.xRenderComponent.xOwnerObject = xIn;
         xProjectile13.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Bosses/Phaseman/Projectiles/Purple"), new Vector2(8f, 8f), 4, 4, 16, 16, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
         DynamicLight xLight6 = new DynamicLight();
         xLight6.xRenderComponent.xTransform = xIn.xTransform;
         xLight6.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Program.GetTheGame().xRenderMaster.dstxLightSources["OmniLightRad100"], new Vector2(100f, 100f), 4, 1, 200, 200, 0, 0, 1, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xLight6.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xLight6.SetScale(0.15f);
         xLight6.xMountObject = xIn;
         xLight6.enDestructionType = DynamicLight.DestructionType.Flash;
         xLight6.fFlicker = 0.3f;
         xLight6.iFlickerInterval = 15;
         Program.GetTheGame()._DynamicLight_CreateDynamicLight(xLight6);
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_Crystal_ShieldProjectile)
     {
         xIn = new _EnemySpells_CrystalShieldProjectile();
         _EnemySpells_CrystalShieldProjectile xProjectile14 = xIn as _EnemySpells_CrystalShieldProjectile;
         xProjectile14.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile14.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile14.enType = enType;
         xProjectile14.xRenderComponent.xOwnerObject = xIn;
         xProjectile14.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Temple/Crystal/Shield/ProjectileStart"), new Vector2(7f, 7f), 4, 3, 15, 15, 0, 0, 6, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[]
         {
             new AnimationInstruction(new AnimInsCriteria(AnimInsCriteria.Criteria.TriggerAtEnd, new float[0]), new AnimInsEvent(AnimInsEvent.EventType.PlayAnimation, new float[]
             {
                 1f
             }))
         }));
         xIn.xRenderComponent.dixAnimations.Add(1, new Animation(1, 0, Content.Load<Texture2D>("Sprites/Monster/Temple/Crystal/Shield/Projectile"), new Vector2(7f, 7f), 4, 6, 15, 15, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 16f;
         xIn.xRenderComponent.v2OffsetRenderPos.Y = -20f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_GundamRocket)
     {
         xIn = new _EnemySpells_Rocket();
         _EnemySpells_Rocket xProjectile15 = xIn as _EnemySpells_Rocket;
         xProjectile15.bSendNetworkUpdates = false;
         xProjectile15.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile15.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile15.xAttackPhasePlayer = new AttackPhase(xProjectile15);
         SphereCollider col30 = new SphereCollider(20f, new Vector2(0f, 0f), xProjectile15.xTransform, 0f, xProjectile15);
         col30.xAttackPhase = xProjectile15.xAttackPhasePlayer;
         col30.bIsLarge = false;
         xProjectile15.xAttackPhasePlayer.lxCurrentColliders.Add(col30);
         xProjectile15.xAttackPhasePlayer.lenLayers.Add(Collider.ColliderLayers.Players);
         xProjectile15.xAttackPhasePlayer.lenLayers.Add(Collider.ColliderLayers.Neutrals);
         xProjectile15.xAttackPhasePlayer.xStats.bIsProjectile = true;
         xProjectile15.enType = enType;
         xProjectile15.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Bosses/Gundam/Body/Rockets/Rocket"), new Vector2(8f, 6f), 4, 1, 17, 32, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight = 10000f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_ArbitraryCircularDamage)
     {
         xIn = new _EnemySpells_ArbitraryCircularExplosion();
         _EnemySpells_ArbitraryCircularExplosion xProjectile16 = xIn as _EnemySpells_ArbitraryCircularExplosion;
         xProjectile16.bSendNetworkUpdates = false;
         xProjectile16.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile16.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile16.xAttackPhasePlayer = new AttackPhase(xProjectile16);
         SphereCollider col31 = new SphereCollider(20f, new Vector2(0f, 0f), xProjectile16.xTransform, 0f, xProjectile16);
         col31.xAttackPhase = xProjectile16.xAttackPhasePlayer;
         col31.bIsLarge = false;
         xProjectile16.xAttackPhasePlayer.lxCurrentColliders.Add(col31);
         xProjectile16.xAttackPhasePlayer.lenLayers.Add(Collider.ColliderLayers.Players);
         xProjectile16.xAttackPhasePlayer.lenLayers.Add(Collider.ColliderLayers.Neutrals);
         xProjectile16.xAttackPhasePlayer.lenLayers.Add(Collider.ColliderLayers.DynamicEnvironment);
         xProjectile16.xAttackPhasePlayer.xStats.bIsProjectile = false;
         xProjectile16.enType = enType;
         xProjectile16.xRenderComponent.xOwnerObject = xIn;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(8f, 6f), 4, 1, 17, 32, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight = 10000f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_OrbitBullet)
     {
         xIn = new _EnemySpells_GenericOrbitBullet();
         _EnemySpells_GenericOrbitBullet xProjectile17 = xIn as _EnemySpells_GenericOrbitBullet;
         xProjectile17.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile17.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile17.xAttackPhasePlayer = new AttackPhase(xProjectile17);
         xProjectile17.xAttackPhaseEnvironment = new AttackPhase(xProjectile17);
         SphereCollider col32 = new SphereCollider(3f, new Vector2(0f, 0f), xProjectile17.xTransform, 0f, xProjectile17);
         col32.xAttackPhase = xProjectile17.xAttackPhasePlayer;
         col32.bIsLarge = false;
         xProjectile17.xAttackPhasePlayer.lxCurrentColliders.Add(col32);
         xProjectile17.xAttackPhasePlayer.RegisterCurrent();
         xProjectile17.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col32 = new SphereCollider(1f, new Vector2(0f, 0f), xProjectile17.xTransform, 0f, xProjectile17);
         col32.xAttackPhase = xProjectile17.xAttackPhaseEnvironment;
         col32.bCollideWithFlat = false;
         xProjectile17.xAttackPhaseEnvironment.lxCurrentColliders.Add(col32);
         xProjectile17.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile17.enType = enType;
         xProjectile17.xRenderComponent.xOwnerObject = xIn;
         xProjectile17.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Bosses/Phaseman/Projectiles/Directional_Purple"), new Vector2(7f, 8f), 4, 1, 16, 16, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 10f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_DelayedHomingBullet)
     {
         xIn = new _EnemySpells_DelayedHomingBullet();
         _EnemySpells_DelayedHomingBullet xProjectile18 = xIn as _EnemySpells_DelayedHomingBullet;
         xProjectile18.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile18.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile18.xAttackPhasePlayer = new AttackPhase(xProjectile18);
         xProjectile18.xAttackPhaseEnvironment = new AttackPhase(xProjectile18);
         SphereCollider col33 = new SphereCollider(3f, new Vector2(0f, 0f), xProjectile18.xTransform, 0f, xProjectile18);
         col33.xAttackPhase = xProjectile18.xAttackPhasePlayer;
         col33.bIsLarge = false;
         xProjectile18.xAttackPhasePlayer.lxCurrentColliders.Add(col33);
         xProjectile18.xAttackPhasePlayer.RegisterCurrent();
         xProjectile18.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col33 = new SphereCollider(1f, new Vector2(0f, 0f), xProjectile18.xTransform, 0f, xProjectile18);
         col33.xAttackPhase = xProjectile18.xAttackPhaseEnvironment;
         col33.bCollideWithFlat = false;
         xProjectile18.xAttackPhaseEnvironment.lxCurrentColliders.Add(col33);
         xProjectile18.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile18.enType = enType;
         xProjectile18.xRenderComponent.xOwnerObject = xIn;
         xProjectile18.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Bosses/Phaseman/Projectiles/Directional_Turkos"), new Vector2(7f, 8f), 4, 1, 16, 16, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 6f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_GundamMegaBullet)
     {
         xIn = new _EnemySpells_GundamMegabullet();
         _EnemySpells_GundamMegabullet xProjectile19 = xIn as _EnemySpells_GundamMegabullet;
         xProjectile19.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile19.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile19.xAttackPhasePlayer = new AttackPhase(xProjectile19);
         SphereCollider col34 = new SphereCollider(3f, new Vector2(0f, 0f), xProjectile19.xTransform, 0f, xProjectile19);
         col34.xAttackPhase = xProjectile19.xAttackPhasePlayer;
         col34.bIsLarge = false;
         xProjectile19.xAttackPhasePlayer.lxCurrentColliders.Add(col34);
         xProjectile19.xAttackPhasePlayer.RegisterCurrent();
         xProjectile19.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col34 = new SphereCollider(1f, new Vector2(0f, 0f), xProjectile19.xTransform, 0f, xProjectile19);
         col34.bCollideWithFlat = false;
         xProjectile19.enType = enType;
         xProjectile19.xRenderComponent.xOwnerObject = xIn;
         xProjectile19.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Bosses/Phaseman/Projectiles/Purple"), new Vector2(8f, 8f), 4, 4, 16, 16, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
         DynamicLight xLight7 = new DynamicLight();
         xLight7.xRenderComponent.xTransform = xIn.xTransform;
         xLight7.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Program.GetTheGame().xRenderMaster.dstxLightSources["OmniLightRad100"], new Vector2(100f, 100f), 4, 1, 200, 200, 0, 0, 1, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xLight7.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, -4f);
         xLight7.SetScale(0.15f);
         xLight7.xMountObject = xIn;
         xLight7.enDestructionType = DynamicLight.DestructionType.Flash;
         xLight7.fFlicker = 0.3f;
         xLight7.iFlickerInterval = 15;
         Program.GetTheGame()._DynamicLight_CreateDynamicLight(xLight7);
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_ScoundrelSnowBall_Small)
     {
         xIn = new _EnemySpells_SmallSnowBall();
         _EnemySpells_SmallSnowBall xProjectile20 = xIn as _EnemySpells_SmallSnowBall;
         xProjectile20.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile20.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile20.xAttackPhasePlayer = new AttackPhase(xProjectile20);
         xProjectile20.xAttackPhaseEnvironment = new AttackPhase(xProjectile20);
         SphereCollider col35 = new SphereCollider(5f, new Vector2(0f, 0f), xProjectile20.xTransform, 0f, xProjectile20);
         col35.xAttackPhase = xProjectile20.xAttackPhasePlayer;
         col35.bIsLarge = false;
         xProjectile20.xAttackPhasePlayer.lxCurrentColliders.Add(col35);
         xProjectile20.xAttackPhasePlayer.RegisterCurrent();
         xProjectile20.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col35 = new SphereCollider(1f, new Vector2(0f, 0f), xProjectile20.xTransform, 0f, xProjectile20);
         col35.xAttackPhase = xProjectile20.xAttackPhaseEnvironment;
         col35.bCollideWithFlat = false;
         xProjectile20.xAttackPhaseEnvironment.lxCurrentColliders.Add(col35);
         xProjectile20.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile20.enType = enType;
         xProjectile20.xRenderComponent.xOwnerObject = xIn;
         xProjectile20.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Winterland/Frostling Scoundrel/Snowball"), new Vector2(2f, 3f), 4, 1, 5, 5, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_ScoundrelSnowBall_Big)
     {
         xIn = new _EnemySpells_BigSnowBall();
         _EnemySpells_BigSnowBall xProjectile21 = xIn as _EnemySpells_BigSnowBall;
         xProjectile21.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile21.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile21.xAttackPhasePlayer = new AttackPhase(xProjectile21);
         xProjectile21.xAttackPhaseEnvironment = new AttackPhase(xProjectile21);
         SphereCollider col36 = new SphereCollider(10f, new Vector2(0f, 0f), xProjectile21.xTransform, 0f, xProjectile21);
         col36.xAttackPhase = xProjectile21.xAttackPhasePlayer;
         col36.bIsLarge = false;
         xProjectile21.xAttackPhasePlayer.lxCurrentColliders.Add(col36);
         xProjectile21.xAttackPhasePlayer.xStats.bIsProjectile = true;
         xProjectile21.enType = enType;
         xProjectile21.xRenderComponent.xOwnerObject = xIn;
         xProjectile21.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Winterland/Frostling Scoundrel/SnowballBig"), new Vector2(6f, 10f), 4, 1, 12, 12, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_SteamPipeSteam)
     {
         xIn = new _EnemySpells_GenericStraightBullet();
         _EnemySpells_GenericStraightBullet xProjectile22 = xIn as _EnemySpells_GenericStraightBullet;
         xProjectile22.bFadeIn = false;
         xProjectile22.bScaleIn = false;
         xProjectile22.bScaleOut = false;
         xProjectile22.bDisableAllNetworking = true;
         xProjectile22.bSendNetworkUpdates = false;
         xProjectile22.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile22.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile22.xAttackPhasePlayer = new AttackPhase(xProjectile22);
         xProjectile22.xAttackPhaseEnvironment = new AttackPhase(xProjectile22);
         SphereCollider col37 = new SphereCollider(5f, new Vector2(0f, 0f), xProjectile22.xTransform, 0f, xProjectile22);
         col37.xAttackPhase = xProjectile22.xAttackPhasePlayer;
         col37.bIsLarge = false;
         xProjectile22.xAttackPhasePlayer.lxCurrentColliders.Add(col37);
         xProjectile22.xAttackPhasePlayer.RegisterCurrent();
         xProjectile22.xAttackPhasePlayer.xStats.bIsProjectile = true;
         xProjectile22.enType = enType;
         xProjectile22.xRenderComponent.xOwnerObject = xIn;
         xProjectile22.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(9f, 7f), 5, 12, 18, 14, 18, 0, 13, Animation.LoopSettings.Clamp, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_LinearShockwave)
     {
         xIn = new _EnemySpells_LinearShockwave();
         _EnemySpells_LinearShockwave xProjectile23 = xIn as _EnemySpells_LinearShockwave;
         xProjectile23.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile23.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile23.xAttackPhasePlayer = new AttackPhase(xProjectile23);
         xProjectile23.xAttackPhaseEnvironment = new AttackPhase(xProjectile23);
         SphereCollider col38 = new SphereCollider(9f, new Vector2(0f, 0f), xProjectile23.xTransform, 0f, xProjectile23);
         col38.xAttackPhase = xProjectile23.xAttackPhasePlayer;
         col38.bIsLarge = false;
         xProjectile23.xAttackPhasePlayer.lxCurrentColliders.Add(col38);
         xProjectile23.xAttackPhasePlayer.RegisterCurrent();
         xProjectile23.xAttackPhasePlayer.xStats.bIsProjectile = true;
         xProjectile23.xAttackPhasePlayer.xStats.bIgnoreShield = true;
         xProjectile23.xAttackPhasePlayer.xStats.enShieldCrush = AttackStats.ShieldCrush.AllIncludingPerfectGuard;
         col38 = new SphereCollider(5f, new Vector2(0f, 0f), xProjectile23.xTransform, 0f, xProjectile23);
         col38.xAttackPhase = xProjectile23.xAttackPhaseEnvironment;
         col38.bCollideWithFlat = false;
         xProjectile23.xAttackPhaseEnvironment.lxCurrentColliders.Add(col38);
         xProjectile23.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile23.enType = enType;
         xProjectile23.xRenderComponent.xOwnerObject = xIn;
         xProjectile23.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(8f, 8f), 4, 4, 16, 16, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_SpinningShieldThing)
     {
         xIn = new _EnemySpells_SpinningShieldThings();
         _EnemySpells_SpinningShieldThings xProjectile24 = xIn as _EnemySpells_SpinningShieldThings;
         xProjectile24.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile24.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile24.enType = enType;
         xProjectile24.xRenderComponent.xOwnerObject = xIn;
         xProjectile24.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xProjectile24.bSendOwnerAsWorldActor = true;
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Season Change/Winter Wizard/Attack/Projectile/Cube"), new Vector2(11f, 12f), 4, 6, 22, 23, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.v2OffsetRenderPos.Y = -5f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_AutumnMageProjectile)
     {
         xIn = new _EnemySpells_SeasonMageProjectile();
         _EnemySpells_SeasonMageProjectile xProjectile25 = xIn as _EnemySpells_SeasonMageProjectile;
         xProjectile25.enBigParticleTail = SortedAnimated.SortedAnimatedEffects._EnemyEffects_AutumnProjectile_BigParticle;
         xProjectile25.enSmallParticleTrail = SortedAnimated.SortedAnimatedEffects._EnemyEffects_AutumnProjectile_SmallParticle;
         xProjectile25.enDestroyEffect = SortedAnimated.SortedAnimatedEffects._EnemyEffects_AutumnProjectile_Destroyed;
         xProjectile25.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile25.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile25.xAttackPhasePlayer = new AttackPhase(xProjectile25);
         xProjectile25.xAttackPhaseEnvironment = new AttackPhase(xProjectile25);
         xProjectile25.bFadeIn = false;
         xProjectile25.bScaleIn = false;
         xProjectile25.bScaleOut = true;
         SphereCollider col39 = new SphereCollider(5f, new Vector2(0f, 0f), xProjectile25.xTransform, 0f, xProjectile25);
         col39.xAttackPhase = xProjectile25.xAttackPhasePlayer;
         col39.bIsLarge = false;
         xProjectile25.xAttackPhasePlayer.lxCurrentColliders.Add(col39);
         xProjectile25.xAttackPhasePlayer.RegisterCurrent();
         xProjectile25.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col39 = new SphereCollider(1f, new Vector2(0f, 0f), xProjectile25.xTransform, 0f, xProjectile25);
         col39.xAttackPhase = xProjectile25.xAttackPhaseEnvironment;
         col39.bCollideWithFlat = false;
         xProjectile25.xAttackPhaseEnvironment.lxCurrentColliders.Add(col39);
         xProjectile25.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile25.enType = enType;
         xProjectile25.xRenderComponent.xOwnerObject = xIn;
         xProjectile25.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Season Change/Fall Wizard/Attack/Projectile/Cube"), new Vector2(11f, 12f), 4, 6, 22, 23, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_WinterMageProjectile)
     {
         xIn = new _EnemySpells_SeasonMageProjectile();
         _EnemySpells_SeasonMageProjectile xProjectile26 = xIn as _EnemySpells_SeasonMageProjectile;
         xProjectile26.enBigParticleTail = SortedAnimated.SortedAnimatedEffects._EnemyEffects_WinterProjectile_BigParticle;
         xProjectile26.enSmallParticleTrail = SortedAnimated.SortedAnimatedEffects._EnemyEffects_WinterProjectile_SmallParticle;
         xProjectile26.enDestroyEffect = SortedAnimated.SortedAnimatedEffects._EnemyEffects_WinterProjectile_Destroyed;
         xProjectile26.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile26.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile26.xAttackPhasePlayer = new AttackPhase(xProjectile26);
         xProjectile26.xAttackPhaseEnvironment = new AttackPhase(xProjectile26);
         xProjectile26.bFadeIn = false;
         xProjectile26.bScaleIn = false;
         xProjectile26.bScaleOut = true;
         SphereCollider col40 = new SphereCollider(5f, new Vector2(0f, 0f), xProjectile26.xTransform, 0f, xProjectile26);
         col40.xAttackPhase = xProjectile26.xAttackPhasePlayer;
         col40.bIsLarge = false;
         xProjectile26.xAttackPhasePlayer.lxCurrentColliders.Add(col40);
         xProjectile26.xAttackPhasePlayer.RegisterCurrent();
         xProjectile26.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col40 = new SphereCollider(1f, new Vector2(0f, 0f), xProjectile26.xTransform, 0f, xProjectile26);
         col40.xAttackPhase = xProjectile26.xAttackPhaseEnvironment;
         col40.bCollideWithFlat = false;
         xProjectile26.xAttackPhaseEnvironment.lxCurrentColliders.Add(col40);
         xProjectile26.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile26.enType = enType;
         xProjectile26.xRenderComponent.xOwnerObject = xIn;
         xProjectile26.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Season Change/Winter Wizard/Attack/Projectile/Cube"), new Vector2(11f, 12f), 4, 6, 22, 23, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_SummerMageProjectile)
     {
         xIn = new _EnemySpells_SeasonMageProjectile();
         _EnemySpells_SeasonMageProjectile xProjectile27 = xIn as _EnemySpells_SeasonMageProjectile;
         xProjectile27.enBigParticleTail = SortedAnimated.SortedAnimatedEffects._EnemyEffects_SummerProjectile_BigParticle;
         xProjectile27.enSmallParticleTrail = SortedAnimated.SortedAnimatedEffects._EnemyEffects_SummerProjectile_SmallParticle;
         xProjectile27.enDestroyEffect = SortedAnimated.SortedAnimatedEffects._EnemyEffects_SummerProjectile_Destroyed;
         xProjectile27.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile27.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile27.xAttackPhasePlayer = new AttackPhase(xProjectile27);
         xProjectile27.xAttackPhaseEnvironment = new AttackPhase(xProjectile27);
         xProjectile27.bFadeIn = false;
         xProjectile27.bScaleIn = false;
         xProjectile27.bScaleOut = true;
         SphereCollider col41 = new SphereCollider(5f, new Vector2(0f, 0f), xProjectile27.xTransform, 0f, xProjectile27);
         col41.xAttackPhase = xProjectile27.xAttackPhasePlayer;
         col41.bIsLarge = false;
         xProjectile27.xAttackPhasePlayer.lxCurrentColliders.Add(col41);
         xProjectile27.xAttackPhasePlayer.RegisterCurrent();
         xProjectile27.xAttackPhasePlayer.xStats.bIsProjectile = true;
         col41 = new SphereCollider(1f, new Vector2(0f, 0f), xProjectile27.xTransform, 0f, xProjectile27);
         col41.xAttackPhase = xProjectile27.xAttackPhaseEnvironment;
         col41.bCollideWithFlat = false;
         xProjectile27.xAttackPhaseEnvironment.lxCurrentColliders.Add(col41);
         xProjectile27.xAttackPhaseEnvironment.RegisterCurrent();
         xProjectile27.enType = enType;
         xProjectile27.xRenderComponent.xOwnerObject = xIn;
         xProjectile27.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Season Change/Summer Wizard/Attack/Projectile/Cube"), new Vector2(11f, 12f), 4, 6, 22, 23, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_SummerHydraFire)
     {
         xIn = new _EnemySpells_SummerHydraFire();
         _EnemySpells_SummerHydraFire xProjectile28 = xIn as _EnemySpells_SummerHydraFire;
         xProjectile28.enType = enType;
         xProjectile28.xAttackPhase = new AttackPhase(xProjectile28);
         SphereCollider col42 = new SphereCollider(15f, new Vector2(0f, 0f), xProjectile28.xTransform, 0f, xProjectile28);
         col42.xAttackPhase = xProjectile28.xAttackPhase;
         col42.bIsLarge = false;
         xProjectile28.xAttackPhase.lxCurrentColliders.Add(col42);
         xProjectile28.xAttackPhase.xStats.bIsProjectile = false;
         xProjectile28.xAttackPhase.lenLayers.Add(Collider.ColliderLayers.Players);
         xProjectile28.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile28.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile28.xRenderComponent.xOwnerObject = xIn;
         xProjectile28.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Season Change/Fall Wizard/Attack/Projectile/Cube"), new Vector2(11f, 12f), 4, 6, 22, 23, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 180f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_WinterHydraFrost)
     {
         xIn = new _EnemySpells_WinterHydraBreath();
         _EnemySpells_WinterHydraBreath xProjectile29 = xIn as _EnemySpells_WinterHydraBreath;
         xProjectile29.enType = enType;
         xProjectile29.xAttackPhase = new AttackPhase(xProjectile29);
         SphereCollider col43 = new SphereCollider(15f, new Vector2(0f, 0f), xProjectile29.xTransform, 0f, xProjectile29);
         col43.xAttackPhase = xProjectile29.xAttackPhase;
         col43.bIsLarge = false;
         xProjectile29.xAttackPhase.lxCurrentColliders.Add(col43);
         xProjectile29.xAttackPhase.xStats.bIsProjectile = false;
         xProjectile29.xAttackPhase.xStats.bIgnoreShield = true;
         xProjectile29.xAttackPhase.lenLayers.Add(Collider.ColliderLayers.Players);
         xProjectile29.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile29.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile29.xRenderComponent.xOwnerObject = xIn;
         xProjectile29.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>("Sprites/Monster/Season Change/Winter Wizard/Attack/Projectile/Cube"), new Vector2(11f, 12f), 4, 6, 22, 23, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 180f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_AutumnHydraShot)
     {
         xIn = new _EnemySpells_AutumnHydraHomingShot();
         _EnemySpells_AutumnHydraHomingShot xProjectile30 = xIn as _EnemySpells_AutumnHydraHomingShot;
         xProjectile30.enType = enType;
         xProjectile30.xAttackPhasePlayer = new AttackPhase(xProjectile30);
         SphereCollider col44 = new SphereCollider(15f, new Vector2(0f, 0f), xProjectile30.xTransform, 0f, xProjectile30);
         col44.xAttackPhase = xProjectile30.xAttackPhasePlayer;
         col44.bIsLarge = false;
         xProjectile30.xAttackPhasePlayer.lxCurrentColliders.Add(col44);
         xProjectile30.xAttackPhasePlayer.xStats.bIsProjectile = true;
         xProjectile30.xAttackPhasePlayer.xStats.bIgnoreShield = false;
         xProjectile30.xAttackPhasePlayer.lenLayers.Add(Collider.ColliderLayers.Players);
         xProjectile30.xRenderComponent = new AnimatedRenderComponent(xIn);
         xProjectile30.xRenderComponent.xTransform = xIn.xTransform;
         xProjectile30.xRenderComponent.xOwnerObject = xIn;
         xProjectile30.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xProjectile30.AddSpore(SortedAnimated.SortedAnimatedEffects._EnemyEffects_Boss_SeasonHydra_AutumnBigSpore_Looping, Utility.RandomizeVector2Direction(CAS.RandomInVisual) * 0f);
         float fPart = 1.57079637f;
         for (int i = 0; i < 4; i++)
         {
             SortedAnimated.SortedAnimatedEffects en = SortedAnimated.SortedAnimatedEffects._EnemyEffects_Boss_SeasonHydra_AutumnBigSpore_Looping;
             if (i % 2 == 0)
             {
                 en = SortedAnimated.SortedAnimatedEffects._EnemyEffects_Boss_SeasonHydra_AutumnSmallSpore_Looping;
             }
             xProjectile30.AddSpore(en, Utility.RadiansToVector2(fPart * (float)i) * 5f);
         }
         fPart = 0.7853982f;
         for (int j = 0; j < 8; j++)
         {
             SortedAnimated.SortedAnimatedEffects en2 = SortedAnimated.SortedAnimatedEffects._EnemyEffects_Boss_SeasonHydra_AutumnBigSpore_Looping;
             if (j % 2 == 0)
             {
                 en2 = SortedAnimated.SortedAnimatedEffects._EnemyEffects_Boss_SeasonHydra_AutumnSmallSpore_Looping;
             }
             xProjectile30.AddSpore(en2, Utility.RadiansToVector2(fPart * (float)j) * 8f);
         }
         fPart = 0.5235988f;
         for (int k = 0; k < 12; k++)
         {
             SortedAnimated.SortedAnimatedEffects en3 = SortedAnimated.SortedAnimatedEffects._EnemyEffects_Boss_SeasonHydra_AutumnBigSpore_Looping;
             if (k % 2 == 0)
             {
                 en3 = SortedAnimated.SortedAnimatedEffects._EnemyEffects_Boss_SeasonHydra_AutumnSmallSpore_Looping;
             }
             xProjectile30.AddSpore(en3, Utility.RadiansToVector2(fPart * (float)k) * 11f);
         }
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(11f, 12f), 4, 6, 22, 23, 0, 0, 6, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 180f;
         xIn.xRenderComponent.fScale = 0f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_GasCloud_Blind)
     {
         xIn = new _EnemySpells_GasCloud();
         _EnemySpells_GasCloud xGasCloud = xIn as _EnemySpells_GasCloud;
         xGasCloud.xRenderComponent = new AnimatedRenderComponent(xIn);
         xGasCloud.xRenderComponent.xTransform = xIn.xTransform;
         xGasCloud.xAttackPhasePlayer = new AttackPhase(xGasCloud);
         SphereCollider col45 = new SphereCollider(12f, new Vector2(0f, 0f), xGasCloud.xTransform, 0f, xGasCloud);
         col45.xAttackPhase = xGasCloud.xAttackPhasePlayer;
         col45.bIsLarge = false;
         xGasCloud.xAttackPhasePlayer.lenLayers.Add(Collider.ColliderLayers.Players);
         xGasCloud.xAttackPhasePlayer.lxCurrentColliders.Add(col45);
         xGasCloud.xAttackPhasePlayer.RegisterCurrent();
         xGasCloud.xAttackPhasePlayer.xStats.bIsProjectile = true;
         xGasCloud.xAttackPhasePlayer.xStats.bIgnoreShield = true;
         xGasCloud.xAttackPhasePlayer.xStats.bNonDamaging = true;
         xGasCloud.enType = enType;
         xGasCloud.xRenderComponent.xOwnerObject = xIn;
         xGasCloud.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, Content.Load<Texture2D>(MONSTER_PATH + "Bosses/Season Hydra/Fall/Mushroom/Smoke"), new Vector2(13f, 11f), 4, 9, 26, 23, 0, 0, 22, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
     }
     else if (enType == SpellCodex.SpellTypes._EnemySkill_GasCloud_Burn)
     {
         xIn = new _EnemySpells_GasCloud();
         _EnemySpells_GasCloud xGasCloud2 = xIn as _EnemySpells_GasCloud;
         xGasCloud2.xRenderComponent = new AnimatedRenderComponent(xIn);
         xGasCloud2.xRenderComponent.xTransform = xIn.xTransform;
         xGasCloud2.xAttackPhasePlayer = new AttackPhase(xGasCloud2);
         SphereCollider col46 = new SphereCollider(5f, new Vector2(0f, 0f), xGasCloud2.xTransform, 0f, xGasCloud2);
         col46.xAttackPhase = xGasCloud2.xAttackPhasePlayer;
         col46.bIsLarge = false;
         xGasCloud2.xAttackPhasePlayer.lenLayers.Add(Collider.ColliderLayers.Players);
         xGasCloud2.xAttackPhasePlayer.lxCurrentColliders.Add(col46);
         xGasCloud2.xAttackPhasePlayer.RegisterCurrent();
         xGasCloud2.xAttackPhasePlayer.xStats.bIgnoreShield = true;
         xGasCloud2.xAttackPhasePlayer.xStats.bNonDamaging = true;
         xGasCloud2.enType = enType;
         xGasCloud2.xRenderComponent.xOwnerObject = xIn;
         xGasCloud2.xRenderComponent.v2OffsetRenderPos = new Vector2(0f, 0f);
         xIn.xRenderComponent.dixAnimations.Add(0, new Animation(0, 0, RenderMaster.txNullTex, new Vector2(22f, 38f), 4, 1, 46, 53, 0, 0, 22, Animation.LoopSettings.Looping, Animation.CancelOptions.IgnoreIfPlaying, true, true, new AnimationInstruction[0]));
         xIn.xRenderComponent.fVirtualHeight += 0f;
     }
     return xIn;
 }
Пример #3
0
 public override void OnUpdate()
 {
     Random knark = Program.GetTheGame().randomInLogic;
     if (!this.bInited)
     {
         this.bInited = true;
         this.bAggro = true;
         if (GameSessionData.iBaseDifficulty > 0)
         {
             this.fUnburrowDistance = 7f;
         }
         this.Disappear();
         if (knark.Next(2) == 0)
         {
             this.xOwner.xRenderComponent.SwitchAnimation(0, Animation.CancelOptions.IgnoreIfPlaying);
         }
         else
         {
             this.xOwner.xRenderComponent.SwitchAnimation(1, Animation.CancelOptions.IgnoreIfPlaying);
         }
     }
     if (this.xRootInstance != null)
     {
         if (this.xRootInstance.bToBeDestroyed)
         {
             if (this.xOwner.byAnimationDirection == 1)
             {
                 this.xOwner.xRenderComponent.SwitchAnimation(30, Animation.CancelOptions.IgnoreIfPlaying);
             }
             else
             {
                 this.xOwner.xRenderComponent.SwitchAnimation(31, Animation.CancelOptions.IgnoreIfPlaying);
             }
             this.xRootInstance = null;
         }
         return;
     }
     this.iCounter++;
     this.iNextHardUpdate--;
     if (this.iMeriGoRoundLogic == 5)
     {
         this.iAppearAtTarget--;
         Vector2 v2EffectPos = Vector2.Lerp(this.v2TargetToAppearAt, this.xOwner.xTransform.v2Pos, (float)this.iAppearAtTarget / (float)this.iDiveTime);
         this.AddDigEffect(v2EffectPos);
         if (this.iAppearAtTarget <= 0)
         {
             this.Appear();
             this.xOwner.xTransform.SetBoth(this.v2TargetToAppearAt);
             ushort iAdd = 0;
             if (this.xPlayerLockedOnto != null && this.xPlayerLockedOnto.xTransform.v2Pos.X < this.xOwner.xTransform.v2Pos.X)
             {
                 iAdd = 1;
             }
             Program.game._Enemy_EnterAttackAnimation(this.xOwner, (ushort)(10 + iAdd));
             this.iMeriGoRoundLogic = 2;
         }
     }
     else if (this.iMeriGoRoundLogic == 6 && this.iCounter % 5 == 0 && (this.xOwner.xRenderComponent.iActiveAnimation == 32 || this.xOwner.xRenderComponent.iActiveAnimation == 33))
     {
         Vector2 v2TryPos = Vector2.Zero;
         int iTries = 0;
         bool bValid = false;
         do
         {
             v2TryPos = this.xOwner.xTransform.v2Pos + new Vector2((float)(-150 + CAS.RandomInLogic.Next(300)), (float)(-100 + CAS.RandomInLogic.Next(200)));
             if (CAS.GameMode == StateMaster.GameModes.RogueLike)
             {
                 Rectangle bounds = Program.game.xGameSessionData.xRogueLikeSession.xCurrentRoom.recBounds;
                 v2TryPos = new Vector2((float)(bounds.Left + CAS.RandomInLogic.Next(bounds.Width)), (float)(bounds.Top + CAS.RandomInLogic.Next(bounds.Height)));
             }
             if (!Program.game._CollisionMaster_CheckVsStatic(v2TryPos, 8f, 1))
             {
                 bValid = true;
             }
             iTries++;
         }
         while (!bValid && iTries < 30);
         if (!bValid)
         {
             v2TryPos = this.xOwner.xTransform.v2Pos;
         }
         DamagingCrateArchetype x = Program.game._EntityMaster_AddDynamicEnvironment(DynamicEnvironmentCodex.ObjectTypes.DamagingThorn_Halloween_Delayed, v2TryPos) as DamagingCrateArchetype;
         x.SetDelay(30);
         x.xAttackPhase.xStats.iBaseDamage = 40;
         this.iThornsToSpawn--;
         if (this.iThornsToSpawn == 0)
         {
             this.iMeriGoRoundLogic = 2;
             this.xOwner.xRenderComponent.SwitchAnimation((ushort)(30 + ((this.xOwner.byAnimationDirection == 3) ? 1 : 0)));
             this.iNextHardUpdate = Math.Max(180 - CAS.DifficultyModifier * 10, 80);
             this.xOwner.xCollisionComponent.lxHitboxColliders[0].xLocalTransform.v2Pos.X = 0f;
         }
     }
     if (this.xOwner.xRenderComponent.GetCurrentAnimation().bIsMoveCancellable && this.iNextHardUpdate <= 0)
     {
         Game1 Lord = Program.GetTheGame();
         Rectangle arg_3CE_0 = Program.GetTheGame().xLevelMaster.xCurrentLevel.recCurrentBounds;
         float fClosest = 50000f;
         WorldActor xClosestPlayer = null;
         List<WorldActor> lx = Lord._Enemy_GetTargetList(this, true);
         if (this.bAggro)
         {
             foreach (WorldActor xActor in lx)
             {
                 float fDist = Vector2.Distance(xActor.xTransform.v2Pos, this.xOwner.xTransform.v2Pos);
                 if (fDist < this.fFurthestAllowedDistance && fDist < fClosest)
                 {
                     xClosestPlayer = xActor;
                     fClosest = fDist;
                 }
             }
         }
         if (xClosestPlayer == null)
         {
             this.xPlayerLockedOnto = null;
         }
         else
         {
             this.xPlayerLockedOnto = (this.xLastPlayerLookat = xClosestPlayer);
         }
         if (this.iMeriGoRoundLogic == 0)
         {
             if (this.iCounter > 60 && xClosestPlayer != null && fClosest < this.fActivationDistance)
             {
                 int iAdd2 = CAS.RandomInLogic.Next(2);
                 Program.game._Enemy_EnterAttackAnimation(this.xOwner, (ushort)(10 + iAdd2));
                 this.iMeriGoRoundLogic = 2;
             }
         }
         else if (this.iMeriGoRoundLogic == 1)
         {
             if (this.xPlayerLockedOnto == null)
             {
                 this.xOwner.xRenderComponent.SwitchAnimation(11, Animation.CancelOptions.IgnoreIfPlaying);
                 this.iMeriGoRoundLogic = 2;
             }
             else if (fClosest < this.fUnburrowDistance || this.iCounter > this.iCounterAtBury + 300 + lx.Count * 60)
             {
                 this.iMeriGoRoundLogic = 2;
                 if (this.xPlayerLockedOnto.xTransform.v2Pos.X < this.xOwner.xTransform.v2Pos.X)
                 {
                     Program.GetTheGame()._Enemy_EnterAttackAnimation(this.xOwner, 11);
                 }
                 else
                 {
                     Program.GetTheGame()._Enemy_EnterAttackAnimation(this.xOwner, 10);
                 }
             }
             else
             {
                 this.iNextHardUpdate = 4;
                 this.v2RandMoveDir = Vector2.Normalize(this.xPlayerLockedOnto.xTransform.v2Pos - this.xOwner.xTransform.v2Pos);
             }
         }
         else if (this.iMeriGoRoundLogic == 2)
         {
             this.iNextHardUpdate = 30;
             if (this.iCounterAtLastThornSpawn + 800 < this.iCounter)
             {
                 this.iMeriGoRoundLogic = 6;
                 this.xOwner.xRenderComponent.SwitchAnimation((ushort)(28 + ((this.xOwner.byAnimationDirection == 3) ? 1 : 0)));
                 this.iThornsToSpawn = 16 + CAS.DifficultyModifier * 3;
                 this.iCounterAtLastThornSpawn = this.iCounter;
                 return;
             }
             if (this.xLastPlayerLookat != null)
             {
                 if (this.xLastPlayerLookat.xTransform.v2Pos.X < this.xOwner.xTransform.v2Pos.X && this.xOwner.xRenderComponent.iActiveAnimation == 6)
                 {
                     this.xOwner.xRenderComponent.SwitchAnimation(22, Animation.CancelOptions.IgnoreIfPlaying);
                     return;
                 }
                 if (this.xLastPlayerLookat.xTransform.v2Pos.X > this.xOwner.xTransform.v2Pos.X && this.xOwner.xRenderComponent.iActiveAnimation == 7)
                 {
                     this.xOwner.xRenderComponent.SwitchAnimation(23, Animation.CancelOptions.IgnoreIfPlaying);
                     return;
                 }
             }
             if (this.xPlayerLockedOnto != null)
             {
                 if (fClosest < this.fAttackDistance && this.iCounterAtLastDive + 600 >= this.iCounter)
                 {
                     this.iNextHardUpdate = 160 - 25 * Program.GetTheGame().dixPlayers.Count - 10 * GameSessionData.iBaseDifficulty;
                     this.iCounterAtLastAgressiveAction = this.iCounter;
                     if (this.xPlayerLockedOnto.xTransform.v2Pos.X < this.xOwner.xTransform.v2Pos.X)
                     {
                         Program.GetTheGame()._Enemy_EnterAttackAnimation(this.xOwner, 15);
                     }
                     else
                     {
                         Program.GetTheGame()._Enemy_EnterAttackAnimation(this.xOwner, 14);
                     }
                 }
                 if (this.iCounterAtLastAgressiveAction + 300 < this.iCounter && (fClosest > this.fAttackDistance || this.iCounterAtLastDive + 600 < this.iCounter))
                 {
                     this.iCounterAtLastDive = this.iCounter;
                     List<Enemy> lxLol = Program.GetTheGame()._Enemies_GetEnemiesByTarget(this.xPlayerLockedOnto);
                     if (this.xPlayerLockedOnto.enEntityType != IEntity.EntityType.Player || lxLol.Count <= 1 || Program.GetTheGame().dixPlayers.Count < 2 || (Program.GetTheGame().dixPlayers.Count < 4 && knark.Next(2) == 0))
                     {
                         this.iMeriGoRoundLogic = 1;
                         this.iCounterAtBury = this.iCounter;
                         if (this.xOwner.byAnimationDirection == 1)
                         {
                             this.xOwner.xRenderComponent.SwitchAnimation(26, Animation.CancelOptions.IgnoreIfPlaying);
                         }
                         else
                         {
                             this.xOwner.xRenderComponent.SwitchAnimation(27, Animation.CancelOptions.IgnoreIfPlaying);
                         }
                     }
                     else
                     {
                         if (this.xOwner.byAnimationDirection == 1)
                         {
                             this.xOwner.xRenderComponent.SwitchAnimation(28, Animation.CancelOptions.IgnoreIfPlaying);
                         }
                         else
                         {
                             this.xOwner.xRenderComponent.SwitchAnimation(29, Animation.CancelOptions.IgnoreIfPlaying);
                         }
                         this.iNextHardUpdate = 120;
                     }
                 }
             }
         }
         else if (this.iMeriGoRoundLogic == 100)
         {
             this.iNextHardUpdate = 120;
             if (this.iSubMeri == 0)
             {
                 this.iSubMeri++;
                 this.xOwner.xRenderComponent.SwitchAnimation(7, Animation.CancelOptions.IgnoreIfPlaying);
             }
             else
             {
                 this.iSubMeri = 0;
                 this.xOwner.xRenderComponent.SwitchAnimation(29, Animation.CancelOptions.IgnoreIfPlaying);
             }
         }
     }
     this.xOwner.xTransform.v2ServerPos = this.xOwner.xTransform.v2Pos;
 }
Пример #4
0
 public override void OnUpdate()
 {
     Random knark = Program.GetTheGame().randomInLogic;
     if (!this.bInited)
     {
         this.bInited = true;
         this.bAggro = true;
         if (GameSessionData.iBaseDifficulty > 0)
         {
             this.fUnburrowDistance = 7f;
         }
         this.Disappear();
         if (knark.Next(2) == 0)
         {
             this.xOwner.xRenderComponent.SwitchAnimation(0, Animation.CancelOptions.IgnoreIfPlaying);
         }
         else
         {
             this.xOwner.xRenderComponent.SwitchAnimation(1, Animation.CancelOptions.IgnoreIfPlaying);
         }
     }
     if (this.xRootProjectile != null)
     {
         if (this.xRootProjectile.bToBeDestroyed)
         {
             if (this.xOwner.byAnimationDirection == 1)
             {
                 this.xOwner.xRenderComponent.SwitchAnimation(30, Animation.CancelOptions.IgnoreIfPlaying);
             }
             else
             {
                 this.xOwner.xRenderComponent.SwitchAnimation(31, Animation.CancelOptions.IgnoreIfPlaying);
             }
             this.xRootProjectile = null;
         }
         return;
     }
     this.iCounter++;
     this.iNextHardUpdate--;
     if (this.xOwner.xRenderComponent.iActiveAnimation == 4)
     {
         if (this.v2RandMoveDir != Vector2.Zero)
         {
             this.xOwner.xTransform.v2Pos += this.v2RandMoveDir * this.xOwner.xBaseStats.fMovementSpeed;
         }
         if (this.iCounter % (8 - GameSessionData.iBaseDifficulty) == 0)
         {
             this.AddDigEffect();
         }
         if (this.iCounter % 50 == 0)
         {
             Program.GetTheGame().xSoundSystem.PlayCue("Halloweed_Digging", this.xOwner, false);
         }
     }
     if (this.xOwner.xRenderComponent.GetCurrentAnimation().bIsMoveCancellable && this.iNextHardUpdate <= 0)
     {
         Game1 Lord = Program.GetTheGame();
         Rectangle arg_1B3_0 = Program.GetTheGame().xLevelMaster.xCurrentLevel.recCurrentBounds;
         float fClosest = 50000f;
         WorldActor xClosestPlayer = null;
         List<WorldActor> lx = Lord._Enemy_GetTargetList(this, true);
         if (this.bAggro)
         {
             foreach (WorldActor xActor in lx)
             {
                 float fDist = Vector2.Distance(xActor.xTransform.v2Pos, this.xOwner.xTransform.v2Pos);
                 if (fDist < this.fFurthestAllowedDistance && fDist < fClosest)
                 {
                     xClosestPlayer = xActor;
                     fClosest = fDist;
                 }
             }
         }
         if (xClosestPlayer == null)
         {
             this.xPlayerLockedOnto = null;
         }
         else
         {
             this.xPlayerLockedOnto = (this.xLastPlayerLookat = xClosestPlayer);
         }
         if (this.iMeriGoRoundLogic == 0)
         {
             if (this.iCounter > 60 && xClosestPlayer != null && fClosest < this.fActivationDistance)
             {
                 this.iNextHardUpdate = 10;
                 this.iCounterAtBury = this.iCounter;
                 if (this.xOwner.byAnimationDirection == 1)
                 {
                     this.xOwner.xRenderComponent.SwitchAnimation(3, Animation.CancelOptions.IgnoreIfPlaying);
                 }
                 else
                 {
                     this.xOwner.xRenderComponent.SwitchAnimation(2, Animation.CancelOptions.IgnoreIfPlaying);
                 }
                 this.iMeriGoRoundLogic = 1;
             }
         }
         else if (this.iMeriGoRoundLogic == 1)
         {
             if (this.xPlayerLockedOnto == null)
             {
                 this.xOwner.xRenderComponent.SwitchAnimation(11, Animation.CancelOptions.IgnoreIfPlaying);
                 this.iMeriGoRoundLogic = 2;
             }
             else if (fClosest < this.fUnburrowDistance || this.iCounter > this.iCounterAtBury + 300 + lx.Count * 60)
             {
                 this.iMeriGoRoundLogic = 2;
                 if (this.xPlayerLockedOnto.xTransform.v2Pos.X < this.xOwner.xTransform.v2Pos.X)
                 {
                     Program.GetTheGame()._Enemy_EnterAttackAnimation(this.xOwner, 11);
                 }
                 else
                 {
                     Program.GetTheGame()._Enemy_EnterAttackAnimation(this.xOwner, 10);
                 }
             }
             else
             {
                 this.iNextHardUpdate = 1;
                 this.v2RandMoveDir = Vector2.Normalize(this.xPlayerLockedOnto.xTransform.v2Pos - this.xOwner.xTransform.v2Pos);
             }
         }
         else if (this.iMeriGoRoundLogic == 2)
         {
             this.iNextHardUpdate = 30;
             if (this.xLastPlayerLookat != null)
             {
                 if (this.xLastPlayerLookat.xTransform.v2Pos.X < this.xOwner.xTransform.v2Pos.X && this.xOwner.xRenderComponent.iActiveAnimation == 6)
                 {
                     this.xOwner.xRenderComponent.SwitchAnimation(22, Animation.CancelOptions.IgnoreIfPlaying);
                     return;
                 }
                 if (this.xLastPlayerLookat.xTransform.v2Pos.X > this.xOwner.xTransform.v2Pos.X && this.xOwner.xRenderComponent.iActiveAnimation == 7)
                 {
                     this.xOwner.xRenderComponent.SwitchAnimation(23, Animation.CancelOptions.IgnoreIfPlaying);
                     return;
                 }
             }
             if (this.xPlayerLockedOnto != null)
             {
                 if (fClosest < this.fAttackDistance)
                 {
                     this.iNextHardUpdate = 160 - 25 * Program.GetTheGame().dixPlayers.Count - 10 * GameSessionData.iBaseDifficulty;
                     this.iCounterAtLastAgressiveAction = this.iCounter;
                     if (this.xPlayerLockedOnto.xTransform.v2Pos.X < this.xOwner.xTransform.v2Pos.X)
                     {
                         Program.GetTheGame()._Enemy_EnterAttackAnimation(this.xOwner, 15);
                     }
                     else
                     {
                         Program.GetTheGame()._Enemy_EnterAttackAnimation(this.xOwner, 14);
                     }
                 }
                 if (this.iCounterAtLastAgressiveAction + 300 < this.iCounter && fClosest > this.fAttackDistance)
                 {
                     List<Enemy> lxLol = Program.GetTheGame()._Enemies_GetEnemiesByTarget(this.xPlayerLockedOnto);
                     if (this.xPlayerLockedOnto.enEntityType != IEntity.EntityType.Player || lxLol.Count <= 1 || Program.GetTheGame()._Enemy_GetTargetList(this, true).Count < 2 || (Program.GetTheGame()._Enemy_GetTargetList(this, true).Count < 4 && knark.Next(2) == 0))
                     {
                         this.iMeriGoRoundLogic = 1;
                         this.iCounterAtBury = this.iCounter;
                         if (this.xOwner.byAnimationDirection == 1)
                         {
                             this.xOwner.xRenderComponent.SwitchAnimation(26, Animation.CancelOptions.IgnoreIfPlaying);
                         }
                         else
                         {
                             this.xOwner.xRenderComponent.SwitchAnimation(27, Animation.CancelOptions.IgnoreIfPlaying);
                         }
                     }
                     else
                     {
                         if (this.xOwner.byAnimationDirection == 1)
                         {
                             this.xOwner.xRenderComponent.SwitchAnimation(28, Animation.CancelOptions.IgnoreIfPlaying);
                         }
                         else
                         {
                             this.xOwner.xRenderComponent.SwitchAnimation(29, Animation.CancelOptions.IgnoreIfPlaying);
                         }
                         this.iNextHardUpdate = 120;
                     }
                 }
             }
         }
         else if (this.iMeriGoRoundLogic == 100)
         {
             this.iNextHardUpdate = 120;
             if (this.iSubMeri == 0)
             {
                 this.iSubMeri++;
                 this.xOwner.xRenderComponent.SwitchAnimation(7, Animation.CancelOptions.IgnoreIfPlaying);
             }
             else
             {
                 this.iSubMeri = 0;
                 this.xOwner.xRenderComponent.SwitchAnimation(29, Animation.CancelOptions.IgnoreIfPlaying);
             }
         }
     }
     this.xOwner.xTransform.v2ServerPos = this.xOwner.xTransform.v2Pos;
 }