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()); }
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); } }
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()); }
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()); }
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()); }
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()); }
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 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; }
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; }
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); } } }); } }