예제 #1
0
    public GameSetting()
    {
        mCharaData1         = new CharaData();
        mCharaData1.mFile   = "marie";
        mCharaData1.mName   = "マリー";
        mCharaData1.mAi     = "player";
        mCharaData1.mAiName = "プレイヤー";

        mCharaData2         = new CharaData();
        mCharaData2.mFile   = "rear";
        mCharaData2.mName   = "リア";
        mCharaData2.mAi     = "solid";
        mCharaData2.mAiName = "堅実";

        mCharaData3         = new CharaData();
        mCharaData3.mFile   = "maru";
        mCharaData3.mName   = "マル";
        mCharaData3.mAi     = "solid";
        mCharaData3.mAiName = "堅実";

        mCharaData4         = new CharaData();
        mCharaData4.mFile   = "chiara";
        mCharaData4.mName   = "キアラ";
        mCharaData4.mAi     = "solid";
        mCharaData4.mAiName = "堅実";

        mInitialMoneyRate = 1;
        mFeeRate          = 1;
        mAcqusitionRate   = 2;
        mStageName        = "standard";
    }
예제 #2
0
 public void Add(CharaData _data)
 {
     if(list != null)
     {
         list.Add(_data);
     }
 }
예제 #3
0
        public override void Do()
        {
            base.Do();
            int num1 = 0;

            string[] args1  = this.args;
            int      index1 = num1;
            int      num2   = index1 + 1;
            int      no     = int.Parse(args1[index1]);

            string[] args2  = this.args;
            int      index2 = num2;
            int      num3   = index2 + 1;
            int      index3 = int.Parse(args2[index2]);

            string[]  args3     = this.args;
            int       index4    = num3;
            int       num4      = index4 + 1;
            string    findName  = args3[index4];
            CharaData chara     = this.scenario.commandController.GetChara(no);
            Transform transform = ((IEnumerable <Transform>)((Component)chara.chaCtrl).GetComponentsInChildren <Transform>(true)).FirstOrDefault <Transform>((Func <Transform, bool>)(p => ((Object)p).get_name() == findName));

            if (!Object.op_Inequality((Object)transform, (Object)null))
            {
                return;
            }
            chara.itemDic[index3] = new CharaData.CharaItem(((Component)transform).get_gameObject());
        }
    private void Update()
    {
        if (isGenerated == false)
        {
            CharaData myCharaData = GameStateManager.Instance.MyCharaData;

            CharaData rivalCharaData = null;

            Debug.Log($"PlayMode: {GameStateManager.Instance.PlayMode}");
            if (GameStateManager.Instance.PlayMode == PlayMode.Solo)
            {
                rivalCharaData = GetComponent <CharaDataGenerator>().GenerateCharaData(CharaName.Kakashi);
            }
            else
            {
                GameObject shareDataClone = GameObject.Find("ShareData(Clone)");
                if (shareDataClone == null)
                {
                    return;
                }
                int rivalCharaNumber = shareDataClone.GetComponent <PhotonVariable>().charaNumber;
                rivalCharaData = GetComponent <CharaDataGenerator>().GenerateCharaData((CharaName)rivalCharaNumber);
            }

            var myChara = GameObject.Find("MyChara");
            GenerateBattleChara(myChara, myCharaData, false);
            var rivalChara = GameObject.Find("RivalChara");
            GenerateBattleChara(rivalChara, rivalCharaData, true);
            isGenerated = true;
        }
    }
예제 #5
0
    /**
     *
     * ステージクリア時、NPCドロップがあれば
     * CharaDataを生成して返す。
     *
     * dropNpcStrのフォーマット
     * Rarity:Percentage:Gender (Percentageはfloat型)
     *
     */
    private CharaData ParseDropNpc(string dropNpcStr)
    {
        if (string.IsNullOrEmpty(dropNpcStr))
        {
            return(null);
        }

        string[] dropSplited = dropNpcStr.Split(':');
        int      rarity      = Int32.Parse(dropSplited [0]);
        float    ratio       = float.Parse(dropSplited [1]);
        int      gender      = Int32.Parse(dropSplited [2]);

        int MAX       = 10000;
        int RATIOLINE = (int)((float)MAX * ratio);
        int rand      = UnityEngine.Random.Range(1, MAX);

        if (rand <= RATIOLINE)
        {
            CharaData genedChar = CharacterLevelSystem.GenerateCharacterData(rarity);
            genedChar.gender       = (CharaData.Gender)Enum.ToObject(typeof(CharaData.Gender), gender);
            genedChar.ClothDataStr = ClothingSystem.AutoClothGenerator(genedChar.gender);

            return(genedChar);
        }
        return(null);
    }
