Esempio n. 1
0
    void AddWeapon(ref ShipCommon ship, WeaponSpec spec, Vector3 relPos)
    {
        Transform parent = ship.refs.physicsTransform;

        Assert.AreApproximatelyEqual(Mathf.Abs(spec.weaponPrefab.transform.localScale.x), 1.0f);

        ref Weapon weapon = ref ship.weapons.Add();
Esempio n. 2
0
        public static float GetStat(WeaponSpec spec, int level, ItemQuality quality, Stat stat)
        {
            if (level <= 0) { return 0; }

            if (table_data == null) { LoadData(); }

            return table_data[(int)spec][(int)quality][level][(int)stat];
        }
Esempio n. 3
0
    private void ActivateNewWeapon(object newWeapon)
    {
        _currentWeapon      = (WeaponSpec)newWeapon;
        _audioSource.volume = _currentWeapon._volume;
        _audioSource.clip   = _currentWeapon._weaponSFX;
        _Event_UpdateWeaponUI.Invoke(_currentWeapon._weaponType, this);

        if (_currentWeapon._presenece != 0)
        {
            _timer      = _currentWeapon._presenece;
            _startTimer = true;
        }
    }
Esempio n. 4
0
        private static void LoadData()
        {
            GomObject table = DataObjectModel.GetObject(tablePath);
            Dictionary<object, object> tableData = table.Data.Get<Dictionary<object,object>>("cbtWeaponPerLevelData");

            table_data = new Dictionary<int, Dictionary<int, Dictionary<int, Dictionary<int, float>>>>();
            foreach (var kvp in tableData)
            {
                WeaponSpec wpnSpec = WeaponSpecExtensions.ToWeaponSpec((ulong)kvp.Key);
                Dictionary<object, object> qualityToLevelMap = (Dictionary<object, object>)kvp.Value;

                var container0 = new Dictionary<int, Dictionary<int, Dictionary<int, float>>>();
                table_data[(int)wpnSpec] = container0;

                foreach (var quality_level in qualityToLevelMap)
                {
                    ItemQuality quality = ItemQualityExtensions.ToItemQuality((ScriptEnum)quality_level.Key);
                    var levelToStatMap = (Dictionary<object, object>)quality_level.Value;

                    var container1 = new Dictionary<int, Dictionary<int, float>>();
                    container0[(int)quality] = container1;

                    foreach (var level_stat in levelToStatMap)
                    {
                        int level = (int)(long)level_stat.Key;
                        var statToValueMap = (Dictionary<object, object>)level_stat.Value;

                        Dictionary<int, float> container2 = new Dictionary<int, float>();
                        container1[level] = container2;

                        foreach (var stat_val in statToValueMap)
                        {
                            Stat stat = StatExtensions.ToStat((ScriptEnum)stat_val.Key);
                            float val = (float)stat_val.Value;
                            container2[(int)stat] = val;
                        }
                    }
                }
            }
        }
Esempio n. 5
0
        public static bool HasStats(this WeaponSpec spec)
        {
            switch (spec)
            {
            case WeaponSpec.AssaultCannon:
            case WeaponSpec.Electrostaff:
            case WeaponSpec.ElectrostaffTech:
            case WeaponSpec.Lightsaber:
            case WeaponSpec.Gauntlet:
            case WeaponSpec.Pistol:
            case WeaponSpec.Polesaber:
            case WeaponSpec.Rifle:
            case WeaponSpec.Shotgun:
            case WeaponSpec.SniperRifle:
            case WeaponSpec.TrainingSaber:
            case WeaponSpec.Vibroblade:
            case WeaponSpec.VibrobladeTech:
            case WeaponSpec.Vibroknife:
                return(true);

            default:
                return(false);
            }
        }
Esempio n. 6
0
 void InitializePools(WeaponSpec spec)
 {
     InitializePools(spec.weaponPrefab, 2 * 32);
     InitializePools(spec.projectilePrefab, 256);
     InitializePools(spec.impactPrefab, 64);
 }