예제 #1
0
    public override void execute()
    {
        Character     character = (mReceiver) as Character;
        CharacterData data      = character.getCharacterData();

        character.dropMahjong(mMah);

        ScriptMahjongHandIn handIn = mLayoutManager.getScript(LAYOUT_TYPE.LT_MAHJONG_HAND_IN) as ScriptMahjongHandIn;

        handIn.notifyDropMahjong(data.mPosition, mMah, mIndex);
        ScriptMahjongDrop scriptDrop = mLayoutManager.getScript(LAYOUT_TYPE.LT_MAHJONG_DROP) as ScriptMahjongDrop;

        scriptDrop.notifyDropMahjong(data.mPosition, data.mDropList, mMah);
        if (character.getType() == CHARACTER_TYPE.CT_MYSELF)
        {
            ScriptMahjongFrame mahjongFrame = mLayoutManager.getScript(LAYOUT_TYPE.LT_MAHJONG_FRAME) as ScriptMahjongFrame;
            mahjongFrame.notifyInfo("");

            // 打出一张牌后,锁定玩家手里的牌,玩家不能点击手里的麻将
            handIn.notifyCanDrop(false);
            // 确认麻将操作按钮已经隐藏
            ScriptPlayerAction playerAction = mLayoutManager.getScript(LAYOUT_TYPE.LT_PLAYER_ACTION) as ScriptPlayerAction;
            playerAction.notifyActionAsk(null);
        }
    }
예제 #2
0
 public PlayerMahjong(ScriptMahjongHandIn script, PLAYER_POSITION position)
 {
     mScript          = script;
     mPosition        = position;
     mHandInMahjong   = new HandInMahjong(mScript, mPosition);
     mShowMahjong     = new ShowMahjong(mScript, CommonDefine.mDropMahjongPreName[(int)mPosition]);
     mPengGangMahjong = new PengGangMahjong(mScript, CommonDefine.mDropMahjongPreName[(int)mPosition]);
 }
예제 #3
0
    public override void execute()
    {
        Character           character = mReceiver as Character;
        CharacterData       data      = character.getCharacterData();
        ScriptMahjongHandIn handIn    = mLayoutManager.getScript(LAYOUT_TYPE.LT_MAHJONG_HAND_IN) as ScriptMahjongHandIn;

        handIn.notifyEnd(data.mPosition, data.mHandIn);
    }
예제 #4
0
    public override void execute()
    {
        Character character = mReceiver as Character;

        character.getMahjongStart(mMahjong);
        // 通知布局
        ScriptMahjongHandIn handIn = mLayoutManager.getScript(LAYOUT_TYPE.LT_MAHJONG_HAND_IN) as ScriptMahjongHandIn;

        handIn.notifyGetMahjongStart(character.getCharacterData().mPosition, mMahjong);
    }
예제 #5
0
 public PengGangMahjong(ScriptMahjongHandIn script, string preName)
 {
     mScript             = script;
     mMahjongPreName     = preName;
     mPengGangSingleRoot = new List <txUIObject>();
     mMahjongWindows     = new List <List <txNGUISprite> >();
     for (int i = 0; i < GameDefine.MAX_PENG_TIMES; ++i)
     {
         mMahjongWindows.Add(new List <txNGUISprite>());
     }
 }
    public override void execute()
    {
        Character    character = (mReceiver) as Character;
        CharacterNPC npc       = character as CharacterNPC;

        npc.reorderMahjong();
        // 通知布局麻将被重新排列
        CharacterData       data   = npc.getCharacterData();
        ScriptMahjongHandIn handIn = mLayoutManager.getScript(LAYOUT_TYPE.LT_MAHJONG_HAND_IN) as ScriptMahjongHandIn;

        handIn.notifyReorder(data.mPosition, data.mHandIn);
    }
예제 #7
0
    public override void execute()
    {
        Character character = mReceiver as Character;

        // 如果是玩家自己,则通知布局可以打出一张牌
        if (character.getType() == CHARACTER_TYPE.CT_MYSELF)
        {
            ScriptMahjongHandIn handIn = mLayoutManager.getScript(LAYOUT_TYPE.LT_MAHJONG_HAND_IN) as ScriptMahjongHandIn;
            handIn.notifyCanDrop(true);
            ScriptMahjongFrame mahjongFrame = mLayoutManager.getScript(LAYOUT_TYPE.LT_MAHJONG_FRAME) as ScriptMahjongFrame;
            mahjongFrame.notifyInfo("请打出一张牌");
        }
    }
