예제 #1
0
 public RedMoldormHead(Vector2 location)
 {
     RandomStateGenerator = new RandomStateGenerator(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.FireSnakeStateList);
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.FireSnakeHealth);
     Physics               = new Physics(location);
     Physics.Mass          = GameData.Instance.EnemyMassConstants.FireSnakeMass;
     Physics.IsMovable     = false;
     CurrentState          = new IdleEnemyState(this);
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     Damage                = GameData.Instance.EnemyDamageConstants.FireSnakeDamage;
     DamageTimer           = 0;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.RedFireSnakeSpeed;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     HasChild              = true;
     children              = new List <IEnemy>();
     spawnedChildren       = false;
     AI         = EnemyAI.MoldormHead;
     IsSpawning = false;
     DropTable  = GameData.Instance.EnemyDropTables.RedMoldormDropTable;
     ApplyDamageMod();
     ApplySmallSpeedMod();
     ApplySmallWeightModPos();
     ApplyLargeHealthMod();
     MinMaxWander = new Point(LoZGame.Instance.UpdateSpeed);
 }
예제 #2
0
 public GleeokHeadOff(IEnemy body, Point spawnPoint)
 {
     parent = body;
     RandomStateGenerator = new RandomStateGenerator(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.GleeokHeadOffStateList);
     Health                = new HealthManager(1);
     Physics               = new Physics(spawnPoint.ToVector2());
     Physics.Mass          = 1;
     Physics.IsMovable     = false;
     CurrentState          = new IdleEnemyState(this);
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     IsTransparent         = true;
     IsKillable            = false;
     Expired               = false;
     Damage                = GameData.Instance.EnemyDamageConstants.FullHeart;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.GleeokHeadOffSpeed;
     DamageTimer           = 0;
     MinMaxWander          = new Point(LoZGame.Instance.UpdateSpeed);
     CurrentTint           = LoZGame.Instance.DefaultTint;
     IsBossPart            = true;
     HasChild              = false;
     AI         = EnemyAI.GleeokHeadOff;
     DropTable  = GameData.Instance.EnemyDropTables.EmptyDropTable;
     IsSpawning = false;
     ApplyDamageMod();
     ApplyLargeSpeedMod();
 }
예제 #3
0
 public DigDogger(Vector2 location, IEnemy parent)
 {
     protectedSelf         = parent;
     Physics               = new Physics(location);
     CurrentState          = new SpawnEnemyState(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.DigDoggerStateList);
     RandomStateGenerator  = new RandomStateGenerator(this);
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.DigDoggerHealth);
     Physics.Mass          = GameData.Instance.EnemyMassConstants.DigDoggerSmallMass;
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     Damage                = GameData.Instance.EnemyDamageConstants.DigDoggerDamage;
     DamageTimer           = 0;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.DigDoggerFleeSpeed;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     AI                = EnemyAI.SmallDigDogger;
     DropTable         = GameData.Instance.EnemyDropTables.DigDoggerDropTable;
     MinMaxWander      = new Point(GameData.Instance.EnemyMiscConstants.MinDirectionChange, GameData.Instance.EnemyMiscConstants.MaxDirectionChange);
     Physics.IsMovable = false;
     ApplyDamageMod();
     ApplyLargeSpeedMod();
     ApplyLargeWeightModPos();
     ApplyLargeHealthMod();
 }
예제 #4
0
 public MiniPatra(IEnemy body)
 {
     parent   = body;
     Physics  = new Physics(Vector2.Zero);
     rotation = -MathHelper.PiOver2;
     SetLocation();
     RandomStateGenerator = new RandomStateGenerator(this);
     States = new Dictionary <RandomStateGenerator.StateType, int>()
     {
         { RandomStateGenerator.StateType.Idle, 1 },
     };
     Health                = new HealthManager(1);
     Physics.Mass          = GameData.Instance.EnemyMassConstants.PatraMass;
     Physics.IsMovable     = false;
     CurrentState          = new IdleEnemyState(this);
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     Damage                = GameData.Instance.EnemyDamageConstants.MiniPatraDamage;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.PatraSpeed;
     DamageTimer           = 0;
     MinMaxWander          = new Point(LoZGame.Instance.UpdateSpeed / 4, LoZGame.Instance.UpdateSpeed);
     CurrentTint           = LoZGame.Instance.DefaultTint;
     HasChild              = false;
     AI         = EnemyAI.MiniPatra;
     IsSpawning = false;
     DropTable  = GameData.Instance.EnemyDropTables.EmptyDropTable;
     ApplyDamageMod();
     ApplySmallWeightModPos();
 }
