public ClericBoss()
        {
            HitPoints = MaxHitPoints = 5500;
            RunSpeed = MaxRunSpeed = 1;

            MainGraphic = new MetaModel
            {
                AlphaRef = 254,
                SkinnedMesh = new SkinnedMeshFromFile("Models/Units/VoodooPriest1.x"),
                Texture = new TextureConcretizer
                {
                    TextureDescription = new global::Graphics.Software.Textures.SingleColorTexture(
                        System.Drawing.Color.White)
                },
                World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f),
                IsBillboard = false,
                CastShadows = global::Graphics.Content.Priority.High,
                ReceivesShadows = global::Graphics.Content.Priority.High,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new ClericRaiseDead());
            AddAbility(new IceBreath());
            AddAbility(new BossIncinerateApplyBuff());
            //AddAbility(new ScourgedEarth());

            if (Program.Instance != null)
            {
                var sm = Program.Instance.SoundManager;
                var idleSound = sm.GetSoundResourceGroup(sm.GetSFX(SFX.ClericIdle1), sm.GetSFX(SFX.ClericIdle2), sm.GetSFX(SFX.ClericIdle3));
                idle = idleSound.PlayLoopedWithIntervals(5, 15, 3f + (float)Game.Random.NextDouble() * 3.0f, new Sound.PlayArgs
                {
                    GetPosition = () => { return Position; },
                    GetVelocity = () => { if (MotionNPC != null) return MotionNPC.Velocity; else return Vector3.Zero; }
                });
            }
        }
        public DemonLord()
        {
            HitPoints               = MaxHitPoints = 20000;
            Armor                   = 0f;
            RunSpeed                = MaxRunSpeed = 3.5f;
            PhysicalWeight          = 5000;
            HeadOverBarHeight       = 5f;
            SplatRequiredDamagePerc = float.MaxValue;
            RageEnabled             = false;
            RunAnimationSpeed       = 0.3f;
            HitRadius               = 1.5f;
            SilverYield             = 600;
            RageLevel               = 1;

            MainGraphic = new MetaModel
            {
                AlphaRef         = 2,
                SkinnedMesh      = new SkinnedMeshFromFile("Models/Units/DemonLord1.x"),
                Texture          = new TextureFromFile("Models/Units/DemonLord1.png"),
                SpecularTexture  = new TextureFromFile("Models/Units/DemonLordSpecular1.png"),
                World            = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.18f, 0.18f, 0.18f),
                HasAlpha         = false,
                IsBillboard      = false,
                CastShadows      = global::Graphics.Content.Priority.Never,
                ReceivesShadows  = global::Graphics.Content.Priority.High,
                ReceivesSpecular = global::Graphics.Content.Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh           = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation      = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };
            PhysicsLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 4, 1f);

            AddAbility(new DemonThrust());
            AddAbility(new DemonWrath());
            AddAbility(new DemonLordCharge());
            AddAbility(new LavaDitchBash());
        }
示例#3
0
 public static Bounding.Chain Transform(Bounding.Chain bounding, Matrix transformation)
 {
     Bounding.Chain b = new Common.Bounding.Chain {
         Shallow   = bounding.Shallow,
         Boundings = new object[bounding.Boundings.Length]
     };
     for (int i = 0; i < b.Boundings.Length; i++)
     {
         b.Boundings[i] = Transform(bounding.Boundings[i], transformation);
     }
     return(b);
 }
 public void Draw(Matrix world, Common.Bounding.Chain bounding, Color color)
 {
     if (DrawFullChains)
     {
         foreach (var v in bounding.Boundings)
         {
             Draw(world, v, color);
         }
     }
     else
     {
         Draw(world, bounding.Boundings.Last(), color);
     }
 }
