예제 #1
0
    public void updateData()
    {
        GameBattleStage stage = GameBattleManager.instance.ActiveBattleStage;

        title.text       = stage.SDES.Title;
        win.text         = stage.SDES.Win;
        lose.text        = stage.SDES.Lose;
        proficiency.text = stage.SDES.Proficiency;

        int    enemyCount    = GameBattleUnitManager.instance.getEnemyCount();
        string enemyCountStr = enemyCount.ToString();

        if (enemyCount < 10)
        {
            enemyCountStr = enemyCountStr.Insert(0, "0");
        }

        int    userCount    = GameBattleUnitManager.instance.getUserCount();
        string userCountStr = userCount.ToString();

        if (userCount < 10)
        {
            userCountStr = userCountStr.Insert(0, "0");
        }

        int    npcCount    = GameBattleUnitManager.instance.getNpcCount();
        string npcCountStr = npcCount.ToString();

        if (npcCount < 10)
        {
            npcCountStr = npcCountStr.Insert(0, "0");
        }

        int    turnCount    = GameBattleTurn.instance.Turn;
        string turnCountStr = turnCount.ToString();

        if (turnCount < 10)
        {
            turnCountStr = turnCountStr.Insert(0, "00");
        }
        else if (turnCount < 100)
        {
            turnCountStr = turnCountStr.Insert(0, "0");
        }


        enemy.text = GameDefine.getBigInt(enemyCountStr);
        user.text  = GameDefine.getBigInt(userCountStr);
        npc.text   = GameDefine.getBigInt(npcCountStr);
        turn.text  = GameDefine.getBigInt(turnCountStr);
    }
예제 #2
0
    public void clear()
    {
        clearAnimations();
        clearTreasures();
        clearStage();

        activeDTL         = null;
        activeBattleStage = null;
        activeBattleStart = null;

        layerHeight = 0;

        lastEffectID = GameDefine.INVALID_ID;
        onEventOver  = null;
    }
예제 #3
0
    public void setData(GameSaveDataInfo info)
    {
        if (info.Stage == 0)
        {
            image.gameObject.SetActive(false);
            text.text         = "";
            lvText.text       = "";
            Proficiency0.text = "";
            Proficiency1.text = "";
            Turn0.text        = "";
            Turn1.text        = "";
            time.text         = "";
            return;
        }

        selection = false;

        image.gameObject.SetActive(true);

        GameBattleStage stage = GameBattleData.instance.getStage(info.Stage);

        text.text   = stage.SDES.Title;
        lvText.text = GameDefine.getBigInt(info.LV.ToString());

        Proficiency0.text = GameStringData.instance.getString(GameStringType.SL0);
        Proficiency1.text = GameDefine.getBigInt(info.Proficiency.ToString()) + " ";

        if (info.Proficiency < info.Stage - info.Stage / 5)
        {
            Proficiency1.text += GameStringData.instance.getString(GameStringType.SL2);
        }
        else
        {
            Proficiency1.text += GameStringData.instance.getString(GameStringType.SL3);
        }

        Turn0.text = GameStringData.instance.getString(GameStringType.SL4);
        Turn1.text = GameDefine.getBigInt(info.TurnCount.ToString());

        DateTime dt = DateTime.Parse("1970-01-01 00:00:00").AddSeconds(info.TimeData);

        time.text = dt.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss") + " ";

        dt         = DateTime.Parse("1970-01-01 00:00:00").AddSeconds(info.Time);
        time.text += GameStringData.instance.getString(GameStringType.Time0) + string.Format("{0:T}", dt);
    }
예제 #4
0
    public void saveText()
    {
        string strHelp = "";

        for (int i = 0; i < data.Length; ++i)
        {
            GameBattleStage stage = data[i];

            strHelp += stage.SDES.Title + "\r\n";
            strHelp += "胜利条件:" + stage.SDES.Win + "\r\n";
            strHelp += "失败条件:" + stage.SDES.Lose + "\r\n";
            strHelp += "熟练度:\r\n";
            strHelp += "过关要点:\r\n";
            strHelp += "城镇场景:\r\n\r\n";
        }

        File.WriteAllText(Application.dataPath + "/Objects/Help/Help40.txt", strHelp, Encoding.UTF8);
    }
