Концептуальная реализация апгрейда оружия в игре - C#
Формулировка задачи:
Есть игра в которой есть оружие. Например у него есть УРОН, ВРЕМЯ ПЕРЕЗАРЯДКИ, КОЛ-ВО ПАТРОНОВ В МАГАЗИНЕ и ВЕС оружия. Не могу концептуально врубиться как реализовать чтобы каждый параметр имел, например, 4 стадии улучшения, соответственно для каждой стадии своя цена (рассчитывается динамически в зависимости от стоимости пушки и некоего коэффициента для данного параметра). Все это дело сохранялось потом каким-то образом, грубо говоря "что сереализовать?" При этом чтобы можно было добавляя новое оружие в игру автоматически присваивать возможность улучшения.
Еще вдогонку вопрос как нормальные люди реализуют такую схему когда у каждой стадии есть имя и описание:
Может создать класс с константами улучшений и описания?
Листинг программы
- name[0] = "УРОН";
- desc[0,0] = "пули из серебра";
- desc[0,1] = "улучшенные механизмы";
- name[1] = "КОЛ-ВО ПАТРОНОВ";
- desc[1,0] = "увеличение обоймы";
- desc[1,1] = "двойной магазин";
- for(int i =0; i < updates; i++) {
- Modding newMod = new Modding();
- newMod.name = name[i];
- for(int k =0; k < desc.GetLength(2); k++) {
- newMod.desc = desc[k];
- //рисуем кнопку с описанием
- }
- }
Решение задачи: «Концептуальная реализация апгрейда оружия в игре»
textual
Листинг программы
- [Serializable]
- public class Weapon : List<IGameComponent>
- {
- }
- [Serializable]
- public class Damage : IGameComponent
- {
- private float[] prices = {2f, 3.5f, 4f, 5.5f};
- private string[] names = { "Стандарт", "Стандарт +", "Профи", "Супер" };
- public int UpgradeLevel { get; set; }
- public float PriceKoeff
- {
- get { return prices[UpgradeLevel]; }
- }
- public string Name
- {
- get { return names[UpgradeLevel]; }
- }
- }
- public interface IGameComponent
- {
- int UpgradeLevel { get; set; }
- float PriceKoeff { get; }
- string Name { get; }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д