예제 #5
0
파일: Vire.cs 프로젝트: Grimnak/LoZGame
 public Vire(Vector2 location)
 {
     RandomStateGenerator = new RandomStateGenerator(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.VireStateList);
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.VireHealth);
     Physics               = new Physics(location);
     Physics.Mass          = GameData.Instance.EnemyMassConstants.VireMass;
     CurrentState          = new SpawnEnemyState(this);
     EntityManager         = LoZGame.Instance.GameObjects.Entities;
     Cooldown              = 0;
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     Damage                = GameData.Instance.EnemyDamageConstants.VireDamage;
     DamageTimer           = 0;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.VireSpeed;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     AI        = EnemyAI.Vire;
     DropTable = GameData.Instance.EnemyDropTables.VireDropTable;
     ApplyDamageMod();
     ApplySmallSpeedMod();
     ApplySmallWeightModPos();
     ApplySmallHealthMod();
     Physics.Gravity = GameData.Instance.EnemyMiscConstants.VireGravity;
 }
예제 #6
0
 public GleeokBody(Vector2 location)
 {
     RandomStateGenerator = new RandomStateGenerator(this);
     States = new Dictionary <RandomStateGenerator.StateType, int>()
     {
         { RandomStateGenerator.StateType.Idle, 1 }
     };
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.ManhandlaBodyHealth);
     Physics               = new Physics(location);
     Physics.Mass          = GameData.Instance.EnemyMassConstants.DragonMass;
     Physics.IsMovable     = false;
     CurrentState          = new IdleEnemyState(this);
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     IsTransparent         = true;
     Damage                = GameData.Instance.EnemyDamageConstants.DragonDamage;
     DamageTimer           = 0;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.ManhandlaMinSpeed;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     spawnedChildren       = false;
     AI         = EnemyAI.NoSpawn;
     DropTable  = GameData.Instance.EnemyDropTables.GleeokDropTable;
     IsSpawning = false;
 }
예제 #7
0
 public Patra(Vector2 location)
 {
     RandomStateGenerator = new RandomStateGenerator(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.PatraStateList);
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.PatraHealth);
     Physics               = new Physics(location);
     Physics.Mass          = GameData.Instance.EnemyMassConstants.PatraMass;
     Physics.IsMovable     = false;
     CurrentState          = new IdleEnemyState(this);
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     IsTransparent         = false;
     Damage                = GameData.Instance.EnemyDamageConstants.PatraDamage;
     DamageTimer           = 0;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.PatraSpeed;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     spawnedChildren       = false;
     AI            = EnemyAI.Patra;
     DropTable     = GameData.Instance.EnemyDropTables.PatraDropTable;
     IsSpawning    = false;
     children      = new Dictionary <int, IEnemy>();
     deadChildren  = new List <int>();
     addedChildren = 0;
     rotationCheck = 0;
     childID       = 0;
 }
예제 #8
0
 public override void OnCollisionResponse(ICollider otherCollider, CollisionDetection.CollisionSide collisionSide)
 {
     if (otherCollider is IPlayer)
     {
         EnemyCollisionHandler.OnCollisionResponse((IPlayer)otherCollider, collisionSide);
     }
 }
예제 #9
0
 public GleeokNeck(IEnemy body)
 {
     parent = body;
     RandomStateGenerator = new RandomStateGenerator(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.ManhandlaHeadStateList);
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.GleeokNeckHealth);
     Physics               = new Physics(body.Physics.Bounds.Center.ToVector2());
     Physics.Mass          = GameData.Instance.EnemyMassConstants.DragonMass;
     Physics.IsMovable     = false;
     CurrentState          = new IdleEnemyState(this);
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     Damage                = 0;
     DamageTimer           = 0;
     MoveSpeed             = 0;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     IsBossPart            = true;
     HasChild              = true;
     AI            = EnemyAI.NoAI;
     DropTable     = GameData.Instance.EnemyDropTables.EmptyDropTable;
     IsTransparent = true;
     ApplyDamageMod();
     ApplyLargeWeightModPos();
     ApplyLargeHealthMod();
 }
