Example #1
0
        public void Save(bool forceSaveToDB)
        {
            if (mLoaded)
            {
                if (player == null)
                {
                    return;
                }
                var character = GetComponent <PlayerCharacterObject>();
                if (character == null)
                {
                    return;
                }

                try {
                    var app = nebulaObject.mmoWorld().application;
                    InventoryDatabase.instance(app).SaveInventory(character.characterId, player.Inventory);
                    StationDatabase.instance(app).SaveStation(character.characterId, player.Station);
                    CharacterDatabase.instance(app).SaveCharacter(character.characterId, player.GetPlayerCharacter());
                    ShipModelDatabase.instance(app).SaveShipModel(character.characterId, GetComponent <PlayerShip>().shipModel);
                    SkillDatabase.instance(app).SaveSkills(character.characterId, GetComponent <PlayerSkills>().GetSave());
                    WeaponDatabase.instance(app).SaveWeapon(character.characterId, player.GetComponent <ShipWeapon>().GetSave());
                    PassiveBonusesDatabase.instance(app).SavePassiveBonuses(character.characterId, player.GetComponent <PassiveBonusesComponent>().GetSave());
                    TimedEffectsDatabase.instance(app).SaveTimedEffects(character.characterId, player.GetComponent <PlayerTimedEffects>().GetInfo());
                    PetDatabase.instance(app).SavePets(character.characterId, player.GetComponent <PetManager>().pets);
                    ContractDatabase.instance(app).SaveContracts(character.characterId, player.GetComponent <ContractManager>().GetSave());
                    AchievmentDatabase.instance(app).SaveAchievment(character.characterId, player.GetComponent <AchievmentComponent>().GetSave());
                    QuestDatabase.instance(app).SaveQuests(character.characterId, player.GetComponent <QuestManager>().GetSave());
                    //QuestDatabase.instance(app).SaveQuests(character.characterId, player.GetComponent<QuestManager>().GetInfo());
                    //DialogDatabase.instance(app).SaveDialogs(character.characterId, player.GetComponent<DialogManager>().GetInfo());
                } catch (Exception exception) {
                    log.Error("handled exception at Player Loaded Object");
                    log.Error(exception.Message);
                    log.Error(exception.StackTrace);
                }
            }
        }
Example #2
0
        public void Load()
        {
            Start();
            var characterID = GetComponent <PlayerCharacterObject>().characterId;

            log.InfoFormat("load passive bonuses = {0} [red]", characterID);
            var app          = nebulaObject.mmoWorld().application;
            var savedBonuses = PassiveBonusesDatabase.instance(app).LoadPassiveBonuses(characterID);

            foreach (var savedBonusPair in savedBonuses)
            {
                PassiveBonusType type = (PassiveBonusType)savedBonusPair.Key;
                switch (type)
                {
                case PassiveBonusType.Speed:
                    mSpeed = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.DamageDron:
                    mDamageDron = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.HealDron:
                    mHealDron = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.CritChance:
                    mCritChance = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.CritDamage:
                    mCritDamage = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.Damage:
                    mDamage = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.Resist:
                    mResist = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.MaxHP:
                    mMaxHP = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.MaxEnergy:
                    mMaxEnergy = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.ColoredLoot:
                    mColoredLoot = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.RestoreHPSpeed:
                    mRestoreHP = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.RestoreEnergy:
                    mRestoreEnergy = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.OptimalDistance:
                    mOptimalDistance = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.ChanceNotDropLootAtDeath:
                    mChanceDontDropLoot = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;

                case PassiveBonusType.ChanceCraftColoredModule:
                    mChanceCraftColoredModule = new Data(type, savedBonusPair.Value.tier, savedBonusPair.Value.learningStarted, savedBonusPair.Value.learnStartTime, savedBonusPair.Value.learnEndTime);
                    break;
                }
            }



            var allDataDict = allData;

            foreach (PassiveBonusType type in System.Enum.GetValues(typeof(PassiveBonusType)))
            {
                Data data;
                if (allDataDict.TryGetValue(type, out data))
                {
                    if (data == null)
                    {
                        data = new Data(type, 0, false, 0, 0);
                    }
                }
            }

            mBonusesChanged = true;
            mLoaded         = true;
        }