Example #1
0
        protected Special(Fighter fighter, SpecialData.SpecialDataEntry specialData, int totalUses)
        {
            Fighter     = fighter;
            SpecialData = specialData;

            TotalUses     = totalUses;
            RemainingUses = TotalUses;
        }
Example #2
0
        public static Special Create(Fighter fighter, SpecialData.SpecialDataEntry specialData, int uses = 0)
        {
            switch (specialData.Type)
            {
            case SpecialData.SpecialType.Missiles:
                return(new Missiles(fighter, specialData, uses));

            case SpecialData.SpecialType.Chaff:
                return(new Chaffs(fighter, specialData, uses));

            default:
                Debug.LogError($"Invalid special type {specialData.Type}!");
                return(null);
            }
        }
Example #3
0
        private void IncreaseSpecialUses(SpecialLoadoutSlot specialSlot)
        {
            foreach (var kvp in specialSlot.SpecialVotes)
            {
                SpecialData.SpecialDataEntry specialData = DataManager.Instance.GameData.Specials.Entries.GetOrDefault(kvp.Key);
                if (null == specialData)
                {
                    continue;
                }

                Special special = _specials.GetOrDefault(specialData.Type);
                if (null == special)
                {
                    special = SpecialFactory.Create(_fighter, specialData, kvp.Value);
                    _specials.Add(specialData.Type, special);
                    _specialList.Add(special);
                }
                else
                {
                    special.IncreaseTotalUses(kvp.Value);
                }
            }
        }
Example #4
0
 public Missiles(Fighter fighter, SpecialData.SpecialDataEntry specialData, int totalUses)
     : base(fighter, specialData, totalUses)
 {
 }