Ejemplo n.º 1
0
 private void UpdateElementals(GameTime gameTime, Character character, ViewManager viewManager)
 {
     for (int i = 0; i < elementals.Count; i++)
     {
         // Using relativeX for both check for a circle image zone
         if (Vector2.DistanceSquared(character.Position, elementals[i].Position) > Math.Pow(viewManager.RelativeX(relativeRemovalRadius), 2))
         {
             // Console.WriteLine("Elemental removed");
             elementals.RemoveAt(i);
         }
         else if (!elementals[i].IsAlive)
         {
             character.AddExperience(elementals[i].PointYield);
             character.AddElementalPoints(elementals[i].CurrentElement, elementals[i].PointYield * 2);
             elementals.RemoveAt(i);
         }
         else
         {
             elementals[i].Update(gameTime, elementals, character.Position);
             elementals[i].Visible = Math.Abs(character.Position.X - elementals[i].Position.X) < viewManager.RelativeX(50) + elementals[i].Width
                 || Math.Abs(character.Position.Y - elementals[i].Position.Y) < viewManager.RelativeY(50) + elementals[i].Height;
         }
     }
 }
Ejemplo n.º 2
0
 private Vector2 RandomZonePos(Vector2 characterPosition, ViewManager viewManager)
 {
     var angle = Math.Sqrt(Helper.RandomNextDouble()) * Math.PI * 2;
     var gRadius = Helper.RandomInt(viewManager.RelativeY(10), viewManager.RelativeX(125));
     return new Vector2((int)(characterPosition.X + gRadius * Math.Cos(angle)),
         (int)(characterPosition.Y + gRadius * Math.Sin(angle)));
 }