예제 #1
0
        public override void GuardianPostDrawScript(TerraGuardian guardian, Vector2 DrawPosition, Color color, Color armorColor, float Rotation, Vector2 Origin, float Scale, SpriteEffects seffect)
        {
            GuardianDrawData gdd;

            /*if (guardian.BodyAnimationFrame >= 22 && guardian.BodyAnimationFrame <= 28)
             * {
             *  if(guardian.AnimationTime >= HellGateAnimationFrameTime * 6)
             *  {
             *      TerraGuardian.DrawFront.Clear();
             *      TerraGuardian.DrawBehind.Clear();
             *  }
             *  if(guardian.AnimationTime < HellGateAnimationFrameTime * 13)
             *  {
             *      int Frame = (int)(guardian.AnimationTime / HellGateAnimationFrameTime);
             *      if(Frame > 6)
             *      {
             *          Frame = 6 - (Frame + 6); //6 - 12 + 6 = 0, 6 - 7 + 6 = 5
             *      }
             *      gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, sprites.GetExtraTexture(HellGateSpriteID), DrawPosition,
             *          new Rectangle(SpriteWidth * Frame, 0, SpriteWidth, SpriteHeight), Color.White, Rotation, Origin, Scale, SpriteEffects.None);
             *      TerraGuardian.DrawFront.Add(gdd);
             *  }
             * }*/
            bool Awakened = false;

            if (Awakened)
            {
                ReplaceTexture(GuardianDrawData.TextureType.TGBody, sprites.GetExtraTexture(AwakenedBodyTextureID));
                gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, sprites.GetExtraTexture(AwakenedBodyGlowTextureID), DrawPosition,
                                           guardian.GetAnimationFrameRectangle(guardian.BodyAnimationFrame), Color.White, Rotation, Origin, Scale, seffect);
                InjectTextureAfter(GuardianDrawData.TextureType.TGBody, gdd);
                gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, sprites.GetExtraTexture(AwakenedLeftArmGlowTextureID), DrawPosition,
                                           guardian.GetAnimationFrameRectangle(guardian.LeftArmAnimationFrame), Color.White, Rotation, Origin, Scale, seffect);
                InjectTextureAfter(GuardianDrawData.TextureType.TGLeftArm, gdd);
                gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, sprites.GetExtraTexture(AwakenedRightArmGlowTextureID), DrawPosition,
                                           guardian.GetAnimationFrameRectangle(guardian.RightArmAnimationFrame), Color.White, Rotation, Origin, Scale, seffect);
                InjectTextureAfter(GuardianDrawData.TextureType.TGRightArm, gdd);
                if (guardian.Base.BodyFrontFrameSwap.ContainsKey(guardian.BodyAnimationFrame))
                {
                    gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, sprites.GetExtraTexture(AwakenedBodyFrontGlowTextureID), DrawPosition,
                                               guardian.GetAnimationFrameRectangle(guardian.Base.BodyFrontFrameSwap[guardian.BodyAnimationFrame]), Color.White, Rotation, Origin, Scale, seffect);
                    InjectTextureAfter(GuardianDrawData.TextureType.TGBodyFront, gdd);
                }
                if (guardian.Base.RightArmFrontFrameSwap.ContainsKey(guardian.RightArmAnimationFrame))
                {
                    gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, sprites.GetExtraTexture(AwakenedRightArmFrontGlowTextureID), DrawPosition,
                                               guardian.GetAnimationFrameRectangle(guardian.Base.RightArmFrontFrameSwap[guardian.RightArmAnimationFrame]), Color.White, Rotation, Origin, Scale, seffect);
                    InjectTextureAfter(GuardianDrawData.TextureType.TGRightArmFront, gdd);
                }
                gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, sprites.GetExtraTexture(AwakenedWingRightTextureID), DrawPosition, guardian.GetAnimationFrameRectangle(guardian.BodyAnimationFrame),
                                           Color.White, Rotation, Origin, Scale, seffect);
                TerraGuardian.DrawBehind.Insert(0, gdd);
            }
            else
            {
                gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, sprites.GetExtraTexture(RightWingTextureID), DrawPosition, guardian.GetAnimationFrameRectangle(guardian.BodyAnimationFrame),
                                           color, Rotation, Origin, Scale, seffect);
                TerraGuardian.DrawBehind.Insert(0, gdd);
            }
            byte FlamesEffect = 255;

            if (guardian.KnockedOut && guardian.BodyAnimationFrame == 28)
            {
                TerraGuardian.DrawFront.Clear();
                TerraGuardian.DrawBehind.Clear();
                return;
            }
            if (guardian.LeftArmAnimationFrame >= 14 && guardian.LeftArmAnimationFrame < 17)
            {
                FlamesEffect = (byte)(guardian.LeftArmAnimationFrame - 14);
            }
            else if (guardian.LeftArmAnimationFrame >= 28 && guardian.LeftArmAnimationFrame < 32)
            {
                FlamesEffect = (byte)(guardian.LeftArmAnimationFrame - 28 + 10);
            }
            else if (guardian.BodyAnimationFrame >= 21 && guardian.BodyAnimationFrame < 28)
            {
                FlamesEffect = (byte)(guardian.BodyAnimationFrame - 21 + 3);
            }
            if (FlamesEffect < 255)
            {
                gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, sprites.GetExtraTexture(Awakened && FlamesEffect < 4 ? CrimsonFireEffectsTextureID : FireEffectsTextureID), DrawPosition,
                                           guardian.GetAnimationFrameRectangle(FlamesEffect), Color.White, Rotation, Origin, Scale, seffect);
                InjectTextureAfter(GuardianDrawData.TextureType.TGLeftArm, gdd);
            }
        }
