Exemple #1
0
        private static YotogiSkillSystem CreateDummySkillSystem(Status status)
        {
            DummySkillTreeCreationStart?.Invoke(null, EventArgs.Empty);
            YotogiSkillSystem enabledSkillSystem = new YotogiSkillSystem(status);

            foreach (var skills in Skill.skill_data_list)
            {
                foreach (var skillDataPair in skills)
                {
                    if (!skillDataPair.Value.IsExecPersonal(status.personal))
                    {
                        continue;
                    }
                    YotogiSkillData data = enabledSkillSystem.Get(skillDataPair.Value.id) ?? enabledSkillSystem.Add(skillDataPair.Value);
                    data.expSystem.SetLevel(data.expSystem.GetMaxLevel());
                    data.playCount = 9999;
                }
            }

            foreach (var skills in Skill.Old.skill_data_list)
            {
                foreach (var skillDataPair in skills)
                {
                    YotogiSkillData data = enabledSkillSystem.Get(skillDataPair.Value.id) ?? enabledSkillSystem.Add(skillDataPair.Value);
                    data.expSystem.SetLevel(data.expSystem.GetMaxLevel());
                    data.playCount = 9999;
                }
            }

            DummySkillTreeCreationEnd?.Invoke(null, EventArgs.Empty);
            return(enabledSkillSystem);
        }
        private void UnlockAllYotogiSkills(Maid maid, bool max)
        {
            foreach (var skillList in Skill.skill_data_list)
            {
                foreach (var skillPair in skillList)
                {
                    YotogiSkillData skill = maid.status.yotogiSkill.Get(skillPair.Key) ?? maid.status.yotogiSkill.Add(skillPair.Value);
                    if (max)
                    {
                        skill.expSystem.SetLevel(skill.expSystem.GetMaxLevel());
                    }
                }
            }

            foreach (var skillList in Skill.Old.skill_data_list)
            {
                foreach (var skillPair in skillList)
                {
                    YotogiSkillData skill = maid.status.yotogiSkill.Get(skillPair.Key) ?? maid.status.yotogiSkill.Add(skillPair.Value);
                    if (max)
                    {
                        skill.expSystem.SetLevel(skill.expSystem.GetMaxLevel());
                    }
                }
            }

            // Run skill fixing in case there were invalid skills prior to running this unlock
            FixYotogiSkills(maid);
        }
Exemple #3
0
        private void SetYotogiSkillPlayCount(Maid maid, object id, object playCount)
        {
            int  skillId        = Convert.ToInt32(id);
            uint skillPlayCount = Convert.ToUInt32(playCount);

            YotogiSkillData skill = maid.status.yotogiSkill.Get(skillId) ?? maid.status.yotogiSkill.Add(skillId);

            skill.playCount = skillPlayCount;
        }
Exemple #4
0
        private void SetYotogiSkillExp(Maid maid, object id, object exp)
        {
            int skillId  = Convert.ToInt32(id);
            int skillExp = Convert.ToInt32(exp);

            YotogiSkillData skill = maid.status.yotogiSkill.Get(skillId) ?? maid.status.yotogiSkill.Add(skillId);

            skill.expSystem.SetTotalExp(skillExp);
        }
Exemple #5
0
        private void SetYotogiSkillLevel(Maid maid, object id, object level)
        {
            int skillId    = Convert.ToInt32(id);
            int skillLevel = Convert.ToInt32(level);

            YotogiSkillData skill = maid.status.yotogiSkill.Get(skillId) ?? maid.status.yotogiSkill.Add(skillId);

            skill.expSystem.SetLevel(skillLevel);
        }
Exemple #6
0
        public static bool PrefixCreateDatas(out Dictionary <int, YotogiSkillListManager.Data> result,
                                             Status status,
                                             bool specialConditionCheck,
                                             Skill.Data.SpecialConditionType type)
        {
            result = new Dictionary <int, YotogiSkillListManager.Data>();
            if (!EnableYotogiSkills)
            {
                return(false);
            }

            YotogiSkillSystem skillSystem = CreateDummySkillSystem(status);

            foreach (var skillDatas in Skill.skill_data_list)
            {
                foreach (var idSkillPair in skillDatas)
                {
                    Skill.Data skill = idSkillPair.Value;

                    if (!skill.IsExecPersonal(status.personal) || specialConditionCheck && skill.specialConditionType != type)
                    {
                        continue;
                    }

                    YotogiSkillData skillData = skillSystem.Get(skill.id);
                    if (skillData == null)
                    {
                        skillData = new YotogiSkillData {
                            data = skill, oldData = skill.oldData
                        };
                        skillData.expSystem.SetExreienceList(new List <int>(skill.skill_exp_table));
                    }

                    var data = new YotogiSkillListManager.Data
                    {
                        skillData           = skill,
                        conditionDatas      = new KeyValuePair <string[], bool> [0],
                        maidStatusSkillData = skillData
                    };
                    result.Add(skill.id, data);
                }
            }

            return(true);
        }