예제 #10
0
 public ManhandlaHead(IEnemy body, Physics.Direction side)
 {
     parent = body;
     RandomStateGenerator = new RandomStateGenerator(this);
     States                   = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.ManhandlaHeadStateList);
     Health                   = new HealthManager(GameData.Instance.EnemyHealthConstants.ManhandlaHeadHealth);
     Physics                  = new Physics(body.Physics.Bounds.Center.ToVector2());
     Physics.Mass             = GameData.Instance.EnemyMassConstants.DragonMass;
     Physics.IsMovable        = false;
     Physics.CurrentDirection = side;
     Physics.Bounds           = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     Setup();
     CurrentState          = new IdleEnemyState(this);
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired      = false;
     Damage       = GameData.Instance.EnemyDamageConstants.DragonDamage;
     MoveSpeed    = 0;
     CurrentTint  = LoZGame.Instance.DefaultTint;
     IsBossPart   = true;
     AI           = EnemyAI.ManHandlaHead;
     IsSpawning   = false;
     buffedParent = false;
     DropTable    = GameData.Instance.EnemyDropTables.EmptyDropTable;
     ApplyDamageMod();
     ApplyLargeWeightModPos();
     ApplyLargeHealthMod();
 }
예제 #11
0
 public GleeokHead(IEnemy body)
 {
     neckBase              = new Point(body.Physics.Bounds.Center.X, body.Physics.Bounds.Bottom);
     parent                = body;
     RandomStateGenerator  = new RandomStateGenerator(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.GleeokHeadStateList);
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.GleeokHeadHealth);
     Physics               = new Physics(neckBase.ToVector2());
     Physics.Mass          = GameData.Instance.EnemyMassConstants.DragonMass;
     Physics.IsMovable     = false;
     CurrentState          = new IdleEnemyState(this);
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     Damage                = GameData.Instance.EnemyDamageConstants.FullHeart + GameData.Instance.EnemyDamageConstants.HalfHeart;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.GleeokHeadSpeed;
     DamageTimer           = 0;
     MinMaxWander          = new Point(LoZGame.Instance.UpdateSpeed / 4, LoZGame.Instance.UpdateSpeed);
     CurrentTint           = LoZGame.Instance.DefaultTint;
     IsBossPart            = true;
     HasChild              = false;
     AI         = EnemyAI.GleeokHead;
     IsSpawning = false;
     DropTable  = GameData.Instance.EnemyDropTables.EmptyDropTable;
     ApplyDamageMod();
     ApplyLargeWeightModPos();
     ApplySmallHealthMod();
 }
예제 #12
0
 public virtual void OnCollisionResponse(ICollider otherCollider, CollisionDetection.CollisionSide collisionSide)
 {
     if (otherCollider is IPlayer)
     {
         EnemyCollisionHandler.OnCollisionResponse((IPlayer)otherCollider, collisionSide);
     }
     else if (otherCollider is IBlock)
     {
         EnemyCollisionHandler.OnCollisionResponse((IBlock)otherCollider, collisionSide);
     }
     else if (otherCollider is IProjectile)
     {
         EnemyCollisionHandler.OnCollisionResponse((IProjectile)otherCollider, collisionSide);
     }
 }
예제 #13
0
파일: RedGohma.cs 프로젝트: Grimnak/LoZGame
 public override void OnCollisionResponse(ICollider otherCollider, CollisionDetection.CollisionSide collisionSide)
 {
     if (otherCollider is IPlayer)
     {
         EnemyCollisionHandler.OnCollisionResponse((IPlayer)otherCollider, collisionSide);
     }
     else if (otherCollider is IBlock)
     {
         EnemyCollisionHandler.OnCollisionResponse((IBlock)otherCollider, collisionSide);
     }
     else if (otherCollider is IProjectile && CurrentState is OpenEyeState)
     {
         EnemyCollisionHandler.OnCollisionResponse((IProjectile)otherCollider, collisionSide);
     }
 }