예제 #6
0
    public Chara SpawnChar(CharaData.CharClassType classType,int charModelType,int camp,int level,Vector3 pos,Vector3 dir,CharaStatus.Pose pose)
    {
        this.START_METHOD("SpawnChar");
        Chara tempChar = null;
        if(classType==CharaData.CharClassType.CHARACTER)
        {

        }
        else if(classType==CharaData.CharClassType.BUILDING)
        {
            if((CharaData.buildingModel)charModelType==CharaData.buildingModel.BARRACK)
            {
                Barrack chara = new Barrack();//TODO: need change class to resource pool
                chara.SetPos(pos);
                chara.SetDir(dir);
                chara.SetCamp(camp);
                tempChar = chara;
            }
            if (tempChar != null)
                building.Add(tempChar);
            else
                throw new UnityException("no current building type to spawn!!");
        }

        allChara.Add(tempChar);
        this.END_METHOD("SpawnChar");
        return tempChar;
    }
예제 #7
0
    public void DeathEffect(CharaData charData)
    {
        GameObject deadObject = charData.charaObject;

        if (deadObject == null)
        {
            return;
        }

//		Vector3 deadPos = new Vector3 (deadObject.transform.position.x, deadObject.transform.position.y, deadObject.transform.position.z);
        Vector3    deadPos  = this.GetPositionByBattlePos(charData);
        GameObject graveObj = (GameObject)Instantiate(Resources.Load("Prefabs/Effect/Grave") as GameObject);

        graveObj.transform.position = deadPos;

        //sortingLayer調査
        AbstractCharacterObject charObj = deadObject.GetComponent <AbstractCharacterObject>();

        if (charObj != null)
        {
            graveObj.GetComponentInChildren <SpriteRenderer> ().sortingLayerName = charObj.GetSortingLayerName();
        }

        Destroy(deadObject);
    }
예제 #8
0
    static void AddToExcel(ISheet _sheet, CharaData _data, int _rowIdx)
    {
        IRow row = _sheet.CreateRow(_rowIdx);

        int cellIdx = 1;

        // name
        ICell nameCell = row.CreateCell(cellIdx++);
        nameCell.SetCellValue(_data.m_name);

        // hp
        ICell hpCell = row.CreateCell(cellIdx++);
        hpCell.SetCellValue(_data.m_hp);

        // x
        ICell posxCell = row.CreateCell(cellIdx++);
        posxCell.SetCellValue(_data.m_position.x);

        // y
        ICell posyCell = row.CreateCell(cellIdx++);
        posyCell.SetCellValue(_data.m_position.y);

        // z
        ICell poszCell = row.CreateCell(cellIdx++);
        poszCell.SetCellValue(_data.m_position.z);
    }
예제 #9
0
    private Vector3 GetPositionByBattlePos(CharaData charData)
    {
        if (charData.ID == PlayerData.PLAYERID)
        {
            return(new Vector3(-4.0f, 0.0f, 0.0f));
        }

        //プレイヤーの隣
        if (charData.BattlePosition == 0)
        {
            return(new Vector3(-4.7f, -0.4f, -0.2f));
        }
        //その他のWallのポジションの箇所にセット(バトル画面のみ)
        else
        {
            Scene scene = SceneManager.GetActiveScene();
            if (scene.name == "Main")
            {
                Vector3 wallObjPos = WallController.Instance.GetWallObject(charData.BattlePosition).transform.position;
                wallObjPos.y -= 0.4f;
                return(wallObjPos);
            }
        }

        //TODO それ以外の場合をどうするか。。?
        Debug.LogError("GetPositionByBattlePos, scene: " + SceneManager.GetActiveScene().name + ", charID: " + charData.ID + ", BattlePosition: " + charData.BattlePosition);
        return(Vector3.zero);
    }
        public override void Do()
        {
            base.Do();
            int num1 = 0;
            CommandController commandController1 = this.scenario.commandController;

            string[]          args1              = this.args;
            int               index1             = num1;
            int               num2               = index1 + 1;
            int               no1                = int.Parse(args1[index1]);
            CharaData         chara1             = commandController1.GetChara(no1);
            CommandController commandController2 = this.scenario.commandController;

            string[]  args2  = this.args;
            int       index2 = num2;
            int       num3   = index2 + 1;
            int       no2    = int.Parse(args2[index2]);
            CharaData chara2 = commandController2.GetChara(no2);

            string[] args3  = this.args;
            int      index3 = num3;
            int      num4   = index3 + 1;
            string   str    = args3[index3];
            int      result;

            if (!int.TryParse(str, out result))
            {
                result = str.Check(true, Enum.GetNames(typeof(ChaReference.RefObjKey)));
            }
            GameObject referenceInfo = chara2.chaCtrl.GetReferenceInfo((ChaReference.RefObjKey)result);

            chara1.chaCtrl.ChangeLookEyesTarget(-1, referenceInfo.get_transform(), 0.5f, 0.0f, 1f, 2f);
        }
