示例#1
0
 public void Save(DroneBaySerializable serializable)
 {
     serializable.EnergyConsumption        = EnergyConsumption.Value;
     serializable.PassiveEnergyConsumption = PassiveEnergyConsumption.Value;
     serializable.Range              = Range.Value;
     serializable.DamageMultiplier   = DamageMultiplier.Value;
     serializable.DefenseMultiplier  = DefenseMultiplier.Value;
     serializable.SpeedMultiplier    = SpeedMultiplier.Value;
     serializable.ImprovedAi         = ImprovedAi;
     serializable.Capacity           = Capacity.Value;
     serializable.ActivationType     = ActivationType;
     serializable.LaunchSound        = LaunchSound;
     serializable.LaunchEffectPrefab = LaunchEffectPrefab;
     serializable.ControlButtonIcon  = ControlButtonIcon;
     OnDataSerialized(ref serializable);
 }
示例#2
0
 private DroneBayData(DroneBaySerializable serializable, Database database)
 {
     ItemId                   = new ItemId <DroneBayData>(serializable.Id, serializable.FileName);
     EnergyConsumption        = new NumericValue <float>(serializable.EnergyConsumption, 0f, 1000f);
     PassiveEnergyConsumption = new NumericValue <float>(serializable.PassiveEnergyConsumption, 0f, 1000f);
     Range              = new NumericValue <float>(serializable.Range, 1f, 100f);
     DamageMultiplier   = new NumericValue <float>(serializable.DamageMultiplier, 0.01f, 100f);
     DefenseMultiplier  = new NumericValue <float>(serializable.DefenseMultiplier, 0.01f, 100f);
     SpeedMultiplier    = new NumericValue <float>(serializable.SpeedMultiplier, 0.01f, 100f);
     ImprovedAi         = serializable.ImprovedAi;
     Capacity           = new NumericValue <int>(serializable.Capacity, 1, 100);
     ActivationType     = serializable.ActivationType;
     LaunchSound        = new AudioClipId(serializable.LaunchSound);
     LaunchEffectPrefab = serializable.LaunchEffectPrefab;
     ControlButtonIcon  = serializable.ControlButtonIcon;
 }
示例#3
0
        public DroneBayStats(DroneBaySerializable serializable, Database.Loader loader)
        {
            EnergyConsumption        = UnityEngine.Mathf.Clamp(serializable.EnergyConsumption, 0f, 1E+09f);
            PassiveEnergyConsumption = UnityEngine.Mathf.Clamp(serializable.PassiveEnergyConsumption, 0f, 1E+09f);
            Range              = UnityEngine.Mathf.Clamp(serializable.Range, 1f, 1000f);
            DamageMultiplier   = UnityEngine.Mathf.Clamp(serializable.DamageMultiplier, 0.01f, 1000f);
            DefenseMultiplier  = UnityEngine.Mathf.Clamp(serializable.DefenseMultiplier, 0.01f, 1000f);
            SpeedMultiplier    = UnityEngine.Mathf.Clamp(serializable.SpeedMultiplier, 0.01f, 1000f);
            ImprovedAi         = serializable.ImprovedAi;
            Capacity           = UnityEngine.Mathf.Clamp(serializable.Capacity, 1, 1000);
            ActivationType     = serializable.ActivationType;
            LaunchSound        = new AudioClipId(serializable.LaunchSound);
            LaunchEffectPrefab = new PrefabId(serializable.LaunchEffectPrefab, PrefabId.Type.Effect);
            ControlButtonIcon  = new SpriteId(serializable.ControlButtonIcon, SpriteId.Type.ActionButton);

            OnDataDeserialized(serializable, loader);
        }
示例#4
0
        public DroneBaySerializable Serialize()
        {
            var serializable = new DroneBaySerializable();

            serializable.Id                       = ItemId.Id;
            serializable.FileName                 = ItemId.Name;
            serializable.ItemType                 = (int)ItemType.DroneBay;
            serializable.EnergyConsumption        = EnergyConsumption.Value;
            serializable.PassiveEnergyConsumption = PassiveEnergyConsumption.Value;
            serializable.Range                    = Range.Value;
            serializable.DamageMultiplier         = DamageMultiplier.Value;
            serializable.DefenseMultiplier        = DefenseMultiplier.Value;
            serializable.SpeedMultiplier          = SpeedMultiplier.Value;
            serializable.ImprovedAi               = ImprovedAi;
            serializable.Capacity                 = Capacity.Value;
            serializable.ActivationType           = ActivationType;
            serializable.LaunchSound              = LaunchSound.ToString();
            serializable.LaunchEffectPrefab       = LaunchEffectPrefab;
            serializable.ControlButtonIcon        = ControlButtonIcon;
            return(serializable);
        }
示例#5
0
 partial void OnDataSerialized(ref DroneBaySerializable serializable);
示例#6
0
 partial void OnDataDeserialized(DroneBaySerializable serializable, Database database);
示例#7
0
 public static DroneBayData Deserialize(DroneBaySerializable serializable, Database database)
 {
     return(new DroneBayData(serializable, database));
 }
示例#8
0
 partial void OnDataDeserialized(DroneBaySerializable serializable, Database.Loader loader);
示例#9
0
 private DroneBay(DroneBaySerializable serializable, Database.Loader loader)
 {
     Id = new ItemId <DroneBay>(serializable.Id);
     loader.AddDroneBay(serializable.Id, this);
     Stats = new DroneBayStats(serializable, loader);
 }
示例#10
0
 public static DroneBay Create(DroneBaySerializable serializable, Database.Loader loader)
 {
     return(new DroneBay(serializable, loader));
 }