Esempio n. 1
0
        private void SetMaxStats(object sender, EventArgs e)
        {
            MaidParam maidParam = SelectedMaid.Maid.Param;

            maidParam.SetCare(9999);
            maidParam.SetCharm(9999);
            maidParam.SetElegance(9999);
            maidParam.SetEvaluation(999999L);
            maidParam.SetFrustration(0);
            maidParam.SetHentai(9999);
            maidParam.SetHousi(9999);
            maidParam.SetHp(999);
            maidParam.SetInyoku(9999);
            maidParam.SetLikability(999);
            maidParam.SetLovely(9999);
            maidParam.SetMValue(9999);
            maidParam.SetMaidPoint(999);
            maidParam.SetPlayNumber(9999);
            maidParam.SetMind(9999);
            maidParam.SetReason(9999);
            maidParam.SetReception(9999);
            maidParam.SetPopularRank(99);
            maidParam.SetSales(9999999999L);
            maidParam.SetCurHp(999);
            maidParam.SetCurMind(999);
            maidParam.SetCurReason(999);
        }
Esempio n. 2
0
        private void SetMaxPropensity(object sender, EventArgs e)
        {
            MaidParam maidParam = SelectedMaid.Maid.Param;

            for (Propensity i = Propensity.Null + 1; i < EnumHelper.MaxPropensity; i++)
            {
                maidParam.SetPropensity(i, true);
            }
        }
Esempio n. 3
0
        private void SetMaxFeature(object sender, EventArgs e)
        {
            MaidParam maidParam = SelectedMaid.Maid.Param;

            for (Feature i = Feature.Null + 1; i < EnumHelper.MaxFeature; i++)
            {
                maidParam.SetFeature(i, true);
            }
        }
Esempio n. 4
0
        private void SetMaxEroZones(object sender, EventArgs e)
        {
            MaidParam maidParam = SelectedMaid.Maid.Param;

            maidParam.SetSexualMouth(1000);
            maidParam.SetSexualCuri(1000);
            maidParam.SetSexualNipple(1000);
            maidParam.SetSexualThroat(1000);
        }
        private Maid searchStockMaid(string lastName, string firstName)
        {
            List <Maid> StockMaidList = GameMain.Instance.CharacterMgr.GetStockMaidList();

            foreach (Maid maidn in StockMaidList)
            {
                MaidParam m_Param = (MaidParam)fieldMaid.GetValue(maidn);
                if (lastName.Equals(m_Param.status.last_name) &&
                    firstName.Equals(m_Param.status.first_name))
                {
                    return(maidn);
                }
            }
            return(null);
        }