예제 #11
0
        protected void SetPresentInfo(ref int cnt)
        {
            CharaData chara = this.GetChara(ref cnt);

            if (chara == null)
            {
                return;
            }
            Resources.GameInfoTables.AdvPresentItemInfo advPresentItemInfo = this.GetAdvPresentItemInfo(chara.chaCtrl);
            if (advPresentItemInfo == null)
            {
                return;
            }
            int       eventItemId   = advPresentItemInfo.eventItemID;
            string    name          = advPresentItemInfo.itemInfo.Name;
            int       nameHash      = advPresentItemInfo.itemInfo.nameHash;
            PlayState autoPlayState = chara.GetAutoPlayState();

            for (int index = 0; index < autoPlayState.ItemInfoCount; ++index)
            {
                ActionItemInfo eventItemInfo;
                if (Singleton <Resources> .Instance.Map.EventItemList.TryGetValue(eventItemId, out eventItemInfo))
                {
                    chara.data.actor.LoadEventItem(eventItemId, autoPlayState.GetItemInfo(index), eventItemInfo);
                }
            }
            this.scenario.Vars["Item"] = new ValData((object)name);
            this.scenario.Vars[string.Format("{0}.{1}", (object)"Item", (object)"Hash")] = new ValData((object)nameHash);
        }
예제 #12
0
    //出撃可能エリアにユニットを描画
    public void DrawUnit()
    {
        CharaData loaddata = ScriptableObject.Instantiate(Resources.Load(string.Format("BattleChara/{0}", unit.savescobj)) as CharaData);

        unit.gobj = MonoBehaviour.Instantiate(loaddata.gobj, new Vector3(), Quaternion.identity);
        foreach (int[] pos in CharaSetup.unitsetposlist)
        {
            //キャラが居なければ生成
            if (!BattleVal.id2index.ContainsKey(string.Format("{0},{1}", pos[0], pos[1])))
            {
                //描画
                Mapclass.DrawCharacter(unit.gobj, pos[0], pos[1]);
                unit.gobj.layer = 8;

                unit.x = pos[0];
                unit.y = pos[1];
                //unitlistへの登録
                BattleVal.unitlist.Add(unit);
                //id2indexへの登録
                BattleVal.id2index.Add(string.Format("{0},{1}", pos[0], pos[1]), unit);
                ////mapdataにユニット情報を登録
                BattleVal.mapdata[(int)MapdataList.MAPUNIT][unit.y][unit.x] = 99; //ユニット番号はcsvから読み取るときしか使わないため、1から99なら何でもよい

                //足元にチーム識別タイルを
                GameObject unittile;
                unittile = Instantiate(prefabPlayerTile, unit.gobj.transform);
                unittile.transform.localScale = new Vector3(unittile.transform.localScale.x / unittile.transform.lossyScale.x,
                                                            0.01f,
                                                            unittile.transform.localScale.z / unittile.transform.lossyScale.z);
                Mapclass.DrawCharacter(unittile, unit.x, unit.y);

                break;
            }
        }
    }
        protected void SetItem(ref int cnt)
        {
            CharaData chara = this.GetChara(ref cnt);

            if (chara == null)
            {
                return;
            }
            string[] args1 = this.args;
            int      num1;

            cnt = (num1 = cnt) + 1;
            int           index1   = num1;
            int           nameHash = int.Parse(args1[index1]);
            StuffItemInfo itemInfo = Singleton <Resources> .Instance.GameInfo.FindItemInfo(nameHash);

            if (itemInfo == null)
            {
                Debug.LogError((object)string.Format("Item none:{0}", (object)nameHash));
            }
            else
            {
                string[] args2 = this.args;
                int      num2;
                cnt = (num2 = cnt) + 1;
                int index2 = num2;
                int result;
                if (!int.TryParse(args2[index2], out result))
                {
                    Debug.LogError((object)string.Format("Num none:{0}[{1}]:{2}", (object)"args", (object)(cnt - 1), (object)this.args[cnt - 1]));
                    result = 1;
                }
                this.ItemListProc(itemInfo, chara.data.characterInfo.ItemList, new StuffItem(itemInfo.CategoryID, itemInfo.ID, result));
            }
        }
