Beispiel #1
0
    public MapCardBase CreateMapCard()
    {
        ModelTableSetting model = null;
        switch (CardType)
        {
            case MapCardType.None:
                break;
            case MapCardType.Door:
                MapCard = new MapCardDoor();
                MapCard.Position = Pos;
                MapCard.State = MapCardBase.CardState.Behind;
                ResourceManager.LoadGameObject("MapCard/" + typeof(MapCardDoor).ToString(), LoadAssetSuccessess, LoadAssetFailed, MapCard);
                break;
            case MapCardType.Monster:
                BattleMonsterTableSetting battleMonster = BattleMonsterTableSettings.Get(DataId);
                model = ModelTableSettings.Get(battleMonster.ModelId);
                MapCard = new MapCardDoor();
                MapCard.Position = Pos;
                MapCard.State = MapCardBase.CardState.Behind;
                ResourceManager.LoadGameObject(model.Path, LoadAssetSuccessess, LoadAssetFailed, MapCard);
                break;
            case MapCardType.Shop:
                ShopTableSetting shopTable = ShopTableSettings.Get(DataId);
                model = ModelTableSettings.Get(shopTable.ModelId);
                MapCard = new MapCardDoor();
                MapCard.Position = Pos;
                MapCard.State = MapCardBase.CardState.Behind;
                ResourceManager.LoadGameObject(model.Path, LoadAssetSuccessess, LoadAssetFailed, MapCard);
                break;
            case MapCardType.Box:
                BoxTableSetting boxTable = BoxTableSettings.Get(DataId);
                model = ModelTableSettings.Get(boxTable.ModelId);
                MapCard = new MapCardDoor();
                MapCard.Position = Pos;
                MapCard.State = MapCardBase.CardState.Behind;
                ResourceManager.LoadGameObject(model.Path, LoadAssetSuccessess, LoadAssetFailed, MapCard);
                break;
            case MapCardType.NPC:
                NpcTableSetting npcTable = NpcTableSettings.Get(DataId);
                model = ModelTableSettings.Get(npcTable.ModelId);
                MapCard = new MapCardDoor();
                MapCard.Position = Pos;
                MapCard.State = MapCardBase.CardState.Behind;
                ResourceManager.LoadGameObject(model.Path, LoadAssetSuccessess, LoadAssetFailed, MapCard);
                break;
            default:
                break;
        }

        return MapCard;
    }
    public override void Handle(object sender, IMessage packet)
    {
        base.Handle(sender, packet);
        CGMapApplyEffect data = packet as CGMapApplyEffect;
        //处理完数据和逻辑后,发送消息通知客户端
        PBAccountData      accountData      = GetSavedData <PBAccountData>(ACCOUNT_DATA_KEY);
        PBMapPlayerData    mapPlayerData    = GetSavedData <PBMapPlayerData>(MAP_PLAYER_DATA_KEY);
        PBPlayerData       playerData       = GetSavedData <PBPlayerData>(PLAYER_DATA_KEY);
        PBPlayerDetailData playerDetailData = GetSavedData <PBPlayerDetailData>(PLAYER_DETAIL_DATA_KEY);

        GCMapApplyEffect applyEffect = new GCMapApplyEffect();

        applyEffect.PlayerId = playerData.PlayerId;

        if (data.PlayerId != playerData.PlayerId)
        {
            applyEffect.Result = 1;
            SendToClient(MessageId_Receive.GCMapApplyEffect, applyEffect);
            return;
        }

        switch (data.Action)
        {
        //0结束
        case 0:
            break;

        //1下一个
        case 1:
            break;

        //2选择
        case 2:
            break;

        //3进入战斗
        case 3:
            GCEnterBattle enterBattle = new GCEnterBattle();
            enterBattle.MonsterId = data.Param;
            SendToClient(MessageId_Receive.GCEnterBattle, enterBattle);
            break;

        //4回血
        case 4:
            mapPlayerData.PlayerData.Hp = System.Math.Min(mapPlayerData.PlayerData.Hp + data.Param, mapPlayerData.PlayerData.MaxHp);
            GCUpdateMapPlayerData hpUpdate = new GCUpdateMapPlayerData();
            hpUpdate.PlayerId      = mapPlayerData.PlayerData.PlayerId;
            hpUpdate.MapPlayerData = mapPlayerData;
            SaveData(MAP_PLAYER_DATA_KEY, mapPlayerData);
            SendToClient(MessageId_Receive.GCUpdateMapPlayerData, hpUpdate);
            break;

        //5回魔
        case 5:
            mapPlayerData.PlayerData.Mp = System.Math.Min(mapPlayerData.PlayerData.Mp + data.Param, mapPlayerData.PlayerData.MaxMp);
            GCUpdateMapPlayerData mpUpdate = new GCUpdateMapPlayerData();
            mpUpdate.PlayerId      = mapPlayerData.PlayerData.PlayerId;
            mpUpdate.MapPlayerData = mapPlayerData;
            SaveData(MAP_PLAYER_DATA_KEY, mapPlayerData);
            SendToClient(MessageId_Receive.GCUpdateMapPlayerData, mpUpdate);
            break;

        //6回粮食
        case 6:
            mapPlayerData.PlayerData.Food = System.Math.Min(mapPlayerData.PlayerData.Food + data.Param, mapPlayerData.PlayerData.MaxFood);
            GCUpdateMapPlayerData foodUpdate = new GCUpdateMapPlayerData();
            foodUpdate.PlayerId      = mapPlayerData.PlayerData.PlayerId;
            foodUpdate.MapPlayerData = mapPlayerData;
            SaveData(MAP_PLAYER_DATA_KEY, mapPlayerData);
            SendToClient(MessageId_Receive.GCUpdateMapPlayerData, foodUpdate);
            break;

        //7进入商店
        case 7:
            GCMapEnterShop mapEnterShop = new GCMapEnterShop();
            mapEnterShop.Result = 0;
            mapEnterShop.ShopId = data.Param;
            SendToClient(MessageId_Receive.GCMapEnterShop, mapEnterShop);
            break;

        //8打开宝箱
        case 8:
            GCMapOpenBox openBox = new GCMapOpenBox();
            openBox.Result = 0;
            openBox.BoxId  = data.Param;
            SendToClient(MessageId_Receive.GCMapOpenBox, openBox);
            BoxTableSetting boxTable = BoxTableSettings.Get(data.Param);
            //switch (boxTable.RewardId)
            //{
            //    default:
            //        break;
            //}
            break;

        //9进入下一层
        case 9:
            break;

        default:
            break;
        }



        applyEffect.Result = 0;
        SendToClient(MessageId_Receive.GCMapApplyEffect, applyEffect);
    }