示例#5
0
        public MainCharacter()
        {
            RunSpeed              = MaxRunSpeed = 4;
            RunAnimationSpeed     = 0.5f;
            BackingAnimationSpeed = 0.35f;
            Team                    = Team.Player;
            PhysicalWeight          = 1;
            regenTickTime           = 3f;
            regenTickHeal           = 2;
            PistolAmmo              = 0;
            TalismansCollected      = 0;
            FootstepRelativePeriod  = 1.5f;
            SplatRequiredDamagePerc = float.MaxValue;
            HeadOverBarHeight       = 2.2f;
            Name                    = "MainCharacter";
            RageEnabled             = true;

            MainGraphic = new MetaModel
            {
                SkinnedMesh      = new SkinnedMeshFromFile("Models/Units/MainCharacter1.x"),
                Texture          = new TextureFromFile("Models/Units/MainCharacter1.png"),
                SpecularTexture  = new TextureFromFile("Models/Units/MainCharacterSpecular1.png"),
                World            = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.182f, 0.182f, 0.167f),
                CastShadows      = Priority.High,
                ReceivesShadows  = Priority.High,
                ReceivesSpecular = Priority.High
            };

            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh           = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation      = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            InitWeapons();
        }
        public Cleric()
        {
            HitPoints = MaxHitPoints = 1000;
            RunSpeed = MaxRunSpeed = 1;
            Chanting = false;
            HeadOverBarHeight = 1.15f;
            SilverYield = 20;

            MainGraphic = new MetaModel
            {
                AlphaRef = 254,
                SkinnedMesh = new SkinnedMeshFromFile("Models/Units/VoodooPriest1.x"),
                Texture = new TextureFromFile("Models/Units/VoodooPriest1.png"),
                SpecularTexture = new TextureFromFile("Models/Units/VoodooPriestSpecular1.png"),
                World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.11f, 0.11f, 0.11f),
                IsBillboard = false,
                CastShadows = global::Graphics.Content.Priority.High,
                ReceivesShadows = global::Graphics.Content.Priority.High,
                ReceivesSpecular = global::Graphics.Content.Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new ClericRaiseDead());
            AddAbility(new FireBreath());
            //AddAbility(new IncinerateApplyBuff());
            AddAbility(new StartScourgedEarth());
        }
示例#7
0
        public Bull()
        {
            HitPoints = MaxHitPoints = 2000;
            RunSpeed = MaxRunSpeed = 2;
            RaiseFromCorpseTime = 2;
            GraphicalTurnSpeed = 2.5f;
            SplatRequiredDamagePerc = float.MaxValue;
            HeadOverBarHeight = 2.5f;
            HitRadius = 1;
            SilverYield = 30;

            MainGraphic = new MetaModel
            {
                SkinnedMesh = new SkinnedMeshFromFile("Models/Units/Oxen1.x"),
                Texture = new TextureFromFile("Models/Units/Oxen1.png"),
                SpecularTexture = new TextureFromFile("Models/Units/OxenSpecular1.png"),
                World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f),
                AlphaRef = 100,
                CastShadows = global::Graphics.Content.Priority.High,
                ReceivesShadows = Priority.High,
                ReceivesSpecular = Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new BullThrust());
            AddAbility(new BullCharge());
        }
        public Cleric()
        {
            HitPoints         = MaxHitPoints = 1000;
            RunSpeed          = MaxRunSpeed = 1;
            Chanting          = false;
            HeadOverBarHeight = 1.15f;
            SilverYield       = 20;

            MainGraphic = new MetaModel
            {
                AlphaRef         = 254,
                SkinnedMesh      = new SkinnedMeshFromFile("Models/Units/VoodooPriest1.x"),
                Texture          = new TextureFromFile("Models/Units/VoodooPriest1.png"),
                SpecularTexture  = new TextureFromFile("Models/Units/VoodooPriestSpecular1.png"),
                World            = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.11f, 0.11f, 0.11f),
                IsBillboard      = false,
                CastShadows      = global::Graphics.Content.Priority.High,
                ReceivesShadows  = global::Graphics.Content.Priority.High,
                ReceivesSpecular = global::Graphics.Content.Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh           = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation      = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new ClericRaiseDead());
            AddAbility(new FireBreath());
            //AddAbility(new IncinerateApplyBuff());
            AddAbility(new StartScourgedEarth());
        }
示例#9
0
        public Bull()
        {
            HitPoints               = MaxHitPoints = 2000;
            RunSpeed                = MaxRunSpeed = 2;
            RaiseFromCorpseTime     = 2;
            GraphicalTurnSpeed      = 2.5f;
            SplatRequiredDamagePerc = float.MaxValue;
            HeadOverBarHeight       = 2.5f;
            HitRadius               = 1;
            SilverYield             = 30;

            MainGraphic = new MetaModel
            {
                SkinnedMesh      = new SkinnedMeshFromFile("Models/Units/Oxen1.x"),
                Texture          = new TextureFromFile("Models/Units/Oxen1.png"),
                SpecularTexture  = new TextureFromFile("Models/Units/OxenSpecular1.png"),
                World            = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f),
                AlphaRef         = 100,
                CastShadows      = global::Graphics.Content.Priority.High,
                ReceivesShadows  = Priority.High,
                ReceivesSpecular = Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh           = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation      = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new BullThrust());
            AddAbility(new BullCharge());
        }
        public WolfBoss()
        {
            HitPoints               = MaxHitPoints = 8000;
            Armor                   = 0f;
            RunSpeed                = MaxRunSpeed = 5.5f;
            RunAnimationSpeed       = 0.3f;
            SplatRequiredDamagePerc = 999;
            SilverYield             = 300;
            HitRadius               = 1.5f;
            HeadOverBarHeight       = 1.1f;

            MainGraphic = new MetaModel
            {
                SkinnedMesh      = new SkinnedMeshFromFile("Models/Units/Wolf1.x"),
                Texture          = new TextureFromFile("Models/Units/Wolf1.png"),
                SpecularTexture  = new TextureFromFile("Models/Units/WolfSpecular1.png"),
                World            = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.12f, 0.12f, 0.12f),
                CastShadows      = global::Graphics.Content.Priority.High,
                ReceivesShadows  = global::Graphics.Content.Priority.High,
                ReceivesSpecular = global::Graphics.Content.Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh           = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation      = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new WolfBite());
        }
