コード例 #1
0
    public void CreateShip(CharacterTypeEnum characterType, long shipId, Action callBack)
    {
        CptUtil.RemoveChild(transform);

        GameLevelBean gameLevelData = handler_Game.GetGameLevelData();
        GameBean      gameData      = handler_Game.GetGameData();

        switch (characterType)
        {
        case CharacterTypeEnum.Player:
            manager.GetShipDataById((shipData) =>
            {
                shipData.ship_damage     = gameData.playerForDamage;
                shipData.characterType   = CharacterTypeEnum.Player;
                shipData.intervalForFire = handler_GameData.GetFireCD();
                StartCoroutine(CoroutineForCreateShip(shipData, callBack));
            }, shipId);
            break;

        case CharacterTypeEnum.Enemy:
            manager.GetShipDataById((shipData) =>
            {
                shipData.intervalForFire    = gameLevelData.enemy_fire_interval;
                shipData.characterType      = CharacterTypeEnum.Enemy;
                shipData.limitForFireNumber = gameLevelData.enemy_fire_limit_number;
                StartCoroutine(CoroutineForCreateShip(shipData, callBack));
            }, shipId);
            break;
        }
    }
コード例 #2
0
    public void OnClickForAddSpeed()
    {
        GameDataHandler gameDataHandler = uiComponent.handler_GameData;
        GameBean        gameData        = uiComponent.handler_Game.GetGameData();
        UserDataBean    userData        = gameDataHandler.GetUserData();
        int             maxLevel        = uiComponent.handler_GameData.GetLevelMaxForSpeed();

        gameDataHandler.GetLevelLevelUpDataForSpeed(gameData.levelForSpeed, out float addSpeed, out long preSpeedGold);
        if (!gameData.HasEnoughGold(preSpeedGold))
        {
            //钱不够
            uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1001));
            return;
        }

        bool isLevelUp = gameData.LevelUpForPlayerSpeed(maxLevel, addSpeed);

        if (!isLevelUp)
        {
            //升级失败
            uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1002));
            return;
        }

        //支付金币
        gameData.PayGold(preSpeedGold);

        uiComponent.handler_Character.SetCharacterSpeed(CharacterTypeEnum.Player, gameData.GetPlayerSpeed() + userData.speed);
        uiComponent.handler_Character.RefreshCharacter(CharacterTypeEnum.Player);
        RefreshUI();
    }
コード例 #3
0
    public void OnClickForAddGoldPrice()
    {
        UserDataBean    userData        = uiComponent.handler_GameData.GetUserData();
        GameDataHandler gameDataHandler = uiComponent.handler_GameData;
        GameBean        gameData        = uiComponent.handler_Game.GetGameData();

        int maxLevel = uiComponent.handler_GameData.GetLevelMaxForGoldPrice();

        gameDataHandler.GetLevelUpDataForGoldPrice(gameData.levelForGoldPrice, out int addPrice, out long prePriceGold);
        if (!gameData.HasEnoughGold(prePriceGold))
        {
            //钱不够
            uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1001));
            return;
        }

        bool isLevelUp = gameData.LevelUpForGoldPrice(maxLevel, addPrice);

        if (!isLevelUp)
        {
            //升级失败
            uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1002));
            return;
        }

        //支付金币
        gameData.PayGold(prePriceGold);

        RefreshUI();
    }
コード例 #4
0
    /// <summary>
    /// 获取游戏场景等级
    /// </summary>
    /// <returns></returns>
    public void GetGameLevelScene(out float levelPro, out int level)
    {
        GameBean gameData = GetGameData();

        levelPro = gameData.levelProgressForScene;
        level    = gameData.levelForScene;
    }
コード例 #5
0
    public override void RefreshUI()
    {
        base.RefreshUI();
        ui_ChildAttributeAdd.RefreshUI();
        GameBean gameData = handler_Game.GetGameData();

        ui_Battle.SetData(gameData.playerGoldNumber, gameData.enemyGoldNumber);
    }