예제 #14
0
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            //mode =! mode;
        }
        if (Input.GetMouseButtonDown(0))
        {
            // Entityセット用のデータ作成
            MyTransform trans = new MyTransform();
            CharaData   chara = new CharaData();

            for (int i = 0; i < clickInstance; ++i)
            {
                // Entityの作成
                var entity = manager.CreateEntity(charaArch);
                //座標セット
                float x = -InitPosXParam + i * 2 * InitPosXParam / clickInstance;
                trans.position = new Vector3(x, 0.5f, -InitPosZParam);
                // キャラクターのデータセット
                chara.time     = Random.Range(0.0f, 3.0f); // 少し揺れ幅を持たせます
                chara.velocity = new Vector3(0.0f, 0.0f, 3.0f);
                // 生成したEntitiyにデータセット
                manager.SetComponentData(entity, trans);
                manager.SetComponentData(entity, chara);
            }
        }
        // デバッグ情報更新
        DebugUI.SetCharaNum(charaSystem.CharaNum);
        charaSystem.Update();
    }
예제 #15
0
 public void Populate(CharaData data)
 {
     if (data == null)
     {
         sprite.Populate((string)null);
         recruitName.text = "More information";
     }
     else
     {
         sprite.Populate(data.appearance);
         if (data.species == null || data.species.Length == 0)
         {
             recruitName.text = data.race.Name().ToUpper();
             while (recruitName.text.Length < 10)
             {
                 recruitName.text += " ";
             }
             recruitName.text += data.gender.Label();
         }
         else
         {
             recruitName.text = data.species;
         }
     }
 }
예제 #16
0
    public void InitCharacterList()
    {
        ResetContent();

        //add Player
        GameObject instantiatedPrefab = (GameObject)Instantiate(charUIPrefab);

        instantiatedPrefab.GetComponent <CharacterUI> ().InitCharaUI <NpcObject>(PlayerData.playerCharData);
        instantiatedPrefab.transform.SetParent(content.transform);
        instantiatedPrefab.GetComponent <RectTransform>().localScale = Vector3.one;
        Vector3 tmpPos = instantiatedPrefab.GetComponent <RectTransform>().localPosition;

        tmpPos.z = -10;
        instantiatedPrefab.GetComponent <RectTransform>().localPosition = tmpPos;

        //add NPCs
        for (int i = 0; i < PlayerData.playerNpcDictionary.Count; i++)
        {
            string    key      = PlayerData.playerNpcDictionary.Keys.ToArray() [i];
            CharaData charData = PlayerData.playerNpcDictionary [key];

            instantiatedPrefab = (GameObject)Instantiate(charUIPrefab);
            instantiatedPrefab.GetComponent <CharacterUI> ().InitCharaUI <NpcObject>(charData);
            instantiatedPrefab.transform.SetParent(content.transform);
            instantiatedPrefab.GetComponent <RectTransform>().localScale = Vector3.one;
            tmpPos   = instantiatedPrefab.GetComponent <RectTransform>().localPosition;
            tmpPos.z = -10;
            instantiatedPrefab.GetComponent <RectTransform>().localPosition = tmpPos;
        }
    }
예제 #17
0
 public static void CharaData_InitializePost(CharaData __instance)
 {
     // Only run reload if the character was newly created
     if (Traverse.Create(__instance).Property("isADVCreateChara").GetValue <bool>())
     {
         ReloadChara(__instance.chaCtrl);
     }
 }