예제 #5
0
    public void active()
    {
        activeBattleStage = GameBattleData.instance.getStage(GameUserData.instance.Stage);
        activeBattleStart = GameBattleData.instance.getStartData(GameUserData.instance.Stage);

        activeDTL = activeBattleStage.DTL;

        GameCameraManager.instance.MapWidth  = activeDTL.Width * GameDefine.TEXTURE_WIDTH;
        GameCameraManager.instance.MapHeight = activeDTL.Height * GameDefine.TEXTURE_HEIGHT;

        byte[] block = new byte[activeDTL.Width * activeDTL.Height];
        for (int i = 0; i < activeDTL.Width * activeDTL.Height; i++)
        {
            block[i] = activeDTL.Points[i].Move;
        }

        GameBattlePathFinder.instance.initMap(activeDTL.Width,
                                              activeDTL.Height, block);
    }
예제 #6
0
    public void showUnits(int e)
    {
        GameBattleStage stage = GameBattleManager.instance.ActiveBattleStage;

        for (int i = 0; i < stage.Man.Length; i++)
        {
            GameBattleMan man = stage.Man[i];

            if (man.EventParm1 == e)
            {
                GameBattleUnit unit = GameBattleUnitManager.instance.getUnit(i);

                GameUnitMove unitMove = GameUnitMoveTypeData.instance.getData(unit.MoveType);

                GameBattleUnit unit1 = GameBattleUnitManager.instance.getUnit(unit.PosX, unit.PosY);

                if (unit != unit1 &&
                    unit1 != null)
                {
                    GameBattlePathFinder.instance.findNearPos(unit.PosX, unit.PosY, unitMove.block);

                    unit.setPos(GameBattlePathFinder.instance.nearPosX,
                                GameBattlePathFinder.instance.nearPosY);
                }

//                 if ( GameBattlePathFinder.instance.isBlockPos( unit.PosX , unit.PosY , unitMove.block , unit ) )
//                 {
//                     GameBattlePathFinder.instance.findNearPos( unit.PosX , unit.PosY , unitMove.block );
//
//                     unit.setPos( GameBattlePathFinder.instance.nearPosX ,
//                         GameBattlePathFinder.instance.nearPosY );
//                 }

                unit.IsShow = true;

                unit.updateAlive();
                unit.playAnimationBattle(GameAnimationType.Stand,
                                         GameAnimationDirection.South, null);
                unit.updateInteam();
            }
        }
    }
예제 #7
0
    public void load(int stage)
    {
        clear();

        data[stage] = new GameBattleStage();

        loadLayer(stage);
        loadEMSG(stage);
        loadSDESData(stage);
        loadJudgeData(stage);
        loadTEVT(stage);
        loadMEVT(stage);
        loadMan(stage);
        loadXY(stage);
        loadDTL(stage);
        loadEvent(stage);


        Debug.Log("GameBattleData loaded. " + stage);
    }
예제 #8
0
    public void checkEvent(GameBattleTurnEventType type, OnEventOver over)
    {
        GameBattleStage stage = GameBattleManager.instance.ActiveBattleStage;

        for (int i = 0; i < stage.TEVT.Length; i++)
        {
            if ((stage.TEVT[i].EventTurn == turn || stage.TEVT[i].EventTurn == GameDefine.INVALID_ID) &&
                stage.TEVT[i].EventType == type)
            {
                GameBattleEventManager.instance.showEvent(stage.TEVT[i].EventID, 0, over);
                return;
            }

//             if ( stage.TEVT[ i ].EventTurn < 0 &&
//                 GameBattleEventManager.instance.showedEvent( stage.TEVT[ i ].EventID - stage.TEVT[ i ].EventTurn ) )
//             {
//                 GameBattleEventManager.instance.showEvent( stage.TEVT[ i ].EventID , 0 , over );
//                 return;
//             }
        }

        over();
    }