Exemple #7
0
        public static bool PrefixCreateDatasOld(out Dictionary <int, YotogiSkillListManager.Data> result, Status status)
        {
            result = new Dictionary <int, YotogiSkillListManager.Data>();
            if (!EnableYotogiSkills)
            {
                return(false);
            }

            YotogiSkillSystem skillSystem = CreateDummySkillSystem(status);

            foreach (var skillDatas in Skill.Old.skill_data_list)
            {
                foreach (var idSkillPair in skillDatas)
                {
                    Skill.Old.Data skill = idSkillPair.Value;

                    YotogiSkillData skillData = skillSystem.Get(skill.id);
                    if (skillData == null)
                    {
                        skillData = new YotogiSkillData {
                            oldData = skill
                        };
                        skillData.expSystem.SetExreienceList(new List <int>(skill.skill_exp_table));
                    }

                    var data = new YotogiSkillListManager.Data
                    {
                        skillDataOld        = skill,
                        conditionDatas      = new KeyValuePair <string[], bool> [0],
                        maidStatusSkillData = skillData
                    };
                    result.Add(skill.id, data);
                }
            }

            return(true);
        }
Exemple #8
0
        public static void SetMaidStatus(Maid maid)
        {
            if (maid == null)
            {
                MyLog.LogError("MaidStatusUtill.SetMaidStatus:null");
                return;
            }
            MyLog.LogMessage("SetMaidStatus: " + MyUtill.GetMaidFullNale(maid));

            maid.status.employmentDay = 1;// 고용기간

            maid.status.baseAppealPoint = 9999;
            maid.status.baseCare        = 9999;
            maid.status.baseCharm       = 9999;
            maid.status.baseCooking     = 9999;
            maid.status.baseDance       = 9999;
            maid.status.baseElegance    = 9999;
            maid.status.baseHentai      = 9999;
            maid.status.baseHousi       = 9999;
            maid.status.baseInyoku      = 9999;
            maid.status.baseLovely      = 9999;
            maid.status.baseMaxHp       = 9999;
            maid.status.baseMaxMind     = 9999;
            maid.status.baseMaxReason   = 9999;
            maid.status.baseMvalue      = 9999;
            maid.status.baseReception   = 9999;
            maid.status.baseTeachRate   = 9999;
            maid.status.baseVocal       = 9999;

            maid.status.studyRate  = 0;                     // 습득율
            maid.status.likability = 999;                   // 호감도

            maid.status.heroineType = HeroineType.Transfer; // 기본, ? , 이전
            maid.status.relation    = Relation.Lover;       // 호감도
            maid.status.seikeiken   = Seikeiken.Yes_Yes;    //

            MyLog.LogMessage(".SetMaidStatus.AddFeature: " + MyUtill.GetMaidFullNale(maid));
            try
            {
                foreach (Feature.Data data in Feature.GetAllDatas(true))
                {
                    maid.status.AddFeature(data);
                }
            }
            catch (Exception e)
            {
                MyLog.LogError("SetMaidStatus: " + e.ToString());
            }

            MyLog.LogMessage(".SetMaidStatus.AddPropensity: " + MyUtill.GetMaidFullNale(maid));
            try
            {
                // 특성
                foreach (Propensity.Data data in Propensity.GetAllDatas(true))
                {
                    maid.status.AddPropensity(data);
                }
            }
            catch (Exception e)
            {
                MyLog.LogError("SetMaidStatus: " + e.ToString());
            }

            MyLog.LogMessage(".SetMaidStatus.YotogiClass: " + MyUtill.GetMaidFullNale(maid));
            // 피드러 참고
            foreach (YotogiClass.Data data in YotogiClass.GetAllDatas(true))
            {
                ClassData <YotogiClass.Data> classData = maid.status.yotogiClass.Get(data.id) ?? maid.status.yotogiClass.Add(data, true, true);
                if (classData != null)
                {
                    classData.expSystem.SetLevel(classData.expSystem.GetMaxLevel());
                }
            }



            JobClassSystem jobClassSystem = maid.status.jobClass;

            // 실패한듯
            try
            {
                List <JobClass.Data> learnPossibleClassDatas = jobClassSystem.GetLearnPossibleClassDatas(true, AbstractClassData.ClassType.Share | AbstractClassData.ClassType.New);
                //MyLog.LogMessage(".SetMaidStatus.learn: " + MyUtill.GetMaidFullNale(maid));
                MyLog.LogMessage(".JobClass.learn: " + MyUtill.GetMaidFullNale(maid), learnPossibleClassDatas.Count);
                // 클래스 추가?
                foreach (JobClass.Data data in learnPossibleClassDatas)
                {
                    if (jobClassSystem.Contains(data))
                    {
                        continue;
                    }

                    MyLog.LogDebug(".JobClass.learn:" + data.id + " , " + data.uniqueName + " , " + data.drawName + " , " + data.explanatoryText + " , " + data.termExplanatoryText);
                    MyLog.LogDebug(".JobClass.learn: " + jobClassSystem.Contains(data), MyUtill.Join(" , ", data.levelBonuss));

                    ClassData <JobClass.Data> classData = jobClassSystem.Add(data, true, true);

                    //ClassData<JobClass.Data> classData=jobClassSystem.Get(data);
                    //SimpleExperienceSystem expSystem = classData.expSystem;
                    //expSystem.SetTotalExp(expSystem.GetMaxLevelNeedExp());
                    //expSystem.SetLevel(expSystem.GetMaxLevel());
                }
            }
            catch (Exception e)
            {
                MyLog.LogError(".JobClass.learn: " + e.ToString());
            }

            try
            {
                SortedDictionary <int, ClassData <JobClass.Data> > keyValuePairs = jobClassSystem.GetAllDatas();
                MyLog.LogMessage(".JobClass.expSystem: " + MyUtill.GetMaidFullNale(maid), keyValuePairs.Count);
                //MyLog.LogMessage("JobClass.expSystem: " + MaidUtill.GetMaidFullNale(maid), keyValuePairs.Count);
                // 경험치 설정
                foreach (var item in keyValuePairs)
                {
                    ClassData <JobClass.Data> classData = item.Value;
                    JobClass.Data             data      = classData.data;
                    SimpleExperienceSystem    expSystem = classData.expSystem;

                    if (expSystem.GetMaxLevel() == expSystem.GetCurrentLevel())
                    {
                        continue;
                    }

                    MyLog.LogDebug(".JobClass.expSystem:" + data.id + " , " + data.uniqueName + " , " + data.drawName + " , " + data.explanatoryText + " , " + data.termExplanatoryText);
                    MyLog.LogDebug(".JobClass.expSystem:" + expSystem.GetType(), expSystem.GetMaxLevel(), expSystem.GetCurrentLevel());

                    expSystem.SetTotalExp(expSystem.GetMaxLevelNeedExp());
                    expSystem.SetLevel(expSystem.GetMaxLevel());
                }
                //maid.status.UpdateClassBonusStatus();
            }
            catch (Exception e)
            {
                MyLog.LogError(".JobClass.expSystem: " + e.ToString());
            }


            // 스킬 추가
            //___select_maid_.status.yotogiSkill.Add(skillId);
            MyLog.LogMessage(".SetMaidStatus.Skill1: " + MyUtill.GetMaidFullNale(maid));
            try
            {
                List <Skill.Data> learnPossibleSkills = Skill.GetLearnPossibleSkills(maid.status);
                foreach (Skill.Data data in learnPossibleSkills)
                {
                    MyLog.LogDebug("id: " + data.id + " , " + data.name + " , " + data.start_call_file + " , " + data.start_call_file2 + " , " + data.termName);
#if DEBUG
                    //MyLog.LogMessage(".Skill1: " + MaidUtill.GetMaidFullNale(maid));
                    MyLog.LogDebug("ban_id_array: " + MyUtill.Join <int>(" , ", data.ban_id_array));
                    MyLog.LogDebug("skill_exp_table: " + MyUtill.Join <int>(" , ", data.skill_exp_table));
                    MyLog.LogDebug("playable_stageid_list: " + MyUtill.Join <int>(" , ", data.playable_stageid_list));
#endif
                    YotogiSkillData        yotogiSkillData = maid.status.yotogiSkill.Add(data);
                    SimpleExperienceSystem expSystem       = yotogiSkillData.expSystem;
                    expSystem.SetTotalExp(expSystem.GetMaxLevelNeedExp());
                    expSystem.SetLevel(expSystem.GetMaxLevel());
                }
            }
            catch (Exception e)
            {
                MyLog.LogWarning(".SetMaidStatus.Skill1: " + MyUtill.GetMaidFullNale(maid));
                MyLog.LogError(".SetMaidStatus.Skill1: " + e.ToString());
            }

            MyLog.LogMessage(".SetMaidStatus.Old.Skill: " + MyUtill.GetMaidFullNale(maid));
            try
            {
                List <Skill.Old.Data> learnPossibleSkills = Skill.Old.GetLearnPossibleSkills(maid.status);
                foreach (Skill.Old.Data data in learnPossibleSkills)
                {
                    MyLog.LogDebug("id: " + data.id + " , " + data.name + " , " + data.start_call_file + " , " + data.start_call_file2);
#if DEBUG
                    MyLog.LogMessage(".Skill2: " + MyUtill.GetMaidFullNale(maid));
                    MyLog.LogDebug("ban_id_array: " + MyUtill.Join(" , ", data.ban_id_array));
                    MyLog.LogDebug("skill_exp_table: " + MyUtill.Join(" , ", data.skill_exp_table));
#endif
                    YotogiSkillData        yotogiSkillData = maid.status.yotogiSkill.Add(data);
                    SimpleExperienceSystem expSystem       = yotogiSkillData.expSystem;
                    expSystem.SetTotalExp(expSystem.GetMaxLevelNeedExp());
                    expSystem.SetLevel(expSystem.GetMaxLevel());
                }
            }
            catch (Exception e)
            {
                MyLog.LogWarning(".SetMaidStatus.Old.Skill: " + MyUtill.GetMaidFullNale(maid));
                MyLog.LogError(".SetMaidStatus.Old.Skill: " + MyUtill.GetMaidFullNale(maid), e.ToString());
            }
        }