예제 #18
0
 public static bool IsNullOrNpc(this CharaData charaData)
 {
     if (charaData == null || charaData.chaCtrl == null)
     {
         return(true);
     }
     return(charaData.chaCtrl.GetHeroine().IsNullOrNpc());
 }
 public static void CharaData_InitializePost(CharaData __instance)
 {
     // Only run reload if the character was newly created
     if (__instance.isADVCreateChara)
     {
         ReloadChara(__instance.chaCtrl);
     }
 }
예제 #20
0
        public override void Do()
        {
            base.Do();
            int num1 = 0;

            string[] args1  = this.args;
            int      index1 = num1;
            int      num2   = index1 + 1;
            int      no     = int.Parse(args1[index1]);

            string[]   args2      = this.args;
            int        index2     = num2;
            int        num3       = index2 + 1;
            int        targetType = int.Parse(args2[index2]);
            CharaData  chara      = this.scenario.commandController.GetChara(no);
            GameObject obj        = (GameObject)null;

            string[]        args3  = this.args;
            int             index3 = num3;
            int             num4   = index3 + 1;
            Action <string> act1   = (Action <string>)(s => obj = GameObject.Find(s));

            args3.SafeProc(index3, act1);
            Transform trfTarg = !Object.op_Equality((Object)obj, (Object)null) ? obj.get_transform() : (Transform)null;
            float     rate    = 0.5f;

            string[]        args4  = this.args;
            int             index4 = num4;
            int             num5   = index4 + 1;
            Action <string> act2   = (Action <string>)(s => rate = float.Parse(s));

            args4.SafeProc(index4, act2);
            float rotDeg = 0.0f;

            string[]        args5  = this.args;
            int             index5 = num5;
            int             num6   = index5 + 1;
            Action <string> act3   = (Action <string>)(s => rotDeg = float.Parse(s));

            args5.SafeProc(index5, act3);
            float range = 1f;

            string[]        args6  = this.args;
            int             index6 = num6;
            int             num7   = index6 + 1;
            Action <string> act4   = (Action <string>)(s => range = float.Parse(s));

            args6.SafeProc(index6, act4);
            float dis = 2f;

            string[]        args7  = this.args;
            int             index7 = num7;
            int             num8   = index7 + 1;
            Action <string> act5   = (Action <string>)(s => dis = float.Parse(s));

            args7.SafeProc(index7, act5);
            chara.chaCtrl.ChangeLookEyesTarget(targetType, trfTarg, rate, rotDeg, range, dis);
        }
예제 #21
0
        public override void Do()
        {
            base.Do();
            CharaData chara = this.scenario.commandController.GetChara(int.Parse(this.args[0]));

            Singleton <Manager.Voice> .Instance.Stop(chara.voiceNo, chara.voiceTrans);

            this.scenario.loopVoiceList.RemoveAll((Predicate <TextScenario.LoopVoicePack>)(item => item.voiceNo == chara.voiceNo));
        }
예제 #22
0
    void OnTriggerEnter(Collider other)
    {
        //Injured!
        GameManager.Instance.PauseGame = true;

        CharaData injuredChar = null;
        //choose NPC to injure.
        List <CharaData> npcList = PlayerData.GetBattleNpcList();

        if (npcList.Count > 0)
        {
            injuredChar = Utils.RandomElementAt <CharaData> (npcList);
        }
        //if there's no npc, injure player.
        else
        {
            injuredChar = GameManager.Instance.PlayerObject.charaData;
        }
        injuredChar.IsDead = true;

        //一旦ポーズ
        GameManager.Instance.PauseGame = true;

        //誰がやられたかポップアップで知らせる。
        UiController.Instance.OpenDialogPanel(injuredChar.Name + " has Injuered!", () => {
            GameManager.Instance.PauseGame = false;
            if (injuredChar.charaObject != null)
            {
                GameManager.Instance.DeathEffect(injuredChar);
            }

            //全員おっちんだらホームへ。
            if (IsAllCharaDead())
            {
                //TODO 遷移後も他の敵に当たってしまうため敵は全消し。
                GameManager.Instance.DeleteAllEnemies();
                Destroy(other.gameObject);

                TransitionManager.Instance.FadeTo("HomeScene");
            }
            //何人か生存
            else
            {
                //現存する敵を右に少し追いやる(「間」が欲しい)
                foreach (EnemyObject enemyObj in GameManager.Instance.crntEnemyDictionary.Values)
                {
                    if (enemyObj == null)
                    {
                        continue;
                    }
                    Vector3 reposVec = enemyObj.transform.localPosition;
                    reposVec.x      += 5.0f;
                    enemyObj.transform.localPosition = reposVec;
                }
            }
        });
    }