示例#11
0
        public Brute()
        {
            HitPoints               = MaxHitPoints = 240;
            RunSpeed                = MaxRunSpeed = 1.1f;
            SilverYield             = 5;
            SplatRequiredDamagePerc = 160 / (float)MaxHitPoints;

            MainGraphic = new MetaModel
            {
                SkinnedMesh      = new SkinnedMeshFromFile("Models/Units/Brute1.x"),
                Texture          = new TextureFromFile("Models/Units/Brute1.png"),
                SpecularTexture  = new TextureFromFile("Models/Units/BruteSpecular1.png"),
                World            = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.115f, 0.115f, 0.115f),
                IsBillboard      = false,
                AlphaRef         = 254,
                CastShadows      = global::Graphics.Content.Priority.High,
                ReceivesShadows  = Priority.High,
                ReceivesSpecular = Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh           = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation      = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new BruteThrust());
            AddAbility(new CastNet());
        }
示例#12
0
        public Brute()
        {
            HitPoints = MaxHitPoints = 240;
            RunSpeed = MaxRunSpeed = 1.1f;
            SilverYield = 5;
            SplatRequiredDamagePerc = 160 / (float)MaxHitPoints;

            MainGraphic = new MetaModel
            {
                SkinnedMesh = new SkinnedMeshFromFile("Models/Units/Brute1.x"),
                Texture = new TextureFromFile("Models/Units/Brute1.png"),
                SpecularTexture = new TextureFromFile("Models/Units/BruteSpecular1.png"),
                World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.115f, 0.115f, 0.115f),
                IsBillboard = false,
                AlphaRef = 254,
                CastShadows = global::Graphics.Content.Priority.High,
                ReceivesShadows = Priority.High,
                ReceivesSpecular = Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new BruteThrust());
            AddAbility(new CastNet());
        }
        public Infected()
        {
            HitPoints               = MaxHitPoints = 210;
            RunSpeed                = MaxRunSpeed = 4;
            RunAnimationSpeed       = 0.4f;
            SplatRequiredDamagePerc = 0;
            SilverYield             = 5;

            MainGraphic = new MetaModel
            {
                SkinnedMesh      = new SkinnedMeshFromFile("Models/Units/Ghoul1.x"),
                Texture          = new TextureFromFile("Models/Units/Infected1.png"),
                SpecularTexture  = new TextureFromFile("Models/Units/GhoulSpecular1.png"),
                World            = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f),
                CastShadows      = global::Graphics.Content.Priority.High,
                ReceivesShadows  = global::Graphics.Content.Priority.High,
                ReceivesSpecular = global::Graphics.Content.Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh           = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation      = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new InfectedBite());
        }
示例#14
0
        public Mongrel()
        {
            HitPoints = MaxHitPoints = 100;
            RunSpeed = MaxRunSpeed = 5;
            RunAnimationSpeed = 0.3f;
            SplatRequiredDamagePerc = 0;
            SilverYield = 5;

            MainGraphic = new MetaModel
            {
                SkinnedMesh = new SkinnedMeshFromFile("Models/Units/Ghoul1.x"),
                Texture = new TextureFromFile("Models/Units/Ghoul1.png"),
                SpecularTexture = new TextureFromFile("Models/Units/GhoulSpecular1.png"),
                World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f),
                CastShadows = global::Graphics.Content.Priority.High,
                ReceivesShadows = global::Graphics.Content.Priority.High,
                ReceivesSpecular = global::Graphics.Content.Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new MongrelBite());
        }