Esempio n. 6
0
        private void SetUnlockMaxAllMaids(object sender, EventArgs e)
        {
            foreach (var maid in loadedMaids)
            {
                MaidInfo  maidInfo    = maid.Value;
                Maid      currentMaid = maid.Key;
                MaidParam maidParam   = currentMaid.Param;
                Debugger.WriteLine(LogLevel.Info,
                                   $"Setting all to max for {currentMaid.Param.status.first_name} {currentMaid.Param.status.last_name}");

                for (int maidClass = 0; maidClass < EnumHelper.MaxMaidClass; maidClass++)
                {
                    SetClassIsHave(currentMaid, "maid_class_data", maidClass, true);
                    SetClassLevel(currentMaid, "maid_class_data", maidClass, 10);
                }
                maidInfo.UpdateMaidClasses();

                foreach (int yotogiClass in EnumHelper.EnabledYotogiClasses)
                {
                    SetClassIsHave(currentMaid, "yotogi_class_data", yotogiClass, true);
                    SetClassLevel(currentMaid, "yotogi_class_data", yotogiClass, 10);
                }
                maidInfo.UpdateYotogiClasses();

                maidParam.SetSexualMouth(1000);
                maidParam.SetSexualCuri(1000);
                maidParam.SetSexualNipple(1000);
                maidParam.SetSexualThroat(1000);

                for (Feature i = Feature.Null + 1; i < EnumHelper.MaxFeature; i++)
                {
                    maidParam.SetFeature(i, true);
                }

                for (Propensity i = Propensity.Null + 1; i < EnumHelper.MaxPropensity; i++)
                {
                    maidParam.SetPropensity(i, true);
                }

                maidParam.SetCare(9999);
                maidParam.SetCharm(9999);
                maidParam.SetElegance(9999);
                maidParam.SetEvaluation(999999L);
                maidParam.SetFrustration(0);
                maidParam.SetHentai(9999);
                maidParam.SetHousi(9999);
                maidParam.SetHp(999);
                maidParam.SetInyoku(9999);
                maidParam.SetLikability(999);
                maidParam.SetLovely(9999);
                maidParam.SetMValue(9999);
                maidParam.SetMaidPoint(999);
                maidParam.SetPlayNumber(9999);
                maidParam.SetMind(9999);
                maidParam.SetReason(9999);
                maidParam.SetReception(9999);
                maidParam.SetPopularRank(99);
                maidParam.SetSales(9999999999L);
                maidParam.SetCurHp(999);
                maidParam.SetCurMind(999);
                maidParam.SetCurReason(999);

                foreach (var noonWork in ScheduleCSVData.NoonWorkData)
                {
                    maidParam.SetNewGetWork(noonWork.Value.id);
                    maidInfo.SetWorkValue(noonWork.Value.id, TABLE_COLUMN_TOTAL_XP, 999U);
                }

                foreach (var dataDic in Yotogi.skill_data_list.SelectMany(s => s))
                {
                    maidParam.SetNewGetSkill(dataDic.Value.id);
                    maidParam.AddSkillExp(dataDic.Value.id, 10000);
                    maidParam.status_.skill_data[dataDic.Value.id].play_count = 1;
                    maidInfo.UpdateSkillData(dataDic.Value.id);
                }

                foreach (var dataDic in Yotogi.skill_data_list.SelectMany(s => s))
                {
                    maidParam.SetNewGetSkill(dataDic.Value.id);
                    maidInfo.UpdateHasSkill(dataDic.Value.id);
                }
            }
        }
        private void LateUpdate()
        {
            if (danceMain == null)
            {
                return;
            }

            // カメラの表示を適当に広げる よくわからんので毎フレームやっとく
            GameMain.Instance.MainCamera.camera.farClipPlane = xmlManager.farClipPlane;

            if (maidSetting == false)
            {
                if (xmlManager.BackGroundPreset != null)
                {
                    String extent = Path.GetExtension(xmlManager.BackGroundPreset);
                    if (extent.Equals(".preset"))
                    {
                        maid = searchStockMaid("plugin", "backGround");
                        if (maid == null)
                        {
                            maid = GameMain.Instance.CharacterMgr.AddStockMaid();
                            MaidParam m_Param = (MaidParam)fieldMaid.GetValue(maid);
                            m_Param.SetName("plugin", "backGround");
                        }
                        SetPreset(maid, xmlManager.BackGroundPreset);
                    }
                    else
                    {
                        string[] nameList = xmlManager.BackGroundPreset.Split(' ');
                        if (nameList.Length != 2)
                        {
                            Debug.LogError("DanceBg.Plugin:[Maid name Invalid] " + nameList.Length + "#" + xmlManager.BackGroundPreset);
                            maidSetting = true;
                            return;
                        }
                        maid = searchStockMaid(nameList[0], nameList[1]);
                        if (maid == null)
                        {
                            Debug.LogError("DanceBg.Plugin:[Maid not found] #" + nameList[0] + "#" + nameList[1]);
                            maidSetting = true;
                            return;
                        }
                    }
                }
                if (maid != null)
                {
                    //表示済みのめいどさんの位置変更
                    int maidIndex;
//                    for(maidIndex = 1; maidIndex < GameMain.Instance.CharacterMgr.GetMaidCount(); maidIndex++){
                    for (maidIndex = 0; maidIndex < GameMain.Instance.CharacterMgr.GetMaidCount(); maidIndex++)
                    {
                        Maid maidx = GameMain.Instance.CharacterMgr.GetMaid(maidIndex);
                        if (maidx == null)
                        {
                            break;
                        }
//                         if(maidIndex == 0){
//                         maidx.SetRot(maid.GetRot() + new Vector3(0.0f,180.0f,0.0f));
//                         }
//                         else{
                        maidx.SetPos(maidx.gameObject.transform.localPosition + xmlManager.BackGroundPos);
//                         maidx.gameObject.transform.localScale = localscale;
//                         }
                    }
                    // 照明移動は時々?動く ここで初期位置設定
                    // ダンスによってはMainLight以外にもLightがあるのでLightを移動
                    lightList       = (Light[])FindObjectsOfType(typeof(Light));
                    lightVectorList = new Vector3[lightList.Length];
                    for (int i = 0; i < lightList.Length; i++)
                    {
                        lightList[i].gameObject.transform.position =
                            new Vector3(lightList[i].gameObject.transform.position.x,
                                        lightList[i].gameObject.transform.position.y,
                                        lightList[i].gameObject.transform.position.z) + xmlManager.BackGroundPos;
                        lightVectorList[i] = new Vector3(lightList[i].gameObject.transform.position.x,
                                                         lightList[i].gameObject.transform.position.y,
                                                         lightList[i].gameObject.transform.position.z);
                        //  Debug.LogError("Dance_khg.Plugin:light.transform.position" + lightList[i].gameObject.transform.position.ToString());
                        //  Debug.LogError("Dance_khg.Plugin:light.transform.eulerAngles" + lightList[i].gameObject.transform.eulerAngles.ToString());
                        //  Debug.LogError("Dance_khg.Plugin:light.range" + lightList[i].type + " " + lightList[i].range);
                        //  if(lightList[i].type == LightType.Point) lightList[i].range += 30.0f;
                        //  lightList[i].range = lightList[i].range * 2.0f;
                    }
                    // カメラはほぼ毎フレーム移動 トランスフォームの取得しておく
                    cameraTransform = GameMain.Instance.MainCamera.transform;
                    // 背景用メイド設定
                    GameMain.Instance.CharacterMgr.SetActiveMaid(maid, maidIndex);
                    maid.SetPos(xmlManager.BackGroundPos + xmlManager.BackGroundPos2);
                    maid.SetRot(xmlManager.BackGroundrotate);
//                    maid.gameObject.transform.localScale = localscale;
                    maid.Visible = true;

                    // 固定ライト追加
//                    GameObject goSubLight;
//                    goSubLight = new GameObject("sub light");
//                    goSubLight.AddComponent<Light>();
//                    goSubLight.transform.SetParent(goSubCam.transform);
//                    goSubLight.transform.position =
//                                            new Vector3(0.0f,
//                                                        1.0f,
//                                                        0.0f) + xmlManager.BackGroundPos;
//                    goSubLight.transform.eulerAngles =
//                                            new Vector3(90.0f,  全然わからん
//                                                        0.0f,
//                                                        0.0f);

//                    goSubLight.GetComponent<Light>().type = LightType.Spot;
//                    goSubLight.GetComponent<Light>().type = LightType.Directional;
//                    goSubLight.GetComponent<Light>().range = 10;
//                    goSubLight.GetComponent<Light>().enabled = true;
//                    goSubLight.GetComponent<Light>().intensity = 1.2f;
//                  goSubLight.GetComponent<Light>().spotAngle = ssParam.fValue[PKeySubLight][PPropSubLightRange];
                }

//                GameObject[] gObjList = (GameObject[])FindObjectsOfType(typeof(GameObject));
//                foreach (GameObject gObj in gObjList){
//                    Debug.LogError("DanceBg.Plugin:" + gObj.tag);
//                }

                maidSetting = true;
            }
            if (cameraTransform != null)
            {
                cameraTransform.position = new Vector3(cameraTransform.position.x,
                                                       cameraTransform.position.y,
                                                       cameraTransform.position.z) + xmlManager.BackGroundPos;
//                cameraTransform.position = new Vector3(cameraTransform.position.x * localscale.x,
//                                                       cameraTransform.position.y * localscale.y,
//                                                       cameraTransform.position.z * localscale.z) + xmlManager.BackGroundPos;
            }
            if (lightList != null)
            {
                for (int i = 0; i < lightList.Length; i++)
                {
                    if (lightList[i].gameObject.transform.position != lightVectorList[i])
                    {
                        lightList[i].gameObject.transform.position =
                            new Vector3(lightList[i].gameObject.transform.position.x,
                                        lightList[i].gameObject.transform.position.y,
                                        lightList[i].gameObject.transform.position.z) + xmlManager.BackGroundPos;
                        lightVectorList[i] = new Vector3(lightList[i].gameObject.transform.position.x,
                                                         lightList[i].gameObject.transform.position.y,
                                                         lightList[i].gameObject.transform.position.z);
                        //    Debug.LogError("Dance_khg.Plugin:light.transform.position" + lightList[i].gameObject.transform.position.ToString());
                        //  Debug.LogError("Dance_khg.Plugin:light.range" + lightList[i].type + " " + lightList[i].range);
                        //  Debug.LogError("Dance_khg.Plugin:light.transform.eulerAngles" + lightList[i].gameObject.transform.eulerAngles.ToString());
                    }
                }
            }

//            if(Input.GetKeyDown(KeyCode.Space)){
//                xmlManager = new XmlManager();
//                Maid maidx = GameMain.Instance.CharacterMgr.GetMaid(0);
//                maidx.SetPos(maidx.gameObject.transform.localPosition + xmlManager.BackGroundPos);
//            }
        }
        private void Update()
        {
            if (Input.GetKeyDown(KeyCode.Escape))
            {
                xmlManager = new XmlManager();
            }
            if (!Enum.IsDefined(typeof(TargetLevel), level))
            {
                return;
            }

            if (maidSetting == true)
            {
                maid0 = GameMain.Instance.CharacterMgr.GetMaid(0);
                // 着替えたりしてずれたら再同期 誰かひとりでもbusyになるとみんなずれるっぽいのでひとりでもbusyになったら再同期
                if (maid0.IsBusy)
                {
                    rSync = true;
                }
                else
                {
                    rSync = false;
                }
                nowBlend = maid0.ActiveFace;
                for (int i = 0; i < MAX_LISTED_MAID; i++)
                {
                    if (xmlManager.listPreset[i] != null && motionSetting[i] == true)
                    {
                        maid = GameMain.Instance.CharacterMgr.GetMaid(i + 1);
                        maid.FoceKuchipakuUpdate(maid.body0.m_Bones.GetComponent <Animation>()[(string)anmHash[level]].time);
                        if (nowBlend != lastBlend)
                        {
                            maid.FaceBlend(maid.ActiveFace = nowBlend);
                        }

                        if (maidSync[i] == false)
                        {
                            field = (typeof(DanceMain)).GetField("m_eMode", BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
                            int m_eMode = (int)field.GetValue(danceMain);
                            if (m_eMode == 3)
                            {
                                maid.body0.m_Bones.GetComponent <Animation>()[(string)anmHash[level]].time = NTime.time;
                                if (maidPaku[i] == false)
                                {
                                    maid.StartKuchipakuPattern(NTime.time, kuchipaku, true);
                                    maidPaku[i] = true;
                                }
                                maidSync[i] = true;
                            }
                        }
                        // 着替えたりしてずれたら再同期 誰かひとりでもbusyになるとみんなずれるっぽいのでひとりでもbusyになったら再同期
                        if (maidSync[i] == true && maid.IsBusy == true)
                        {
                            rSync = true;
                        }
                    }
                }
                if (rSync == true)
                {
                    for (int i = 0; i < MAX_LISTED_MAID; i++)
                    {
                        maidSync[i] = false;
                    }
                }
                lastBlend = nowBlend;
                return;
            }
            for (int i = 0; i < MAX_LISTED_MAID; i++)
            {
                if (xmlManager.listPreset[i] != null)
                {
                    maid = GameMain.Instance.CharacterMgr.GetMaid(i + 1);
                    if (maid == null)
                    {
                        String extent = Path.GetExtension(xmlManager.listPreset[i]);
                        if (extent.Equals(".preset"))
                        {
                            // ここダンスをするたびにmaidさん増えちゃう 適当な名前つけて
                            // 2回目以降は名前で検索したほうがよさげ
                            maid = searchStockMaid("plugin", (i + 1).ToString());
                            if (maid == null)
                            {
                                maid = GameMain.Instance.CharacterMgr.AddStockMaid();
                                MaidParam m_Param = (MaidParam)fieldMaid.GetValue(maid);
                                m_Param.SetName("plugin", (i + 1).ToString());
                            }
                            SetPreset(maid, xmlManager.listPreset[i]);
                        }
                        else
                        {
                            string[] nameList = xmlManager.listPreset[i].Split(' ');
                            maid = searchStockMaid(nameList[0], nameList[1]);
                            if (maid == null)
                            {
                                continue;
                            }
                        }
                        GameMain.Instance.CharacterMgr.SetActiveMaid(maid, i + 1);
                    }
                    maid.SetPos(xmlManager.listPos[i]);
                    maid.body0.VertexMorph_FromProcItem("munel", 1.0f);
                    maid.Visible = true;
                }
            }
            maidSetting = true;
        }