예제 #1
0
        public override void DoCommand()
        {
            base.DoCommand();

            //Debug.Log("放置英雄在第: " + BLTimelineController.Instance().current_logic_frame + " 帧.");

            // 暂时用team id 代替player id,在房间内是不重复的
            BLPlayerData player_data = BLPlayerDataManager.Instance().GetPlayerData(player_id);

            // 检查是否为可放置的状态
            if (player_data.IsCanPutHero(hero_index))
            {
                BLPlayerHeroData hero_data    = player_data.GetHeroData(hero_index);
                BL.BLIntVector3  born_point   = BattleField.battle_field.born_point[player_id];
                int             unit_id       = BL.BLUnitManager.Instance().GetHeroUnitID(player_id, hero_index);
                string          unit_gds_name = hero_data.hero_gds_name;
                BL.BLIntVector3 born_pos      = BL.BLUnitManager.Instance().GetRandomPosition(born_point);

                BL.BLUnitManager.Instance().CreateHeroUnit(unit_id, unit_gds_name, born_pos, team_id);

                // 建筑上移除
                BLUnitBase unit = BLUnitManager.Instance().GetUnit(hero_data.build_site_id);
                Debug.Assert(unit.unit_type == UnitType.Building);
                BLUnitBuilding build_unit = unit as BLUnitBuilding;

                build_unit.RemoveUnit(unit_id);
            }
        }
예제 #2
0
        public void Init()
        {
            // 写死的初始化 8个玩家的初始配置数据,
            // 之后要改成从后端的数据初始化
            for (int i = 0; i < BattleField.MAX_PLAYER; ++i)
            {
                var player_data = new BLPlayerData();

                int player_id = i + 1;
                int team_id   = i + 1;

                player_data.Init(player_id, team_id);

                all_player_data.Add(player_id, player_data);
            }

            // 玩家数据监听的消息
            // 1. 资源量的变化 2. 将军开始复活,参数:所属建筑,开始的帧,复活需要的帧
        }
예제 #3
0
    public void UpdateUI()
    {
        BL.BLPlayerData player_data = BL.BLPlayerDataManager.Instance().GetPlayerData(BattleField.battle_field.my_player_id);

        for (int i = 0; i < BattleField.MAX_HERO_COUNT; ++i)
        {
            BL.BLPlayerHeroData hero_data = player_data.GetHeroData(i);

            all_hero_names[i].text = hero_data.hero_gds_name;

            if (player_data.IsHeroAlreadyPut(i))
            {
                all_hero_states[i].text = "已上场";
            }
            else
            {
                int unit_id = BL.BLUnitManager.Instance().GetHeroUnitID(player_data.player_id, i);

                BL.BLUnitBase unit_base = BL.BLUnitManager.Instance().GetUnit(hero_data.build_site_id);
                Debug.Assert(unit_base.unit_type == UnitType.Building);

                BL.BLUnitBuilding unit_building = unit_base as BL.BLUnitBuilding;

                if (unit_building.IsUnitCanRevive(unit_id))
                {
                    all_hero_states[i].text = "就绪";
                }
                else
                {
                    int time_remain = (int)(unit_building.GetUnitReviveRemainFrames(unit_id) * BL.BLTimelineController.SECOND_PER_FRAME);

                    all_hero_states[i].text = time_remain.ToString() + "秒";
                }
            }
        }
    }