예제 #8
0
 public HandInMahjong(ScriptMahjongHandIn script, PLAYER_POSITION position)
 {
     mScript               = script;
     mPosition             = position;
     mCanDrop              = false;
     mHandInMahjong        = new List <HandInMahjongInfo>();
     mHandInPosition       = new List <Vector3>();
     mHandInTargetPosition = new List <Vector3>();
     for (int i = 0; i < GameDefine.MAX_HAND_IN_COUNT; ++i)
     {
         HandInMahjongInfo info = new HandInMahjongInfo();
         info.mState   = HANDIN_STATE.HS_MAX;
         info.mMahjong = MAHJONG.M_MAX;
         mHandInMahjong.Add(info);
     }
 }
예제 #9
0
 public PlayerMahjong(ScriptMahjongHandIn script, PLAYER_POSITION position)
 {
     mScript   = script;
     mPosition = position;
     if (mPosition == PLAYER_POSITION.PP_MYSELF)
     {
         mHandInMahjong = new HandInMahjongMyself(mScript, mPosition);
     }
     else
     {
         mHandInMahjong = new HandInMahjongOther(mScript, mPosition);
     }
     mShowMahjong     = new ShowHuMahjong(mScript, GameDefine.mDropMahjongPreName[(int)mPosition]);
     mPengGangMahjong = new PengGangMahjong(mScript, GameDefine.mDropMahjongPreName[(int)mPosition]);
     mHuaMahjong      = new HuaMahjong(mScript, GameDefine.mDropMahjongPreName[(int)mPosition]);
 }
예제 #10
0
    public override void execute()
    {
        Character     character = (mReceiver) as Character;
        CharacterData data      = character.getCharacterData();

        character.showHua(mMah);

        ScriptMahjongHandIn handIn = mLayoutManager.getScript(LAYOUT_TYPE.LT_MAHJONG_HAND_IN) as ScriptMahjongHandIn;

        handIn.notifyShowHua(data.mPosition, mMah, mIndex);
        handIn.notifyShowHua(data.mPosition, data.mHuaList);

        // 打一张牌以后需要重新排列
        CommandCharacterReorderMahjong reorder = mCommandSystem.newCmd <CommandCharacterReorderMahjong>();

        mCommandSystem.pushCommand(reorder, character);
    }
예제 #11
0
    public override void execute()
    {
        Character character = (mReceiver) as Character;

        character.pengMahjong(mMahjong);

        // 从已经打出的牌中拿走已经碰的那张牌
        CommandCharacterTakeDrop cmdTakeDrop = mCommandSystem.newCmd <CommandCharacterTakeDrop>();

        mCommandSystem.pushCommand(cmdTakeDrop, mDroppedPlayer);

        CharacterData data = character.getCharacterData();
        // 通知布局
        ScriptMahjongHandIn handIn = mLayoutManager.getScript(LAYOUT_TYPE.LT_MAHJONG_HAND_IN) as ScriptMahjongHandIn;

        handIn.notifyPengOrGang(data.mPosition, data.mPengGangList);

        // 然后重新排列玩家手里的牌
        CommandCharacterReorderMahjong cmdReorder = mCommandSystem.newCmd <CommandCharacterReorderMahjong>();

        mCommandSystem.pushCommand(cmdReorder, character);
    }
예제 #12
0
 public HandInMahjongMyself(ScriptMahjongHandIn script, PLAYER_POSITION position)
     : base(script, position)
 {
 }
예제 #13
0
 public HuaMahjong(ScriptMahjongHandIn script, string mahjongPreName)
 {
     mScript         = script;
     mMahjongPreName = mahjongPreName;
     mHuaMahjong     = new List <txNGUISprite>();
 }
예제 #14
0
 public ShowMahjong(ScriptMahjongHandIn script, string mahjongPreName)
 {
     mScript         = script;
     mMahjongPreName = mahjongPreName;
     mShowMahjong    = new List <txNGUIStaticSprite>();
 }