예제 #2
0
        public override void GuardianPostDrawScript(TerraGuardian guardian, Vector2 DrawPosition, Color color, Color armorColor, float Rotation, Vector2 Origin, float Scale, SpriteEffects seffect)
        {
            CilleData data = (CilleData)guardian.Data;

            if (data.InBeastState)
            {
                GuardianDrawData gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, sprites.GetExtraTexture(MurderFaceID), DrawPosition, guardian.GetAnimationFrameRectangle(guardian.BodyAnimationFrame), Color.White, Rotation, Origin, Scale, seffect);
                InjectTextureAfter(GuardianDrawData.TextureType.TGBody, gdd);
            }
            switch (guardian.OutfitID)
            {
            case DefaultOutfitID:
            {
                Texture2D OutfitTexture    = sprites.GetExtraTexture(DefaultOutfitBodyID),
                          LeftArmTexture   = sprites.GetExtraTexture(DefaultOutfitLeftArmID),
                          RightArmTexture  = sprites.GetExtraTexture(DefaultOutfitRightArmID),
                          BodyFrontTexture = sprites.GetExtraTexture(DefaultOutfitBodyFrontID);
                GuardianDrawData gdd       = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, OutfitTexture, DrawPosition, guardian.GetAnimationFrameRectangle(guardian.BodyAnimationFrame), color, Rotation, Origin, Scale, seffect);
                InjectTextureAfter(GuardianDrawData.TextureType.TGBody, gdd);
                if (guardian.Base.BodyFrontFrameSwap.ContainsKey(guardian.BodyAnimationFrame))
                {
                    gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, BodyFrontTexture, DrawPosition, guardian.GetAnimationFrameRectangle(BodyFrontFrameSwap[guardian.BodyAnimationFrame]), color, Rotation, Origin, Scale, seffect);
                    InjectTextureAfter(GuardianDrawData.TextureType.TGBodyFront, gdd);
                }
                gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, LeftArmTexture, DrawPosition, guardian.GetAnimationFrameRectangle(guardian.LeftArmAnimationFrame), color, Rotation, Origin, Scale, seffect);
                InjectTextureAfter(GuardianDrawData.TextureType.TGLeftArm, gdd);
                gdd = new GuardianDrawData(GuardianDrawData.TextureType.TGExtra, RightArmTexture, DrawPosition, guardian.GetAnimationFrameRectangle(guardian.RightArmAnimationFrame), color, Rotation, Origin, Scale, seffect);
                InjectTextureAfter(GuardianDrawData.TextureType.TGRightArm, gdd);
            }
            break;
            }
        }