Ejemplo n.º 1
0
 public void CheckQuest()
 {
     if (isQuest)
     {
         QuestsSystem.ProgressQuests(quest);
     }
 }
Ejemplo n.º 2
0
 public void RemoveNewFlag()
 {
     if (this.QuestEntry.IsNew)
     {
         QuestsSystem.ClientMarkAsNotNew(this.QuestEntry.Quest);
     }
 }
Ejemplo n.º 3
0
        public string Execute(IProtoQuest quest, [CurrentCharacterIfNull] ICharacter player = null)
        {
            var quests = player.SharedGetQuests();

            QuestsSystem.ServerCompleteQuest(quests, quest, ignoreRequirements: true);
            return(null);
        }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 5
0
    private static string ElfHuntReward(PlayerMain player)
    {
        TieredQuest quest     = QuestsSystem.GetTieredQuest(Quests.ElfsHunt);
        float       tierMulti = Mathf.Pow(2, quest.Tier - 1);
        int         expGain   = Mathf.FloorToInt(100 * tierMulti);
        int         goldGain  = Mathf.FloorToInt(150 * tierMulti);

        player.ExpSystem.GainExp(expGain);
        player.Currency.Gold += goldGain;
        QuestsSystem.TieredQuests.Remove(quest);
        return($"You are rewarded: {expGain}Exp and {goldGain}gold");
    }
Ejemplo n.º 6
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);
        }
Ejemplo n.º 7
0
 private void OnEnable()
 {
     if (basicQuest != null)
     {
         if (QuestsSystem.HasQuest(basicQuest.Type))
         {
             PrintQuest(basicQuest);
         }
         else
         {
             basicQuest = null;
             ClearQuest();
         }
     }
 }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
    private static string BanditLordReward(PlayerMain player)
    {
        BasicQuest quest = QuestsSystem.GetBasicQuest(Quests.Bandit);

        player.ExpSystem.GainExp(300);
        player.Currency.Gold += 500;
        QuestsSystem.BasicQuests.Remove(quest);
        if (PlayerFlags.BeatBanditLord.Cleared)
        {
            return("You are rewared: 300Exp and 500gold");
        }
        else
        {
            PlayerFlags.BeatBanditLord.Clear();
            return($"We can not thank you enough, as an token of our gratitude we have transfered you the rights of the propery around your home. \n\nYou are rewared: 300Exp and 500gold");
        }
    }
Ejemplo n.º 10
0
    public void LoadData(string json)
    {
        FullSave fullSave = JsonUtility.FromJson <FullSave>(json);

        // Singleton static
        // Reference
        JsonUtility.FromJsonOverwrite(fullSave.PlayerPart.Who, Player);
        StartHomeStats.Load(fullSave.HomePart);
        dorm.Load(fullSave.DormPart);
        voreChar.Load(fullSave.VoreSaves, Player);
        // Pure static
        DateSystem.Load(fullSave.DatePart);
        QuestsSystem.Load(fullSave.QuestSave);
        PlayerFlags.Load(fullSave.PlayerFlagsSave);
        MapEvents.GetMapEvents.Load(fullSave.PosPart, fullSave.TeleportSaves);
        GameManager.Load(fullSave.GameManagerSave);
        EventLog.ClearLog();
        LoadEvent?.Invoke();
    }
Ejemplo n.º 11
0
 private void ExecuteCommandClaimReward()
 {
     QuestsSystem.ClientClaimReward(this.QuestEntry.Quest);
 }
Ejemplo n.º 12
0
 private void AcceptQuest()
 {
     QuestsSystem.AddQuest(quest);
     callBtn.gameObject.SetActive(false);
     Destroy(gameObject);
 }
Ejemplo n.º 13
0
 private void OnEnable()
 {
     banditQuest.SetActive(QuestsSystem.HasQuest(Quests.Bandit));
     elfQuest.SetActive(QuestsSystem.HasQuest(Quests.ElfsHunt));
     buyHouse.SetActive(PlayerFlags.BeatBanditLord.Cleared);
 }
Ejemplo n.º 14
0
 public List <QuestRewardButton> CompletedQuests() => RewardButtons.FindAll(q => QuestsSystem.QuestIsCompleted(q.Quest));
Ejemplo n.º 15
0
 public void AlreadyHasQuest()
 => questButtons.ForEach(qg => qg.Btn.gameObject.SetActive(!QuestsSystem.HasQuest(qg.Quest)));
Ejemplo n.º 16
0
 private void HadQuest() => spriteRenderer.enabled = QuestsSystem.HasQuest(Quest);