예제 #1
0
    public bool excuteLeaveRoomEvent(RoomInterface ri, Character chara)
    {
        EventInterface eventI = ri.getEvent(constant.LEAVE_EVENT);
        //show ui
        string selectCode = showMessageUi(eventI.getEventBeginInfo(), eventI.getSelectItem());

        EventResult result = eventI.excute(chara, selectCode);

        showMessageUi(eventI.getEventEndInfo(result.getResultCode()), null);

        return(result.getStatus());
    }
예제 #2
0
    public bool excuteFallRoomEvent(EventInterface eventI, Character chara)
    {
        this.eventI = eventI;
        if (this.eventI != null)
        {
            if (chara.isPlayer())
            {
                fallRoomExecuted = false;
                this.chara       = chara;
                phase            = 1;
                messageUI.getResult().setDone(false);
                showMessageUi(eventI.getEventBeginInfo(), eventI.getSelectItem());
            }
            else
            {
                result = eventI.excute(chara, messageUI.getResult().getResult(), 0);

                if (result.getResultCode() == EventConstant.FALL_DOWN__EVENT_GOOD)
                {
                }
                else if (result.getResultCode() == EventConstant.FALL_DOWN__EVENT_NORMAL)
                {
                    roomContraller.findRoomByXYZ(chara.getCurrentRoom()).removeChara(chara);
                    this.roomContraller.setCharaInMiniMap(chara.getCurrentRoom(), chara, false);
                    RoomInterface ri = roomContraller.getRandomDownRoom();
                    ri.setChara(chara);
                    chara.setCurrentRoom(ri.getXYZ());
                    this.roomContraller.setCharaInMiniMap(ri.getXYZ(), chara, true);
                    //  camCtrl.setTargetPos(upStairRoom.getXYZ(), RoomConstant.ROOM_Y_DOWN, true);
                }
                else
                {
                    RollDiceParam param = new RollDiceParam(this.eventI.getBadDiceNum());
                    rollVaue = uiManager.showRollDiceImmediately(param);
                    chara.getAbilityInfo()[0] = chara.getAbilityInfo()[0] - rollVaue;
                    roomContraller.findRoomByXYZ(chara.getCurrentRoom()).removeChara(chara);
                    this.roomContraller.setCharaInMiniMap(chara.getCurrentRoom(), chara, false);
                    RoomInterface ri = roomContraller.getRandomDownRoom();
                    ri.setChara(chara);
                    chara.setCurrentRoom(ri.getXYZ());
                    this.roomContraller.setCharaInMiniMap(ri.getXYZ(), chara, true);
                }
            }
        }
        return(true);
    }
예제 #3
0
    public void excuteLeaveRoomEvent(DoorInterface door, RoomInterface ri, Character chara)
    {
        //这个房间有没有离开事件
        eventI = ri.getRoomEvent(EventConstant.LEAVE_EVENT);

        //不为空有事件
        if (eventI != null)
        {
            Debug.Log("有离开事件");
            leaveExecuted = false;
            this.ri       = ri;
            this.chara    = chara;
            this.door     = door;
            phase         = 1;
            messageUI.getResult().setDone(false);
            showMessageUi(eventI.getEventBeginInfo(), eventI.getSelectItem());
        }
        else
        {
            //为空没有事件
            Debug.Log("没有离开事件");
            door.playerOpenDoorResult(true);
        }
    }
예제 #4
0
    public bool excuteSanCheckEvent(EventInterface eventI, Character chara)
    {
        this.eventI = eventI;
        if (this.eventI != null)
        {
            if (chara.isPlayer())
            {
                sanCheckExecuted = false;
                this.chara       = chara;
                phase            = 1;
                messageUI.getResult().setDone(false);
                showMessageUi(eventI.getEventBeginInfo(), eventI.getSelectItem());
            }
            else
            {
                result = eventI.excute(chara, messageUI.getResult().getResult(), 0);

                if (result.getResultCode() == EventConstant.SANCHECK_EVENT_GOOD)
                {
                    chara.getMaxAbilityInfo()[3] = chara.getMaxAbilityInfo()[3] + this.eventI.getGoodValue();
                    chara.getAbilityInfo()[3]    = chara.getAbilityInfo()[3] + this.eventI.getGoodValue();
                }
                else if (result.getResultCode() == EventConstant.SANCHECK_EVENT_NORMAL)
                {
                    chara.getAbilityInfo()[3] = chara.getAbilityInfo()[3] + this.eventI.getNormalValue();
                }
                else
                {
                    RollDiceParam param = new RollDiceParam(this.eventI.getBadDiceNum());
                    rollVaue = uiManager.showRollDiceImmediately(param);
                    chara.getAbilityInfo()[3] = chara.getAbilityInfo()[3] - rollVaue;
                }
            }
        }
        return(true);
    }