예제 #9
0
    public void initUnits()
    {
        GameBattleStage stage = GameBattleManager.instance.ActiveBattleStage;


        units = new GameBattleUnit[stage.Man.Length];

        for (int i = 0; i < stage.Man.Length; i++)
        {
            GameUnit unit = GameUnitData.instance.getData(stage.Man[i].UnitBase.UnitID);

            string path = "Prefab/Sprite/man" + GameDefine.getString3(unit.Sprite) + "/";
            path += (GameDefine.getString3(unit.Sprite) + "man");

            GameObject    obj = Instantiate <GameObject>(Resources.Load <GameObject>(path));
            GameAnimation ani = obj.GetComponent <GameAnimation>();
            obj.name = "man" + GameDefine.getString3(unit.Sprite) + " " + i + " " + stage.Man[i].UnitBase.UnitID;

            Transform trans = obj.transform;
            trans.SetParent(unitTransform);
            trans.localScale = new Vector3(1.0f, 1.0f, 1.0f);

            GameBattleMovement movement   = obj.AddComponent <GameBattleMovement>();
            GameBattleUnit     battleUnit = obj.AddComponent <GameBattleUnit>();

            battleUnit.init(unit, stage.Man[i].clone());

            if (battleUnit.UnitID < GameDefine.MAX_USER)
            {
                battleUnit.setUnitBase(GameUserData.instance.getUnitBase(battleUnit.UnitID));
            }

            battleUnit.updateUnitData();
            battleUnit.initHPMP();
            battleUnit.clearMove();

            if (battleUnit.IsUser)
            {
                addUser(battleUnit);
            }
            else if (battleUnit.IsEnemy)
            {
                addEnemy(battleUnit);
            }
            else if (battleUnit.IsNpc)
            {
                addNpc(battleUnit);
            }

            units[i] = battleUnit;

            if (stage.XY.Length <= i)
            {
            }
            else
            {
                GameBattleXY xy = stage.XY[i];
                movement.setPos(xy.X, xy.Y);
            }
        }
    }
예제 #10
0
    public void showUnits(int parm, int check)
    {
        bool b = false;

        GameBattleMan[] Man   = GameBattleManager.instance.ActiveBattleStage.Man;
        GameBattleStage stage = GameBattleManager.instance.ActiveBattleStage;

        for (int i = 0; i < Man.Length; i++)
        {
            GameBattleMan man = Man[i];

            if (man.EventParm1 == parm)
            {
                GameBattleUnit unit = GameBattleUnitManager.instance.getUnit(i);

                //                 if ( unit.IsKilled )
                //                 {
                //                     unit.initHPMP();
                //                     GameBattleXY xy = stage.XY[ i ];
                //                     unit.setPos( xy.X , xy.Y );
                //                 }

                if (unit.IsAlive)
                {
                    unit.setPos(stage.XY[unit.BattleManID].X, stage.XY[unit.BattleManID].Y);
                }

                GameUnitMove unitMove = GameUnitMoveTypeData.instance.getData(unit.MoveType);

                GameBattleUnit unit1 = GameBattleUnitManager.instance.getUnit(unit.PosX, unit.PosY);

                if (check == 1 &&
                    unit != unit1 &&
                    unit1 != null)
                {
                    GameBattlePathFinder.instance.findNearPos(unit.PosX, unit.PosY, unitMove.block);

                    unit.setPos(GameBattlePathFinder.instance.nearPosX,
                                GameBattlePathFinder.instance.nearPosY);
                }

                if (check == 1 &&
                    GameBattlePathFinder.instance.isBlockPos(unit.PosX, unit.PosY, unitMove.block, unit))
                {
                    GameBattlePathFinder.instance.findNearPos(unit.PosX, unit.PosY, unitMove.block);

                    unit.setPos(GameBattlePathFinder.instance.nearPosX,
                                GameBattlePathFinder.instance.nearPosY);
                }

                unit.IsShow = true;
                //                            unit.IsActed = true;

                if (unit.IsKilled)
                {
                    unit.IsKilled = false;
                    unit.setAlpha(1.0f);
                    unit.gameObject.SetActive(true);
                }


                unit.updateAlive();
                unit.playAnimationBattle(GameAnimationType.Stand,
                                         GameAnimationDirection.South, null);
                unit.updateInteam();

//                 if ( !b && GameBattleTurn.instance.Turn > 1 )
//                 {
//                     if ( GameUserData.instance.Stage == 12 && parm == 4 )
//                     {
//                         // stage 12 bug
//                         continue;
//                     }
//
//                     b = true;
//
//                     GameBattleCursor.instance.show();
//                     GameBattleCursor.instance.moveTo( unit.PosX , unit.PosY ,
//                                     GameBattleCursor.SpeedX , GameBattleCursor.SpeedY ,
//                                      onShowUnitOver );
//                 }
            }
        }

        GameBattleUnitManager.instance.resetEnemyAI();

        if (!b)
        {
            onShowUnitOver();
        }
    }
예제 #11
0
    public GameBattleXY getUnitXY(int i)
    {
        GameBattleStage stage = GameBattleManager.instance.ActiveBattleStage;

        return(stage.XY[i]);
    }