public BossMonster(int monsterMaxHealth, AbilityType? type = null)
     : base(monsterMaxHealth, type ?? AbilityType.Kamakaze)
 {
     Size = new Size((int)(Width * 1.5), (int)(Height * 1.5));
     Speed = MaxSpeed = MaxSpeed * 0.75;
     _gravityConstant = 400;
     FoeType = FoeType.Boss;
     SetMonsterSize();
 }
 public Monster(int monsterMaxHealth, AbilityType abilityType)
 {
     Velocity = new Vector(GetRandomVDelta() * 40, GetRandomVDelta() * 40);
     Size = new Size(Width, Height);
     Id = _id++;
     Health = MaxHealth = GetMonsterMaxHealth(monsterMaxHealth, abilityType);
     Speed = MaxSpeed = GetMaxSpeed(abilityType);
     Generation = 1;
     CreateAbilities();
     AbilityType = abilityType;
     Ability = AbilitiesDictionary[AbilityType];
     SetOnDeathAbilities();
     SetOnHitAbilities();
     SetMovementTypes();
     SetMonsterSize();
 }
 protected void SetMonsterSize()
 {
     if (AbilityType == AbilityType.Kamakaze)
     {
         if (FoeType == FoeType.Monster)
         {
             Size = new Size(36, 38);
         }
         else if (FoeType == FoeType.Boss)
         {
             Size = new Size(67, 72);
         }
     }
     else if (AbilityType == AbilityType.Fast)
     {
         if (FoeType == FoeType.Monster)
         {
             Size = new Size(23, 40);
         }
         else if (FoeType == FoeType.Boss)
         {
             Size = new Size(41, 70);
         }
     }
     else if (AbilityType == AbilityType.Healing)
     {
         if (FoeType == FoeType.Monster)
         {
             Size = new Size(32, 32);
         }
         else if (FoeType == FoeType.Boss)
         {
             Size = new Size(64, 64);
         }
     }
 }
 public Goal()
 {
     Size = new Size(Width, Height);
     Id = _id++;
     Health = MaxHealth = GoalMaxHealth;
 }