コード例 #6
0
    public void ChangeGameStatus(GameStatusEnum gameStatus)
    {
        GetGameData().gameStatus = gameStatus;
        switch (gameStatus)
        {
        case GameStatusEnum.GamePre:
            //扫描地形
            //AstarPath.active.ScanAsync();
            //初始化数据
            handler_GameData.GetPlayerInitData(out float playerSpeed, out int playerLife);
            GameBean gameData = new GameBean(playerSpeed, playerLife);
            SetGameData(gameData);
            manager_UI.RefreshAllUI();
            //打开UI
            manager_UI.OpenUIAndCloseOther <UIGameStart>(UIEnum.GameStart);
            //创建金币
            GameLevelBean gameLevelData = GetGameLevelData();
            handler_Gold.CreateGold(gameLevelData.gold_pile, gameLevelData.gold_number, gameLevelData.gold_id);
            break;

        case GameStatusEnum.GameIng:
            //开启角色创建
            UserDataBean      userData            = handler_GameData.GetUserData();
            CharacterDataBean playerCharacterData = new CharacterDataBean(CharacterTypeEnum.Player)
            {
                life      = userData.life + GetGameData().playerForLife,
                maxLife   = userData.life + GetGameData().playerForLife,
                moveSpeed = userData.speed + GetGameData().GetPlayerSpeed()
            };
            CharacterDataBean enemyCharacterData = new CharacterDataBean(CharacterTypeEnum.Enemy)
            {
                life      = GetGameLevelData().enemy_life,
                maxLife   = GetGameLevelData().enemy_life,
                moveSpeed = GetGameLevelData().enemy_speed
            };
            StartCoroutine(handler_Character.InitCreateCharacter(playerCharacterData, enemyCharacterData, GetGameLevelData().enemy_number));
            //创建船
            Action enemyShipCallBack = () =>
            {
                //开启敌舰自动攻击
                handler_Ship.OpenShipFireAutoForEnemy();
            };
            handler_Ship.CreateShip(CharacterTypeEnum.Player, 1, null);
            handler_Ship.CreateShip(CharacterTypeEnum.Enemy, GetGameLevelData().enemy_ship_id, enemyShipCallBack);
            //开启经验计算
            StartCoroutine(CoroutineForLevelProgress());
            break;

        case GameStatusEnum.GameEnd:
            //打开UI
            manager_UI.OpenUIAndCloseOther <UIGameEnd>(UIEnum.GameEnd);
            CleanGameData();
            break;
        }
    }
コード例 #7
0
ファイル: Launcher.cs プロジェクト: wobushiren79/motorcycle
    void Start()
    {
        GameBean gameData = new GameBean();

        gameData.SetGameState(GameStateEnum.Init);
        GameHandler.Instance.manager.SetGameData(gameData);
        BuildingHandler.Instance.InitSceneData(1, () =>
        {
            gameData.SetGameState(GameStateEnum.Gaming);
        });
    }
コード例 #8
0
    private void Update()
    {
        GameBean gameData = GameHandler.Instance.manager.GetGameData();

        if (gameData.GetGameState() != GameStateEnum.Gaming)
        {
            return;
        }
        HandleForMove();
        HandleForLR();
    }
コード例 #9
0
    public IEnumerator CoroutineForLevelProgress()
    {
        GameBean gameData = GetGameData();

        while (GetGameData().gameStatus == GameStatusEnum.GameIng)
        {
            yield return(new WaitForSeconds(0.1f));

            float exp = handler_GameData.GetLevelSceneExp(gameData.levelForScene);
            gameData.AddLevelProgressForScene(exp);
        }
    }
コード例 #10
0
    public void SetButtonStatusForAttribute(Button btAttribute, long levelUpMoney)
    {
        GameBean gameData = uiComponent.handler_Game.GetGameData();

        if (gameData.HasEnoughGold(levelUpMoney))
        {
            btAttribute.interactable = true;
        }
        else
        {
            btAttribute.interactable = false;
        }
    }
コード例 #11
0
    /// <summary>
    /// 升级
    /// </summary>
    public void LevelUpScene(int addMoneyRate, float deleyAddGoldTime)
    {
        GameBean gameData = manager.GetGameData();

        if (gameData.levelProgressForScene < 1)
        {
            return;
        }
        int  totalLevel = gameData.levelForSpeed + gameData.levelForGoldPrice + gameData.levelForPirateNumber;
        long addMoney   = handler_GameData.GetLevelSceneMoney(totalLevel);

        gameData.LevelUpForScene();
        StartCoroutine(CoroutineForDelayAddGold(deleyAddGoldTime, addMoneyRate * addMoney));
    }
