Концептуальная реализация апгрейда оружия в игре - C#

Узнай цену своей работы

Формулировка задачи:

Есть игра в которой есть оружие. Например у него есть УРОН, ВРЕМЯ ПЕРЕЗАРЯДКИ, КОЛ-ВО ПАТРОНОВ В МАГАЗИНЕ и ВЕС оружия. Не могу концептуально врубиться как реализовать чтобы каждый параметр имел, например, 4 стадии улучшения, соответственно для каждой стадии своя цена (рассчитывается динамически в зависимости от стоимости пушки и некоего коэффициента для данного параметра). Все это дело сохранялось потом каким-то образом, грубо говоря "что сереализовать?" При этом чтобы можно было добавляя новое оружие в игру автоматически присваивать возможность улучшения. Еще вдогонку вопрос как нормальные люди реализуют такую схему когда у каждой стадии есть имя и описание: Может создать класс с константами улучшений и описания?
Листинг программы
  1. name[0] = "УРОН";
  2. desc[0,0] = "пули из серебра";
  3. desc[0,1] = "улучшенные механизмы";
  4. name[1] = "КОЛ-ВО ПАТРОНОВ";
  5. desc[1,0] = "увеличение обоймы";
  6. desc[1,1] = "двойной магазин";
  7. for(int i =0; i < updates; i++) {
  8. Modding newMod = new Modding();
  9. newMod.name = name[i];
  10. for(int k =0; k < desc.GetLength(2); k++) {
  11. newMod.desc = desc[k];
  12. //рисуем кнопку с описанием
  13. }
  14. }

Решение задачи: «Концептуальная реализация апгрейда оружия в игре»

textual
Листинг программы
  1.     [Serializable]
  2.     public class Weapon : List<IGameComponent>
  3.     {
  4.     }
  5.  
  6.     [Serializable]
  7.     public class Damage : IGameComponent
  8.     {
  9.         private float[] prices = {2f, 3.5f, 4f, 5.5f};
  10.         private string[] names = { "Стандарт", "Стандарт +", "Профи", "Супер" };
  11.  
  12.         public int UpgradeLevel { get; set; }
  13.  
  14.         public float PriceKoeff
  15.         {
  16.             get { return prices[UpgradeLevel]; }
  17.         }
  18.  
  19.         public string Name
  20.         {
  21.             get { return names[UpgradeLevel]; }
  22.         }
  23.     }
  24.  
  25.     public interface IGameComponent
  26.     {
  27.         int UpgradeLevel { get; set; }
  28.         float PriceKoeff { get; }
  29.         string Name { get; }
  30.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут