Концептуальная реализация апгрейда оружия в игре - 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; }
    }

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


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

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

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