コード例 #12
0
    public void OnClickForLevelUp()
    {
        GameBean gameData = handler_Game.GetGameData();

        if (gameData.levelProgressForScene < 1)
        {
            return;
        }
        int  totalLevel = gameData.levelForSpeed + gameData.levelForPirateNumber + gameData.levelForGoldPrice;
        long addMoney   = handler_GameData.GetLevelSceneMoney(totalLevel);

        DialogBean           dialogData       = new DialogBean();
        DialogForLevelUpView dialogForLevelUp = manager_Dialog.CreateDialog <DialogForLevelUpView>(DialogEnum.LevelUp, this, dialogData);

        dialogForLevelUp.SetData(addMoney);
    }
コード例 #13
0
    public void RefreshUI()
    {
        GameBean        gameData        = uiComponent.handler_Game.GetGameData();
        GameDataHandler gameDataHandler = uiComponent.handler_GameData;

        gameDataHandler.GetLevelLevelUpDataForSpeed(gameData.levelForSpeed, out float addSpeed, out long preSpeedGold);
        SetTextForAttribute(ui_TvSpeedLevel, ui_TvSpeedMoney, gameData.levelForSpeed, gameDataHandler.GetLevelMaxForSpeed(), preSpeedGold);
        SetButtonStatusForAttribute(ui_BtSpeedAdd, preSpeedGold);

        gameDataHandler.GetLevelLevelUpDataForNumber(gameData.levelForPirateNumber, out int addNumber, out long preNumberGold);
        SetTextForAttribute(ui_TvNumberLevel, ui_TvNumberMoney, gameData.levelForPirateNumber, gameDataHandler.GetLevelMaxForNumber(), preNumberGold);
        SetButtonStatusForAttribute(ui_BtNumberAdd, preNumberGold);

        gameDataHandler.GetLevelUpDataForGoldPrice(gameData.levelForGoldPrice, out int addPrice, out long prePriceGold);
        SetTextForAttribute(ui_TvGoldPriceLevel, ui_TvGoldPriceMoney, gameData.levelForGoldPrice, gameDataHandler.GetLevelMaxForGoldPrice(), prePriceGold);
        SetButtonStatusForAttribute(ui_BtGoldPriceAdd, prePriceGold);
    }
コード例 #14
0
    private void Update()
    {
        GameBean gameData = handler_Game.GetGameData();

        if (gameData != null)
        {
            SetGold(gameData.gold);
        }
        if (handler_Game != null)
        {
            handler_Game.GetScore(out long playerGold, out long enmeyGold);
            SetScore(playerGold, enmeyGold);
            SetGoldProgress(handler_Gold.GetGoldMaxNumber(), handler_Gold.GetGoldNumber());
            handler_Game.GetGameLevelScene(out float gameLevelSceneProgress, out int gameLevelScene);
            ui_LevelUp.SetLevelUpPro(gameLevelScene, gameLevelSceneProgress);
        }
    }
コード例 #15
0
    public void OnClickForAddNumber()
    {
        GameBean        gameData        = uiComponent.handler_Game.GetGameData();
        GameDataHandler gameDataHandler = uiComponent.handler_GameData;
        UserDataBean    userData        = gameDataHandler.GetUserData();

        int maxLevel = uiComponent.handler_GameData.GetLevelMaxForNumber();

        gameDataHandler.GetLevelLevelUpDataForNumber(gameData.levelForPirateNumber, out int addNumber, out long preNumberGold);

        if (!gameData.HasEnoughGold(preNumberGold))
        {
            //钱不够
            uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1001));
            return;
        }
        bool isLevelUp = gameData.LevelUpForPlayerPirateNumber(maxLevel, addNumber);

        if (!isLevelUp)
        {
            //升级失败
            uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1002));
            return;
        }
        //支付金币
        gameData.PayGold(preNumberGold);
        //生成海盗
        for (int i = 0; i < addNumber; i++)
        {
            CharacterDataBean playerCharacterData = new CharacterDataBean(CharacterTypeEnum.Player)
            {
                life      = userData.life + gameData.playerForLife,
                maxLife   = userData.life + gameData.playerForLife,
                moveSpeed = userData.speed + gameData.GetPlayerSpeed()
            };
            uiComponent.handler_Character.CreateCharacter(playerCharacterData);
        }
        RefreshUI();
    }
コード例 #16
0
 public void SetGameData(GameBean gameData)
 {
     this.gameData = gameData;
 }
コード例 #17
0
    public void AddUserGold(long number)
    {
        GameBean gameData = manager.GetGameData();

        gameData.AddGold(number);
    }
コード例 #18
0
 public void SetGameData(GameBean gameData)
 {
     manager.SetGameData(gameData);
 }