示例#15
0
        public Hound()
        {
            HitPoints               = MaxHitPoints = 150;
            RunSpeed                = MaxRunSpeed = 1.5f;
            RunAnimationSpeed       = 0.4f;
            SplatRequiredDamagePerc = 0;

            MainGraphic = new MetaModel
            {
                SkinnedMesh = new SkinnedMeshFromFile("Models/Units/Wolf1.x"),
                Texture     = new TextureFromFile("Models/Units/Wolf1.png"),
                World       = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f),
                IsBillboard = false,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh           = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation      = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            //AddAbility(new HoundBite());
            AddAbility(new HoundExplode());
        }
示例#16
0
        public Hound()
        {
            HitPoints = MaxHitPoints = 150;
            RunSpeed = MaxRunSpeed = 1.5f;
            RunAnimationSpeed = 0.4f;
            SplatRequiredDamagePerc = 0;

            MainGraphic = new MetaModel
            {
                SkinnedMesh = new SkinnedMeshFromFile("Models/Units/Wolf1.x"),
                Texture = new TextureFromFile("Models/Units/Wolf1.png"),
                World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f),
                IsBillboard = false,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            //AddAbility(new HoundBite());
            AddAbility(new HoundExplode());
        }
        public DemonLord()
        {
            HitPoints = MaxHitPoints = 20000;
            Armor = 0f;
            RunSpeed = MaxRunSpeed = 3.5f;
            PhysicalWeight = 5000;
            HeadOverBarHeight = 5f;
            SplatRequiredDamagePerc = float.MaxValue;
            RageEnabled = false;
            RunAnimationSpeed = 0.3f;
            HitRadius = 1.5f;
            SilverYield = 600;
            RageLevel = 1;

            MainGraphic = new MetaModel
            {
                AlphaRef = 2,
                SkinnedMesh = new SkinnedMeshFromFile("Models/Units/DemonLord1.x"),
                Texture = new TextureFromFile("Models/Units/DemonLord1.png"),
                SpecularTexture = new TextureFromFile("Models/Units/DemonLordSpecular1.png"),
                World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.18f, 0.18f, 0.18f),
                HasAlpha = false,
                IsBillboard = false,
                CastShadows = global::Graphics.Content.Priority.Never,
                ReceivesShadows = global::Graphics.Content.Priority.High,
                ReceivesSpecular = global::Graphics.Content.Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };
            PhysicsLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 4, 1f);

            AddAbility(new DemonThrust());
            AddAbility(new DemonWrath());
            AddAbility(new DemonLordCharge());
            AddAbility(new LavaDitchBash());
        }
示例#18
0
 public BridgeRaising1()
 {
     MainGraphic = new MetaModel
     {
         SkinnedMesh = new SkinnedMeshFromFile("Models/Props/BridgeRaising1.x"),
         Texture = new TextureFromFile("Models/Props/Bridge1.png"),
         SpecularTexture = new TextureFromFile("Models/Props/BridgeSpecular1.png"),
         World = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya,
         CastShadows = global::Graphics.Content.Priority.High,
         ReceivesShadows = Priority.High,
         ReceivesSpecular = Priority.Medium,
         SpecularExponent = 4,
     };
     VisibilityLocalBounding = new MetaBoundingBox
     {
         Mesh = ((MetaModel)MainGraphic).SkinnedMesh,
         Transformation = ((MetaModel)MainGraphic).World
     };
     PickingLocalBounding = new Common.Bounding.Chain
     {
         Boundings = new object[]
         {
             VisibilityLocalBounding,
             new BoundingMetaMesh
             {
                 SkinnedMeshInstance = MetaEntityAnimation,
                 Transformation = ((MetaModel)MainGraphic).World
             }
         },
         Shallow = true
     };
     MetaModel physicsMesh = new MetaModel
     {
         XMesh = new MeshFromFile("Models/Props/Bridge1Pathmesh.x"),
         World = ((MetaModel)MainGraphic).World
     };
     PhysicsLocalBounding = CreatePhysicsMeshBounding(physicsMesh);
     EditorRandomRotation = true;
     EditorFollowGroundType = EditorFollowGroupType.HeightmapAndWater;
     RemoveOnDeath = false;
     Updateable = true;
     Dynamic = true;
 }
示例#19
0
        public Fence2()
        {
            MainGraphic = new MetaModel
            {
                XMesh = new MeshFromFile("Models/Props/Fence2.x"),
                Texture = new TextureFromFile("Models/Props/Fence1.png"),
                World = Matrix.Scaling(0.14f, 0.14f, 0.18f) * SkinnedMesh.InitSkinnedMeshFromMaya,
                Visible = Priority.High,
                CastShadows = global::Graphics.Content.Priority.Medium,
                ReceivesShadows = Priority.High,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh = ((MetaModel)MainGraphic).XMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        Mesh = ((MetaModel)MainGraphic).XMesh,
                        Transformation = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };
            PhysicsLocalBounding = new Common.Bounding.Box { LocalBoundingBox = new BoundingBox(new Vector3(-0.31f, -1.4f, -0.5f), new Vector3(0.31f, 1.4f, 0.9f)), Transformation = Matrix.Scaling(1, 1, 0.8f) };

            EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 1f);
            EditorRandomRotation = true;
        }