예제 #23
0
 public Chara()
 {
     this.START_METHOD("chara");
     data = (CharaData)MemoryManager.Instance.CreateNativeStruct("CharaData");
     id++;
     mId     = id;
     bInited = false;
     this.END_METHOD("Chara");
 }
예제 #24
0
        public override void Do()
        {
            base.Do();
            int num1 = 0;

            string[]   args1   = this.args;
            int        index1  = num1;
            int        num2    = index1 + 1;
            CharaData  chara   = this.scenario.commandController.GetChara(int.Parse(args1[index1]));
            ChaControl chaCtrl = chara.chaCtrl;

            string[] args2  = this.args;
            int      index2 = num2;
            int      num3   = index2 + 1;
            int      num4   = args2[index2].Check(true, Enum.GetNames(typeof(CharaVisible.Target)));

            string[] args3  = this.args;
            int      index3 = num3;
            int      num5   = index3 + 1;
            bool     flag   = bool.Parse(args3[index3]);

            string[]        args4  = this.args;
            int             index4 = num5;
            int             num6   = index4 + 1;
            Action <string> act    = (Action <string>)(findName =>
            {
                Transform characterStandNull = this.scenario.commandController.characterStandNulls[findName];
                chara.transform.SetPositionAndRotation(characterStandNull.get_position(), characterStandNull.get_rotation());
            });

            args4.SafeProc(index4, act);
            ChaFileStatus fileStatus = chaCtrl.fileStatus;

            switch (num4)
            {
            case 0:
                chaCtrl.visibleAll = flag;
                break;

            case 1:
                fileStatus.visibleHeadAlways = flag;
                break;

            case 2:
                fileStatus.visibleBodyAlways = flag;
                break;

            case 3:
                fileStatus.visibleSonAlways = flag;
                break;

            case 4:
                fileStatus.visibleGomu = flag;
                break;
            }
        }
예제 #25
0
 public EquipmentInventory(Unit unit, CharaData data) : this(unit) {
     for (int i = 0; i < Capacity && i < data.equipped.Length; i += 1)
     {
         var itemData = data.equipped[i];
         if (itemData != null)
         {
             SetSlot(i, new CombatItem(itemData), firstEquip: true);
         }
     }
 }
예제 #26
0
 public static void DisplayCharData(CharaData charaData)
 {
     Debug.LogError(
         "ID: " + charaData.ID + "\n" +
         "Rarity: " + charaData.Rarity + "\n" +
         "Level: " + charaData.Level + "\n" +
         "CrntHP/BaseHP: " + charaData.hpCrnt + "/" + charaData.HpBase + "\n" +
         "MinAtk/MaxAtk(CrntAtk): " + charaData.MinAtk + "/" + charaData.MaxAtk + "(" + charaData.CrntAtk() + ")" + "\n"
         );
 }
예제 #27
0
    //=========================== BattlePosition系ファンクション ===========================//

    public static string GetBattlePosNpcId(int pos)
    {
        CharaData charaData = playerNpcDictionary.Values.FirstOrDefault(tmpCharData => tmpCharData.BattlePosition == pos);

        if (charaData == null)
        {
            return("");
        }
        return(charaData.ID);
    }