Beispiel #3
0
    public static MapCardBase CreateMapCard(MapCardType mapCardType, int mapcardId, MapCardPos pos)
    {
        MapCardBase         mapCard      = null;
        MapCardTableSetting mapCardTable = MapCardTableSettings.Get(mapcardId);

        if (mapCardTable == null)
        {
            return(null);
        }
        ModelTableSetting model = ModelTableSettings.Get(mapCardTable.ModelId);

        if (model == null)
        {
            return(null);
        }
        switch (mapCardType)
        {
        case MapCardType.None:
            break;

        case MapCardType.Door:
            mapCard           = new MapCardDoor();
            mapCard.Position  = pos;
            mapCard.State     = MapCardBase.CardState.Behind;
            mapCard.CardType  = mapCardType;
            mapCard.TableData = mapCardTable;
            ResourceManager.LoadGameObject("MapCard/" + typeof(MapCardDoor).ToString(), LoadAssetSuccessess, LoadAssetFailed, mapCard);
            break;

        case MapCardType.Monster:
            BattleMonsterTableSetting battleMonster = BattleMonsterTableSettings.Get(mapcardId);
            //model = ModelTableSettings.Get(battleMonster.ModelId);
            mapCard           = new MapCardMonster();
            mapCard.Position  = pos;
            mapCard.State     = MapCardBase.CardState.Behind;
            mapCard.CardType  = mapCardType;
            mapCard.TableData = mapCardTable;
            ResourceManager.LoadGameObject(model.Path, LoadAssetSuccessess, LoadAssetFailed, mapCard);
            break;

        case MapCardType.Shop:
            ShopTableSetting shopTable = ShopTableSettings.Get(mapcardId);
            //model = ModelTableSettings.Get(shopTable.ModelId);
            mapCard           = new MapCardShop();
            mapCard.Position  = pos;
            mapCard.State     = MapCardBase.CardState.Behind;
            mapCard.CardType  = mapCardType;
            mapCard.TableData = mapCardTable;
            ResourceManager.LoadGameObject(model.Path, LoadAssetSuccessess, LoadAssetFailed, mapCard);
            break;

        case MapCardType.Box:
            BoxTableSetting boxTable = BoxTableSettings.Get(mapcardId);
            //model = ModelTableSettings.Get(boxTable.ModelId);
            mapCard           = new MapCardBox();
            mapCard.Position  = pos;
            mapCard.State     = MapCardBase.CardState.Behind;
            mapCard.CardType  = mapCardType;
            mapCard.TableData = mapCardTable;
            ResourceManager.LoadGameObject(model.Path, LoadAssetSuccessess, LoadAssetFailed, mapCard);
            break;

        case MapCardType.NPC:
            NpcTableSetting npcTable = NpcTableSettings.Get(mapcardId);
            //model = ModelTableSettings.Get(npcTable.ModelId);
            mapCard           = new MapCardNpc();
            mapCard.Position  = pos;
            mapCard.State     = MapCardBase.CardState.Behind;
            mapCard.CardType  = mapCardType;
            mapCard.TableData = mapCardTable;
            ResourceManager.LoadGameObject(model.Path, LoadAssetSuccessess, LoadAssetFailed, mapCard);
            break;

        default:
            break;
        }

        return(mapCard);
    }