示例#20
0
        public ClericBoss()
        {
            HitPoints = MaxHitPoints = 5500;
            RunSpeed  = MaxRunSpeed = 1;

            MainGraphic = new MetaModel
            {
                AlphaRef    = 254,
                SkinnedMesh = new SkinnedMeshFromFile("Models/Units/VoodooPriest1.x"),
                Texture     = new TextureConcretizer
                {
                    TextureDescription = new global::Graphics.Software.Textures.SingleColorTexture(
                        System.Drawing.Color.White)
                },
                World           = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f),
                IsBillboard     = false,
                CastShadows     = global::Graphics.Content.Priority.High,
                ReceivesShadows = global::Graphics.Content.Priority.High,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh           = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation      = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new ClericRaiseDead());
            AddAbility(new IceBreath());
            AddAbility(new BossIncinerateApplyBuff());
            //AddAbility(new ScourgedEarth());

            if (Program.Instance != null)
            {
                var sm        = Program.Instance.SoundManager;
                var idleSound = sm.GetSoundResourceGroup(sm.GetSFX(SFX.ClericIdle1), sm.GetSFX(SFX.ClericIdle2), sm.GetSFX(SFX.ClericIdle3));
                idle = idleSound.PlayLoopedWithIntervals(5, 15, 3f + (float)Game.Random.NextDouble() * 3.0f, new Sound.PlayArgs
                {
                    GetPosition = () => { return(Position); },
                    GetVelocity = () => { if (MotionNPC != null)
                                          {
                                              return(MotionNPC.Velocity);
                                          }
                                          else
                                          {
                                              return(Vector3.Zero);
                                          } }
                });
            }
        }
        public WolfBoss()
        {
            HitPoints = MaxHitPoints = 8000;
            Armor = 0f;
            RunSpeed = MaxRunSpeed = 5.5f;
            RunAnimationSpeed = 0.3f;
            SplatRequiredDamagePerc = 999;
            SilverYield = 300;
            HitRadius = 1.5f;
            HeadOverBarHeight = 1.1f;

            MainGraphic = new MetaModel
            {
                SkinnedMesh = new SkinnedMeshFromFile("Models/Units/Wolf1.x"),
                Texture = new TextureFromFile("Models/Units/Wolf1.png"),
                SpecularTexture = new TextureFromFile("Models/Units/WolfSpecular1.png"),
                World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.12f, 0.12f, 0.12f),
                CastShadows = global::Graphics.Content.Priority.High,
                ReceivesShadows = global::Graphics.Content.Priority.High,
                ReceivesSpecular = global::Graphics.Content.Priority.High,
                SpecularExponent = 6,
            };
            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            AddAbility(new WolfBite());
        }
        public MainCharacter()
        {
            RunSpeed = MaxRunSpeed = 4;
            RunAnimationSpeed = 0.5f;
            BackingAnimationSpeed = 0.35f;
            Team = Team.Player;
            PhysicalWeight = 1;
            regenTickTime = 3f;
            regenTickHeal = 2;
            PistolAmmo = 0;
            TalismansCollected = 0;
            FootstepRelativePeriod = 1.5f;
            SplatRequiredDamagePerc = float.MaxValue;
            HeadOverBarHeight = 2.2f;
            Name = "MainCharacter";
            RageEnabled = true;

            MainGraphic = new MetaModel
            {
                SkinnedMesh = new SkinnedMeshFromFile("Models/Units/MainCharacter1.x"),
                Texture = new TextureFromFile("Models/Units/MainCharacter1.png"),
                SpecularTexture = new TextureFromFile("Models/Units/MainCharacterSpecular1.png"),
                World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.182f, 0.182f, 0.167f),
                CastShadows = Priority.High,
                ReceivesShadows = Priority.High,
                ReceivesSpecular = Priority.High
            };

            VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh = ((MetaModel)MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)MainGraphic).World
            };
            PickingLocalBounding = new Common.Bounding.Chain
            {
                Boundings = new object[]
                {
                    VisibilityLocalBounding,
                    new BoundingMetaMesh
                    {
                        SkinnedMeshInstance = MetaEntityAnimation,
                        Transformation = ((MetaModel)MainGraphic).World
                    }
                },
                Shallow = true
            };

            InitWeapons();
        }