예제 #28
0
    // CSVデータを文字列型2次元配列に変換する
    // ファイルパス,変換される配列の値(参照渡し)
    public Dictionary <string, CharaData> readCSVData(string charaName)
    {
        TextAsset csv;
        string    stagePath = "CharaData/" + charaName + "_SkillPerformance";

        csv = Resources.Load(stagePath) as TextAsset;

        StringReader reader    = new StringReader(csv.text);
        string       strStream = reader.ReadToEnd();

        // StringSplitOptionを設定(要はカンマとカンマに何もなかったら格納しないことにする)
        System.StringSplitOptions option = StringSplitOptions.RemoveEmptyEntries;

        // 行に分ける
        string[] lines = strStream.Split(new char[] { '\r', '\n' }, option);

        // カンマ分けの準備(区分けする文字を設定する)
        char[] spliter = new char[1] {
            ','
        };

        // 行数設定
        int h = lines.Length;
        // 列数設定
        int w = lines[0].Split(spliter, option).Length;

        // 返り値の2次元配列の要素数を設定
        Dictionary <string, CharaData> cdata = new Dictionary <string, CharaData>();

        // 行データを切り分けて,構造体配列へ変換する
        for (int i = 1; i < h; i++)
        {
            string[] splitedData = lines[i].Split(spliter, option);

            CharaData cd = new CharaData();
            cd.skill       = splitedData[0];
            cd.damage      = int.Parse(splitedData[1]);
            cd.attri       = splitedData[2];
            cd.startCorrec = float.Parse(splitedData[3]);
            cd.conboCorrec = float.Parse(splitedData[4]);
            cd.attackLevel = int.Parse(splitedData[5]);
            cd.startUp     = int.Parse(splitedData[6]);
            cd.active      = int.Parse(splitedData[7]);
            cd.recovery    = int.Parse(splitedData[8]);
            cd.blockStun   = int.Parse(splitedData[10]);
            cd.hitStun     = int.Parse(splitedData[11]);
            cd.guardDamage = int.Parse(splitedData[12]);

            cdata.Add(cd.skill, cd);

            skillName.Add(cd.skill);
        }

        return(cdata);
    }
예제 #29
0
 private static void ClassroomPreviewUpdateHook(Passport __instance, CharaData charaData)
 {
     try
     {
         SetHeart(__instance, charaData);
     }
     catch (Exception e)
     {
         UnityEngine.Debug.LogException(e);
     }
 }
예제 #30
0
    static CharaData AddToAsset(CharaDataSet _dataSet, Transform _chara)
    {
        CharaData data = new CharaData();

        data.m_name = _chara.name;
        data.m_hp = Random.Range(0, 100);
        data.m_position = new Vector3(_chara.position.x, _chara.position.y, _chara.position.z);

        _dataSet.list.Add(data);

        return data;
    }
		public ListItemData
		(
			CharaData	charaData		,
			string		message			,
			string		imageSpriteName
		)
		{
			m_charaData			= charaData			;
			m_message			= message			;
			m_imageSpriteName	= imageSpriteName	;
			m_isMessage			= !string.IsNullOrEmpty( message );
		}
예제 #32
0
        public override void Do()
        {
            base.Do();
            TextScenario.CurrentCharaData currentCharaData = this.scenario.currentCharaData;
            currentCharaData.CreateVoiceList();
            List <Voice.Data> dataList = new List <Voice.Data>();

            if (this.args.Length > 1)
            {
                int cnt = 0;
                while (!this.args.IsNullOrEmpty(cnt))
                {
                    Voice.Data data  = new Voice.Data(this.args, ref cnt);
                    CharaData  chara = this.scenario.commandController.GetChara(data.no);
                    if (chara != null)
                    {
                        data.transform = chara.voiceTrans;
                        data.chaCtrl   = chara.chaCtrl;
                        if (!data.usePersonality)
                        {
                            data.personality = chara.voiceNo;
                        }
                        if (!data.usePitch)
                        {
                            data.pitch = chara.voicePitch;
                        }
                    }
                    data.is2D           = this.scenario.info.audio.is2D;
                    data.isNotMoveMouth = this.scenario.info.audio.isNotMoveMouth;
                    if (this.scenario.info.audio.eco.use)
                    {
                        data.eco = this.scenario.info.audio.eco.DeepCopy <ADV.Info.Audio.Eco>();
                    }
                    dataList.Add(data);
                }
            }
            currentCharaData.voiceList.Add((TextScenario.IVoice[])dataList.ToArray());
            foreach (Voice.Data data in dataList)
            {
                if (data.bundle.IsNullOrEmpty())
                {
                    string str;
                    if (this.scenario.currentCharaData.bundleVoices.TryGetValue(data.personality, out str))
                    {
                        data.bundle = str;
                    }
                }
                else
                {
                    this.scenario.currentCharaData.bundleVoices[data.personality] = data.bundle;
                }
            }
        }
