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); } } }
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; }