123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575 |
- using System;
- using System.Collections.Generic;
- using MaidStatus;
- using PlayerStatus;
- using UnityEngine;
- namespace Schedule
- {
- public class ScheduleCalcAPI
- {
- public static ScheduleCalcAPI.ResultSimulateParam SimulateMaidStatusResult(Maid maid, int workId, ScheduleData.WorkSuccessLv successLv = ScheduleData.WorkSuccessLv.Success, bool commu = false)
- {
- ScheduleCalcAPI.ResultSimulateParam resultSimulateParam = new ScheduleCalcAPI.ResultSimulateParam();
- if (maid == null)
- {
- return resultSimulateParam;
- }
- ScheduleCSVData.Training training = (ScheduleCSVData.Training)ScheduleCSVData.AllData[workId];
- switch (training.trainingType)
- {
- case ScheduleCSVData.TrainingType.Basic:
- case ScheduleCSVData.TrainingType.Dispatch:
- {
- int revisionLevel = ScheduleCalcAPI.GetRevisionLevel(ScheduleCalcAPI.NoonWorkPlayToLv(ScheduleCalcAPI.NoonWorkPlayCount(maid, workId)));
- double revisionFacilityLevel = ScheduleCalcAPI.GetRevisionFacilityLevel(training.facility);
- BonusStatus bonusStatusAsFeatureAndPropensitys = maid.status.GetBonusStatusAsFeatureAndPropensitys();
- double revisionFacility = ScheduleCalcAPI.GetRevisionFacility1(training.facility);
- double revisionSuccess = ScheduleCalcAPI.GetRevisionSuccess(successLv, commu);
- ScheduleCalcAPI.log.SetTarget(maid);
- resultSimulateParam.reception = ScheduleCalcAPI.Simulate_basic("接待", training.reception, revisionLevel, revisionFacilityLevel, bonusStatusAsFeatureAndPropensitys.reception, revisionFacility, revisionSuccess);
- resultSimulateParam.care = ScheduleCalcAPI.Simulate_basic("お世話", training.care, revisionLevel, revisionFacilityLevel, bonusStatusAsFeatureAndPropensitys.care, revisionFacility, revisionSuccess);
- resultSimulateParam.lovely = ScheduleCalcAPI.Simulate_basic("可燐", training.lovely, revisionLevel, revisionFacilityLevel, bonusStatusAsFeatureAndPropensitys.lovely, revisionFacility, revisionSuccess);
- resultSimulateParam.elegance = ScheduleCalcAPI.Simulate_basic("気品", training.elegance, revisionLevel, revisionFacilityLevel, bonusStatusAsFeatureAndPropensitys.elegance, revisionFacility, revisionSuccess);
- resultSimulateParam.charm = ScheduleCalcAPI.Simulate_basic("魅惑", training.charm, revisionLevel, revisionFacilityLevel, bonusStatusAsFeatureAndPropensitys.charm, revisionFacility, revisionSuccess);
- resultSimulateParam.teach_rate = ScheduleCalcAPI.Simulate_basic("指導", training.teach_rate, revisionLevel, revisionFacilityLevel, bonusStatusAsFeatureAndPropensitys.teachRate, revisionFacility, revisionSuccess);
- resultSimulateParam.cooking = ScheduleCalcAPI.Simulate_basic("料理", training.cooking, revisionLevel, revisionFacilityLevel, bonusStatusAsFeatureAndPropensitys.cooking, revisionFacility, revisionSuccess);
- resultSimulateParam.vocal = ScheduleCalcAPI.Simulate_basic("ボーカル", training.vocal, revisionLevel, revisionFacilityLevel, bonusStatusAsFeatureAndPropensitys.vocal, revisionFacility, revisionSuccess);
- resultSimulateParam.dance = ScheduleCalcAPI.Simulate_basic("ダンス", training.dance, revisionLevel, revisionFacilityLevel, bonusStatusAsFeatureAndPropensitys.dance, revisionFacility, revisionSuccess);
- resultSimulateParam.appealPoint = ScheduleCalcAPI.Simulate_basic("アピール", training.appealPoint, revisionLevel, revisionFacilityLevel, bonusStatusAsFeatureAndPropensitys.appealPoint, revisionFacility, revisionSuccess);
- resultSimulateParam.exp = ScheduleCalcAPI.Simulate_basic("ジョブEXP", training.exp, revisionLevel, revisionFacilityLevel, 0, revisionFacility, revisionSuccess);
- resultSimulateParam.study_rate = training.study_rate;
- resultSimulateParam.income = ScheduleCalcAPI.Simulate_basic("収入", training.income, revisionLevel, 0.0, 0, 0.0, revisionSuccess);
- resultSimulateParam.income = (int)((double)resultSimulateParam.income * (Math.Ceiling((double)maid.status.care / (double)ScheduleCSVData.dispatchIncomCoefficient) / 100.0 + 1.0));
- break;
- }
- case ScheduleCSVData.TrainingType.Trainee:
- {
- Maid stockMaidLeader = ScheduleAPI.GetStockMaidLeader();
- if (stockMaidLeader != null)
- {
- int noonTrainerWorkId = ScheduleAPI.GetNoonTrainerWorkId();
- int revisionLevel2 = ScheduleCalcAPI.GetRevisionLevel(ScheduleCalcAPI.NoonWorkPlayToLv(ScheduleCalcAPI.NoonWorkPlayCount(stockMaidLeader, noonTrainerWorkId)));
- int teachRevision = stockMaidLeader.status.teachRate / 50;
- MaidStatus.Status status = stockMaidLeader.status;
- ScheduleCalcAPI.log.SetTarget(maid);
- resultSimulateParam.study_rate = training.study_rate;
- resultSimulateParam.reception = ScheduleCalcAPI.Simulate_trainee("接待", status.reception, revisionLevel2, teachRevision);
- resultSimulateParam.care = ScheduleCalcAPI.Simulate_trainee("お世話", status.care, revisionLevel2, teachRevision);
- resultSimulateParam.lovely = ScheduleCalcAPI.Simulate_trainee("可燐", status.lovely, revisionLevel2, teachRevision);
- resultSimulateParam.elegance = ScheduleCalcAPI.Simulate_trainee("気品", status.elegance, revisionLevel2, teachRevision);
- resultSimulateParam.charm = ScheduleCalcAPI.Simulate_trainee("魅惑", status.charm, revisionLevel2, teachRevision);
- resultSimulateParam.cooking = ScheduleCalcAPI.Simulate_trainee("料理", status.cooking, revisionLevel2, teachRevision);
- resultSimulateParam.vocal = ScheduleCalcAPI.Simulate_trainee("ボーカル", status.vocal, revisionLevel2, teachRevision);
- resultSimulateParam.dance = ScheduleCalcAPI.Simulate_trainee("ダンス", status.dance, revisionLevel2, teachRevision);
- resultSimulateParam.inyoku = ScheduleCalcAPI.Simulate_trainee("淫欲", status.inyoku, revisionLevel2, teachRevision);
- resultSimulateParam.mvalue = ScheduleCalcAPI.Simulate_trainee("M性", status.mvalue, revisionLevel2, teachRevision);
- resultSimulateParam.hentai = ScheduleCalcAPI.Simulate_trainee("変態", status.hentai, revisionLevel2, teachRevision);
- resultSimulateParam.housi = ScheduleCalcAPI.Simulate_trainee("奉仕", status.housi, revisionLevel2, teachRevision);
- }
- break;
- }
- }
- return resultSimulateParam;
- }
- public static ScheduleCalcAPI.ResultSimulateParam SimulateIncomeResult(Maid maid, int workId, Facility facility, ScheduleMgr.ScheduleTime time, ScheduleData.WorkSuccessLv successLv = ScheduleData.WorkSuccessLv.Success, bool commu = false)
- {
- ScheduleCalcAPI.ResultSimulateParam resultSimulateParam = new ScheduleCalcAPI.ResultSimulateParam();
- if (maid == null)
- {
- return resultSimulateParam;
- }
- ScheduleCSVData.Training training = (ScheduleCSVData.Training)ScheduleCSVData.AllData[workId];
- double revisionMainFacility = ScheduleCalcAPI.GetRevisionMainFacility(facility);
- double revisionFacilityLevel = ScheduleCalcAPI.GetRevisionFacilityLevel(facility.defaultData);
- double revisionFacility = ScheduleCalcAPI.GetRevisionFacility1(facility.defaultData);
- double revisionFacility2 = ScheduleCalcAPI.GetRevisionFacility2(facility);
- int num = 0;
- int num2 = 0;
- int clubGrade = GameMain.Instance.CharacterMgr.status.clubGrade;
- int num3 = ScheduleCSVData.EntertainNumberData[clubGrade];
- double revisionSuccess = ScheduleCalcAPI.GetRevisionSuccess(successLv, commu);
- if (revisionSuccess == 0.0)
- {
- return resultSimulateParam;
- }
- num3 = (int)((double)num3 * ScheduleCalcAPI.CP(revisionMainFacility));
- ScheduleCalcAPI.log.SetTarget(maid);
- ScheduleCalcAPI.log.AddLog(string.Empty);
- ScheduleCalcAPI.log.AddLog(facility.defaultData.name + " 収支:" + training.facility.businessType.ToString());
- for (int i = 0; i < num3; i++)
- {
- int count = ScheduleCSVData.EntertainGuestData[clubGrade].Count;
- int index = UnityEngine.Random.Range(0, count);
- ScheduleCSVData.EntertainGuest entertainGuest = ScheduleCSVData.EntertainGuestData[clubGrade][index];
- double num4 = 0.0;
- double num5 = 0.0;
- ScheduleCalcAPI.log.AddLog(i + "人目------------------------------------------------------------");
- FacilityDataTable.BusinessType businessType = training.facility.businessType;
- if (businessType != FacilityDataTable.BusinessType.接待系)
- {
- if (businessType != FacilityDataTable.BusinessType.営業系)
- {
- if (businessType == FacilityDataTable.BusinessType.アイドル系)
- {
- double revisionAllMaid = ScheduleCalcAPI.GetRevisionAllMaid();
- double revisionStatusIdol = ScheduleCalcAPI.GetRevisionStatusIdol(maid.status);
- double num6 = ScheduleCalcAPI.CP(revisionAllMaid + revisionStatusIdol * ScheduleCalcAPI.CP(revisionFacility + revisionFacilityLevel)) * ScheduleCalcAPI.CP(revisionFacility2) * revisionSuccess;
- num4 = (double)entertainGuest.baseIcome * num6;
- ScheduleCalcAPI.log.AddLog(string.Format("基本金額{0}*(100+所属合計補正{1}+(ステータス補正『アイドル』{2}*(100+施設補正①{3}+施設レベル補正{4})/100)/100*(100+施設補正②{5})/100*成功補正{6}", new object[]
- {
- entertainGuest.baseIcome,
- revisionAllMaid,
- revisionStatusIdol,
- revisionFacility,
- revisionFacilityLevel,
- revisionFacility2,
- revisionSuccess
- }) + "=" + num4);
- double num7 = ScheduleCalcAPI.CP(revisionStatusIdol * ScheduleCalcAPI.CP(revisionFacility + revisionFacilityLevel)) * ScheduleCalcAPI.CP(revisionFacility2) * revisionSuccess;
- num5 = (double)entertainGuest.baseEvaluation * num7;
- ScheduleCalcAPI.log.AddLog(string.Format("基本評価{0}*(100+ステータス補正『アイドル』{1}*(100+施設補正①{2}+施設レベル補正{3})/100)/100*(100+施設補正②{4})/100*成功補正{5}", new object[]
- {
- entertainGuest.baseEvaluation,
- revisionStatusIdol,
- revisionFacility,
- revisionFacilityLevel,
- revisionFacility2,
- revisionSuccess
- }) + "=" + num5);
- }
- }
- else
- {
- double revisionStatusSales = ScheduleCalcAPI.GetRevisionStatusSales(maid, facility, time);
- double num8 = ScheduleCalcAPI.CP(revisionStatusSales * ScheduleCalcAPI.CP(revisionFacility + revisionFacilityLevel)) * ScheduleCalcAPI.CP(revisionFacility2) * revisionSuccess;
- num4 = (double)entertainGuest.baseIcome * num8;
- ScheduleCalcAPI.log.AddLog(string.Format("基本金額{0}*(100+ステータス補正『営業』{1}*(100+施設補正①{2}+施設レベル補正{3})/100)/100*(100+施設補正②{4})/100*成功補正{5}", new object[]
- {
- entertainGuest.baseIcome,
- revisionStatusSales,
- revisionFacility,
- revisionFacilityLevel,
- revisionFacility2,
- revisionSuccess
- }) + "=" + num4);
- double num9 = ScheduleCalcAPI.CP(revisionStatusSales * ScheduleCalcAPI.CP(revisionFacility + revisionFacilityLevel)) * ScheduleCalcAPI.CP(revisionFacility2) * revisionSuccess;
- num5 = (double)entertainGuest.baseEvaluation * num9;
- ScheduleCalcAPI.log.AddLog(string.Format("基本評価{0}*(100+ステータス補正『営業』{1}*(100+施設補正①{2}+施設レベル補正{3})/100)/100*(100+施設補正②{4})/100*成功補正{5}", new object[]
- {
- entertainGuest.baseEvaluation,
- revisionStatusSales,
- revisionFacility,
- revisionFacilityLevel,
- revisionFacility2,
- revisionSuccess
- }) + "=" + num5);
- }
- }
- else
- {
- double revisionStatusReception = ScheduleCalcAPI.GetRevisionStatusReception(maid.status, entertainGuest.sexual);
- double revisionAttribute = ScheduleCalcAPI.GetRevisionAttribute(entertainGuest.sexual);
- double num10 = ScheduleCalcAPI.CP(revisionStatusReception * ScheduleCalcAPI.CP(revisionFacility + revisionFacilityLevel) + revisionAttribute) * ScheduleCalcAPI.CP(revisionFacility2) * revisionSuccess;
- num4 = (double)entertainGuest.baseIcome * num10;
- ScheduleCalcAPI.log.AddLog(string.Format("基本金額{0}*(100+ステータス補正『接待』{1}*(100+施設補正①{2}+施設レベル補正{3})/100+属性補正①{4})/100*(100+施設補正②{5})/100*成功補正{6}", new object[]
- {
- entertainGuest.baseIcome,
- revisionStatusReception,
- revisionFacility,
- revisionFacilityLevel,
- revisionAttribute,
- revisionFacility2,
- revisionSuccess
- }) + "=" + num4);
- double num11 = ScheduleCalcAPI.CP(revisionStatusReception * ScheduleCalcAPI.CP(revisionFacility + revisionFacilityLevel)) * ScheduleCalcAPI.CP(revisionFacility2) * revisionSuccess;
- num5 = (double)entertainGuest.baseEvaluation * num11;
- ScheduleCalcAPI.log.AddLog(string.Format("基本評価{0}*(100+ステータス補正『接待』{1}*(100+施設補正①{2}+施設レベル補正{3})/100)/100*(100+施設補正②{4})/100*成功補正{5}", new object[]
- {
- entertainGuest.baseEvaluation,
- revisionStatusReception,
- revisionFacility,
- revisionFacilityLevel,
- revisionFacility2,
- revisionSuccess
- }) + "=" + num5);
- }
- num4 = (double)((int)Math.Ceiling(num4 / 1000.0) * 1000);
- num += (int)num4;
- num2 += (int)num5;
- }
- resultSimulateParam.income = num;
- resultSimulateParam.evaluation = num2;
- resultSimulateParam.otherPlayNumber = num3;
- ScheduleCalcAPI.log.AddLog(string.Empty);
- ScheduleCalcAPI.log.AddLog(string.Concat(new object[]
- {
- "合計金額:",
- resultSimulateParam.income,
- " 合計評価:",
- resultSimulateParam.evaluation,
- " 接客回数:",
- resultSimulateParam.otherPlayNumber
- }));
- return resultSimulateParam;
- }
- public static double CP(double value)
- {
- return (100.0 + value) / 100.0;
- }
- public static void AddResultParam(Maid maid, ScheduleCalcAPI.ResultSimulateParam param)
- {
- if (maid.status.heroineType == HeroineType.Original || maid.status.heroineType == HeroineType.Transfer)
- {
- maid.status.studyRate += param.study_rate;
- maid.status.baseReception += param.reception;
- maid.status.baseCare += param.care;
- maid.status.baseLovely += param.lovely;
- maid.status.baseElegance += param.elegance;
- maid.status.baseCharm += param.charm;
- maid.status.baseTeachRate += param.teach_rate;
- maid.status.baseCooking += param.cooking;
- maid.status.baseVocal += param.vocal;
- maid.status.baseDance += param.dance;
- maid.status.baseAppealPoint += param.appealPoint;
- if (maid.status.selectedJobClass != null)
- {
- maid.status.selectedJobClass.expSystem.AddExp(param.exp);
- }
- maid.status.baseInyoku += param.inyoku;
- maid.status.baseMvalue += param.mvalue;
- maid.status.baseHentai += param.hentai;
- maid.status.baseHousi += param.housi;
- maid.status.evaluation += param.evaluation;
- maid.status.totalEvaluations += (long)param.evaluation;
- maid.status.sexPlayNumberOfPeople += param.playNumber;
- }
- maid.status.sales += (long)param.income;
- maid.status.totalSales += (long)param.income;
- GameMain.Instance.CharacterMgr.status.baseClubEvaluation += param.evaluation;
- GameMain.Instance.CharacterMgr.status.money += (long)param.income;
- maid.status.playCountNightWork += param.otherPlayNumber;
- }
- private static int Simulate_basic(string name, int basic, int level, double facilityLevel, int sexualChara, double facility1, double success)
- {
- double num = (double)basic * ScheduleCalcAPI.CP((double)level + facilityLevel + (double)sexualChara) * ScheduleCalcAPI.CP(facility1) * success;
- if (num > 0.0)
- {
- ScheduleCalcAPI.log.AddLog("[ステータス." + name + "]");
- ScheduleCalcAPI.log.AddLog(string.Format("基本値{0} *(100+レベル補正{1} +施設レベル補正 {2} +性癖特徴補正 {3})/100*(100+施設補正①{4} )/100*成功補正 {5}", new object[]
- {
- basic,
- level,
- facilityLevel,
- sexualChara,
- facility1,
- success
- }) + "=" + num);
- }
- return (int)Math.Ceiling(num);
- }
- private static int Simulate_trainee(string name, int trainerParam, int workLvRevision, int teachRevision)
- {
- double num = (double)(trainerParam / 20) * ScheduleCalcAPI.CP((double)(workLvRevision + teachRevision)) / 2.0;
- if (num > 0.0)
- {
- ScheduleCalcAPI.log.AddLog("[ステータス." + name + "]");
- ScheduleCalcAPI.log.AddLog(string.Format("育成する側のメイド長のパラメータ{0}/20)*((100+レベル補正{1}+指導補正{2})/100) / 2", trainerParam, workLvRevision, teachRevision) + "=" + num);
- }
- return (int)Math.Ceiling(num);
- }
- private static double GetRevisionSuccess(ScheduleData.WorkSuccessLv successLv, bool commu)
- {
- double result = 0.0;
- if (successLv == ScheduleData.WorkSuccessLv.Unexecuted)
- {
- result = 0.0;
- }
- else if (commu)
- {
- result = 1.3;
- }
- else if (successLv != ScheduleData.WorkSuccessLv.Miss)
- {
- if (successLv != ScheduleData.WorkSuccessLv.Success)
- {
- if (successLv == ScheduleData.WorkSuccessLv.Perfect)
- {
- result = 1.5;
- }
- }
- else
- {
- result = 1.0;
- }
- }
- else
- {
- result = 0.5;
- }
- return result;
- }
- private static double GetBasicIncome()
- {
- return 0.0;
- }
- private static double GetEvaluation()
- {
- return 0.0;
- }
- private static double GetVisitorCnt()
- {
- return 0.0;
- }
- public static int GetRevisionLevel(int lv)
- {
- return (lv - 1) * 10;
- }
- public static int NoonWorkPlayToLv(int noonWorkPlayCount)
- {
- if (noonWorkPlayCount < ScheduleCSVData.noonWorkLv2Exp)
- {
- return 1;
- }
- if (noonWorkPlayCount < ScheduleCSVData.noonWorkLv3Exp)
- {
- return 2;
- }
- return 3;
- }
- public static int NoonWorkPlayCount(Maid maid, int workId)
- {
- if (maid.status.workDatas.ContainsKey(workId))
- {
- return (int)maid.status.workDatas.Get(workId).playCount;
- }
- return 0;
- }
- private static double GetRevisionStatusReception(MaidStatus.Status status, bool guestSexual)
- {
- double num = 0.0;
- if (guestSexual)
- {
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.inyoku);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.mvalue);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.hentai);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.housi);
- }
- else
- {
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.lovely);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.elegance);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.charm);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.reception);
- }
- return (double)Mathf.Clamp((float)(num / 2.0), 0f, 40f);
- }
- private static double GetRevisionStatusSales(Maid maid, Facility facility, ScheduleMgr.ScheduleTime time)
- {
- double num = 0.0;
- double num2 = (double)maid.status.lovely;
- double num3 = (double)maid.status.charm;
- double num4 = (double)maid.status.elegance;
- double num5 = (double)maid.status.cooking;
- double num6 = (double)maid.status.reception;
- foreach (Maid maid2 in facility.GetAllocationMaidArray(time))
- {
- if (maid2 != null && maid2 != maid)
- {
- num2 += (double)maid2.status.lovely * 0.1;
- num3 += (double)maid2.status.charm * 0.1;
- num4 += (double)maid2.status.elegance * 0.1;
- num5 += (double)maid2.status.cooking * 0.1;
- num6 += (double)maid2.status.reception * 0.1;
- }
- }
- num2 = (double)Mathf.Clamp((float)num2, 0f, 9999f);
- num3 = (double)Mathf.Clamp((float)num3, 0f, 9999f);
- num4 = (double)Mathf.Clamp((float)num4, 0f, 9999f);
- num5 = (double)Mathf.Clamp((float)num5, 0f, 9999f);
- num6 = (double)Mathf.Clamp((float)num6, 0f, 9999f);
- num += ScheduleCalcAPI.ConvertRevisionStatus(num2);
- num += ScheduleCalcAPI.ConvertRevisionStatus(num3);
- num += ScheduleCalcAPI.ConvertRevisionStatus(num4);
- num += ScheduleCalcAPI.ConvertRevisionStatus(num5);
- num += ScheduleCalcAPI.ConvertRevisionStatus(num6);
- return (double)Mathf.Clamp((float)(num / 3.0), 0f, 33f);
- }
- private static double GetRevisionStatusIdol(MaidStatus.Status status)
- {
- double num = 0.0;
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.lovely);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.elegance);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.charm);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.dance);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.vocal);
- return (double)Mathf.Clamp((float)(num / 3.0), 0f, 33f);
- }
- private static double GetRevisionMainFacility(Facility facility)
- {
- return 0.0;
- }
- private static double GetRevisionFacilityLevel(FacilityDataTable.FacilityDefaultData defaultData)
- {
- int num = GameMain.Instance.FacilityMgr.GetFacilityLevel(defaultData.ID);
- num = Mathf.Clamp((num - 1) * 5, 0, int.MaxValue);
- return (double)num;
- }
- private static double GetRevisionFacility1(FacilityDataTable.FacilityDefaultData facilityDefaultData)
- {
- return (double)facilityDefaultData.heroineMagnification;
- }
- private static double GetRevisionFacility2(Facility facility)
- {
- Facility.FacilityParameter facilityParameter = facility.CalcRecipeParameter();
- return (double)facilityParameter.experienceValue;
- }
- private static double GetRevisionAttribute(bool guestSexual)
- {
- return 1.0;
- }
- private static double GetRevisionAllMaid()
- {
- double num = 0.0;
- for (int i = 0; i < GameMain.Instance.CharacterMgr.GetMaidCount(); i++)
- {
- Maid maid = GameMain.Instance.CharacterMgr.GetMaid(i);
- if (maid != null)
- {
- double basicMaidEvaluation = ScheduleCalcAPI.GetBasicMaidEvaluation(maid.status);
- double workEvalution = ScheduleCalcAPI.GetWorkEvalution(maid.status);
- double num2 = (double)Mathf.Clamp((float)(basicMaidEvaluation + workEvalution), 0f, 100f);
- num += num2;
- }
- }
- return num;
- }
- private static double GetBasicMaidEvaluation(MaidStatus.Status status)
- {
- double num = 0.0;
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.lovely);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.elegance);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.charm);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.care);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.reception);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.dance);
- num += ScheduleCalcAPI.ConvertRevisionStatus((double)status.vocal);
- return (double)Mathf.Clamp((float)(num / 2.0), 0f, 50f);
- }
- private static double GetWorkEvalution(MaidStatus.Status status)
- {
- return 0.0;
- }
- private static double ConvertRevisionStatus(double value)
- {
- double num = (double)Mathf.Clamp((float)value, 0f, 9999f);
- return Math.Ceiling(value / 500.0);
- }
- public static ScheduleCalcAPI.ResultLog log = new ScheduleCalcAPI.ResultLog();
- public class ResultLog
- {
- public void SetTarget(Maid target)
- {
- this.target = target;
- }
- public void AddLog(Maid key, string message)
- {
- if (!this.resultLog.ContainsKey(key))
- {
- this.resultLog.Add(key, new List<string>());
- }
- this.resultLog[key].Add(message);
- }
- public void AddLog(string message)
- {
- if (this.target == null)
- {
- return;
- }
- this.AddLog(this.target, message);
- }
- public void LogClear()
- {
- this.resultLog.Clear();
- }
- public Dictionary<Maid, List<string>> resultLog = new Dictionary<Maid, List<string>>();
- public Maid target;
- }
- public class ResultSimulateParam
- {
- public int study_rate;
- public int reception;
- public int care;
- public int lovely;
- public int elegance;
- public int charm;
- public int teach_rate;
- public int exp;
- public int cooking;
- public int vocal;
- public int dance;
- public int appealPoint;
- public int income;
- public int evaluation;
- public int playNumber;
- public int otherPlayNumber;
- public int commandExp;
- public int inyoku;
- public int mvalue;
- public int hentai;
- public int housi;
- }
- }
- }
|