예제 #33
0
    public T InitCharObject <T>(CharaData charData) where T : AbstractCharacterObject
    {
        GameObject charObject = (GameObject)Instantiate(Resources.Load("Prefabs/Characters/" + charData.BodyPrefab));

        charObject.AddComponent <T> ();

        charObject.GetComponent <T> ().InitChar(charData);
        charObject.GetComponent <T> ().InitCharGunObject(charData.GunID);
        charObject.GetComponent <T> ().InitCharSwordObject(charData.SwordID);

        return(charObject.GetComponent <T>());
    }
    private void GenerateBattleChara(GameObject chara, CharaData charaData, bool isRivalChara)
    {
        string charaName   = Enum.GetName(typeof(CharaName), charaData.CharaName);
        var    charaPrefab = Resources.Load <GameObject>($"Chara/{charaName}");
        var    go          = Instantiate(charaPrefab, chara.transform.position, Quaternion.identity);
        var    image       = go.transform.GetChild(0);

        if (isRivalChara)
        {
            image.GetComponent <SpriteRenderer>().flipX = false;
        }
        go.transform.parent = chara.transform;
        image.GetComponent <SpriteRenderer>().sortingOrder = 1;
    }
예제 #35
0
    private static void CreateOrUpdateObject(CharaData _data)
    {
        if(_data == null){ return; }

        GameObject objRoot = GameObject.Find("ObjRoot");
        if(objRoot == null){ return; }

        GameObject objChara = GameObject.Find(_data.m_name);
        if(objChara == null)
        {
            //objChara = new GameObject(_data.m_name);
            objChara = GameObject.CreatePrimitive(PrimitiveType.Cube);
            objChara.name = _data.m_name;
        }
        objChara.transform.parent = objRoot.transform;
        objChara.transform.position = new Vector3(_data.m_position.x, _data.m_position.y, _data.m_position.z);
    }
예제 #36
0
    static void OnPostprocessAllAssets(
			string[] importedAssets, 
			string[] deletedAssets, 
			string[] movedAssets, 
			string[] movedFromAssetPaths)
    {
        foreach (string file in importedAssets)
        {
            if (file.EndsWith(".xls"))
            {
                Debug.Log("FilePath:"+file);

                string asset_path = "Assets/Data/" + Path.GetFileNameWithoutExtension(file) + ".asset";
                Debug.Log("AssetPath:"+asset_path);

                using(FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                {
                    // Load or Create Asset
                    CharaDataSet charaDataSet = AssetDatabase.LoadAssetAtPath(asset_path, typeof(CharaDataSet)) as CharaDataSet;
                    if(charaDataSet == null)
                    {
                        charaDataSet = ScriptableObject.CreateInstance<CharaDataSet>();
                        AssetDatabase.CreateAsset(charaDataSet, asset_path);
                    }
                    charaDataSet.Clear();

                    // Open Excel
                    IWorkbook book = new HSSFWorkbook(fs);
                    int sheetNum = book.NumberOfSheets;
                    for(int i=0; i<sheetNum; ++i)
                    {
                        ISheet sheet = book.GetSheetAt(i);
                        Debug.Log("Sheet:" + sheet.SheetName);

                        int firstRow = sheet.FirstRowNum;
                        int lastRow = sheet.LastRowNum;

                        for(int rowIdx=firstRow+1; rowIdx<=lastRow; ++rowIdx)
                        {
                            IRow row = sheet.GetRow(rowIdx);
                            if(row == null){ continue; }

                            int cellIdx = row.FirstCellNum;

                            ICell nameCell 	= row.GetCell(cellIdx++);
                            ICell hpCell 	= row.GetCell(cellIdx++);
                            ICell posxCell	= row.GetCell(cellIdx++);
                            ICell posyCell	= row.GetCell(cellIdx++);
                            ICell poszCell	= row.GetCell(cellIdx++);

                            CharaData charaData = new CharaData();
                            charaData.m_name = nameCell.StringCellValue;
                            charaData.m_hp	= (int)hpCell.NumericCellValue;
                            charaData.m_position = new Vector3((float)posxCell.NumericCellValue,
                                                                (float)posyCell.NumericCellValue,
                                                                (float)poszCell.NumericCellValue);

                            // Add Data
                            Debug.Log("Add:"+charaData.m_name+","+charaData.m_hp);
                            charaDataSet.Add(charaData);

                            CreateOrUpdateObject(charaData);
                        }
                    }

                    // Apply Data
                    ScriptableObject obj = AssetDatabase.LoadAssetAtPath(asset_path, typeof(ScriptableObject)) as ScriptableObject;
                    EditorUtility.SetDirty(obj);
                }
            }

            if (file.EndsWith(".xlsx"))
            {
                Debug.Log("FilePath:"+file);
                Debug.LogWarning(".xlsx file is not spported now.");
            }

        }
    }