예제 #14
0
 public override void OnCollisionResponse(ICollider otherCollider, CollisionDetection.CollisionSide collisionSide)
 {
     if (otherCollider is IPlayer && !(((Link)otherCollider).State is PickupItemState || CurrentState is StunnedEnemyState) && !LoZGame.Instance.Players[0].Inventory.HasClock)
     {
         CurrentState.Attack();
     }
     else if (otherCollider is IBlock && !(CurrentState is AttackingWallMasterState))
     {
         EnemyCollisionHandler.OnCollisionResponse((IBlock)otherCollider, collisionSide);
     }
     else if (otherCollider is IProjectile && Timer <= 100)
     {
         EnemyCollisionHandler.OnCollisionResponse((IProjectile)otherCollider, collisionSide);
     }
 }
예제 #15
0
 public OldMan(Vector2 location)
 {
     Physics              = new Physics(location);
     flameOffset          = new Point(130, 0);
     RandomStateGenerator = new RandomStateGenerator(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.OldManStateList);
     CurrentState          = new IdleEnemyState(this);
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.OldManHealth);
     Expired               = false;
     Damage                = GameData.Instance.EnemyDamageConstants.OldManDamage;
     DamageTimer           = 0;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.OldManSpeed;
     CurrentTint           = Color.White;
     timesShot             = 0;
     DropTable             = GameData.Instance.EnemyDropTables.EmptyDropTable;
     IsKillable            = false;
 }
예제 #16
0
 public RedMoldormSegment(IEnemy parent)
 {
     RandomStateGenerator = new RandomStateGenerator(this);
     States                = GameData.Instance.EnemyStateWeights.FireSnakeStateList;
     this.parent           = parent;
     Physics               = new Physics(parent.Physics.Location);
     Physics.Mass          = GameData.Instance.EnemyMassConstants.FireSnakeMass;
     Physics.IsMovable     = false;
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     CurrentState          = new FollowFireSnakeState(this);
     HasChild              = false;
     Expired               = false;
     Damage                = GameData.Instance.EnemyDamageConstants.FireSnakeDamage;
     DamageTimer           = 0;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.RedFireSnakeSpeed;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     AI        = EnemyAI.Segment;
     DropTable = GameData.Instance.EnemyDropTables.EmptyDropTable;
 }
예제 #17
0
파일: LikeLike.cs 프로젝트: Grimnak/LoZGame
 public Likelike(Vector2 location)
 {
     Timer = 0;
     RandomStateGenerator = new RandomStateGenerator(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.LikelikeStateList);
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.LikelikeHealth);
     Physics               = new Physics(location);
     Physics.Mass          = GameData.Instance.EnemyMassConstants.LikelikeMass;
     CurrentState          = new SpawnEnemyState(this);
     EntityManager         = LoZGame.Instance.GameObjects.Entities;
     Cooldown              = 0;
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     IsDead                = false;
     Damage                = GameData.Instance.EnemyDamageConstants.LikelikeDamage;
     DamageTimer           = 0;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.LikelikeSpeed;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     DropTable             = GameData.Instance.EnemyDropTables.LikelikeDropTable;
 }
예제 #18
0
 public VireKeese(Vector2 location)
 {
     RandomStateGenerator = new RandomStateGenerator(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.KeeseStateList);
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.KeeseHealth);
     Physics               = new Physics(location);
     Physics.Mass          = GameData.Instance.EnemyMassConstants.KeeseMass;
     CurrentState          = new SpawnEnemyState(this);
     EntityManager         = LoZGame.Instance.GameObjects.Entities;
     Cooldown              = 0;
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     Damage                = GameData.Instance.EnemyDamageConstants.KeeseDamage;
     DamageTimer           = 0;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.MinKeeseSpeed;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     AI           = EnemyAI.Keese;
     DropTable    = GameData.Instance.EnemyDropTables.EmptyDropTable;
     MinMaxWander = new Point(GameData.Instance.EnemyMiscConstants.MinDirectionChange, GameData.Instance.EnemyMiscConstants.MaxDirectionChange);
 }
