Beispiel #1
0
        public string Execute(IProtoQuest quest, [CurrentCharacterIfNull] ICharacter player = null)
        {
            var quests = player.SharedGetQuests();

            QuestsSystem.ServerCompleteQuest(quests, quest, ignoreRequirements: true);
            return(null);
        }
Beispiel #2
0
        private bool ServerRemote_RestoreCharacterData(CharacterProgressData data)
        {
            var character = ServerRemoteContext.Character;

            if (!Server.Core.IsLocalServer ||
                !Server.Core.IsLocalServerHoster(character))
            {
                throw new Exception("The player is not the local server hoster: " + character);
            }

            Logger.Important("New Game +: Restoring old character progress");

            // restore style
            CharacterStyleSystem.ServerSetStyle(character, data.FaceStyle, data.IsMale);
            CharacterCreationSystem.ServerSetOrigin(character, data.ProtoCharacterOrigin);

            // ensure character spawned
            CharacterCreationSystem.ServerSpawnIfReady(character);

            // restore finished quests
            var quests = character.SharedGetQuests();

            quests.ServerReset();
            foreach (var quest in data.FinishedQuests)
            {
                QuestsSystem.ServerCompleteQuest(quests,
                                                 quest,
                                                 ignoreRequirements: true,
                                                 provideReward: false);
            }

            // restore technologies
            var technologies = character.SharedGetTechnologies();

            technologies.ServerSetLearningPoints(data.LearningPoints);

            foreach (var techGroup in data.TechGroups)
            {
                technologies.ServerAddGroup(techGroup);
            }

            foreach (var techNode in data.TechNodes)
            {
                technologies.ServerAddNode(techNode);
            }

            // restore skills
            var skills = character.SharedGetSkills();

            skills.ServerReset();
            foreach (var(skill, experience) in data.Skills)
            {
                skills.ServerDebugSetSkill(skill, experience);
            }

            Logger.Important("New Game +: Finished restoring old character data");
            return(true);
        }
Beispiel #3
0
        public string Execute([CurrentCharacterIfNull] ICharacter player = null)
        {
            var quests = player.SharedGetQuests();

            foreach (var questEntry in quests.Quests.ToList())
            {
                if (!questEntry.IsCompleted)
                {
                    QuestsSystem.ServerCompleteQuest(quests, questEntry.Quest, ignoreRequirements: true);
                }
            }

            return(null);
        }
        public string Execute([CurrentCharacterIfNull] ICharacter player = null)
        {
            var quests = player.SharedGetQuests();

            foreach (var quest in QuestsSystem.AllQuests)
            {
                quests.ServerTryAddQuest(quest, isUnlocked: true);
                if (!quests.SharedHasCompletedQuest(quest))
                {
                    QuestsSystem.ServerCompleteQuest(quests, quest, ignoreRequirements: true);
                }
            }

            return(null);
        }