예제 #19
0
 public RedDarknut(Vector2 location)
 {
     RandomStateGenerator = new RandomStateGenerator(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.DarknutStateList);
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.RedDarknutHealth);
     Physics               = new Physics(location);
     Physics.Mass          = GameData.Instance.EnemyMassConstants.DarknutMass;
     CurrentState          = new SpawnEnemyState(this);
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     Damage                = GameData.Instance.EnemyDamageConstants.RedDarknutDamage;
     DamageTimer           = 0;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.DarknutSpeed;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     AI        = EnemyAI.Darknut;
     DropTable = GameData.Instance.EnemyDropTables.RedDarknutDropTable;
     ApplyDamageMod();
     ApplySmallSpeedMod();
     ApplyLargeWeightModPos();
     ApplySmallHealthMod();
 }
예제 #20
0
 public SpikeCross(Vector2 location)
 {
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.SpikeCrossHealth);
     Physics               = new Physics(new Vector2(location.X, location.Y));
     Physics.Mass          = GameData.Instance.EnemyMassConstants.SpikeCrossMass;
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     CurrentState          = new SpawnEnemyState(this);
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     InitialPos            = Physics.Bounds.Location;
     Expired               = false;
     IsKillable            = false;
     Damage                = GameData.Instance.EnemyDamageConstants.SpikeCrossDamage;
     DamageTimer           = 0;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     //CurrentTint = Color.White;
     AI            = EnemyAI.SpikeCross;
     DropTable     = GameData.Instance.EnemyDropTables.EmptyDropTable;
     IsTransparent = true;
     ApplyDamageMod();
     ApplySmallSpeedMod();
     ApplyLargeWeightModPos();
 }
예제 #21
0
 public Ganon(Vector2 location)
 {
     RandomStateGenerator = new RandomStateGenerator(this);
     States                = new Dictionary <RandomStateGenerator.StateType, int>(GameData.Instance.EnemyStateWeights.GanonTeleportingStateList);
     Health                = new HealthManager(GameData.Instance.EnemyHealthConstants.GanonHealth);
     Physics               = new Physics(location);
     Physics.Mass          = GameData.Instance.EnemyMassConstants.GanonMass;
     CurrentState          = new IdleEnemyState(this);
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, EnemySpriteFactory.GetEnemyWidth(this), EnemySpriteFactory.GetEnemyHeight(this));
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     Physics.IsMovable     = false;
     visibilityTimer       = LoZGame.Instance.UpdateSpeed;
     Damage                = GameData.Instance.EnemyDamageConstants.GanonDamage;
     DamageTimer           = 0;
     MoveSpeed             = GameData.Instance.EnemySpeedConstants.GanonSpeed;
     CurrentTint           = LoZGame.Instance.DefaultTint;
     DropTable             = GameData.Instance.EnemyDropTables.EmptyDropTable;
     ApplyDamageMod();
     ApplySmallSpeedMod();
     ApplyLargeWeightModPos();
     ApplyLargeHealthMod();
 }
예제 #22
0
 public BlockEnemy(Vector2 location)
 {
     RandomStateGenerator = new RandomStateGenerator(this);
     States = new Dictionary <RandomStateGenerator.StateType, int>()
     {
         { RandomStateGenerator.StateType.Attack, 1 },
         { RandomStateGenerator.StateType.Idle, 5 }
     };
     Health                = new HealthManager(1);
     Physics               = new Physics(location);
     Physics.IsMovable     = false;
     Physics.Mass          = 1;
     Physics.Bounds        = new Rectangle((int)Physics.Location.X, (int)Physics.Location.Y, 1, 1);
     EnemyCollisionHandler = new EnemyCollisionHandler(this);
     Expired               = false;
     IsKillable            = false;
     IsTransparent         = true;
     DamageTimer           = 0;
     AI           = EnemyAI.NoAI;
     DropTable    = GameData.Instance.EnemyDropTables.EmptyDropTable;
     CurrentState = new BlockEnemyIdleState(this);
     CurrentTint  = LoZGame.Instance.DefaultTint;
 }
예제 #23
0
 public virtual void OnCollisionResponse(int sourceWidth, int sourceHeight, CollisionDetection.CollisionSide collisionSide)
 {
     EnemyCollisionHandler.OnCollisionResponse(sourceWidth, sourceHeight, collisionSide);
 }