Ejemplo n.º 1
0
    private void NolanMove(Character chara, RoomContraller roomContraller, EventController eventController, DiceRollCtrl diceRoll, APathManager aPathManager,
                           RoundController roundController, BattleController battleController)
    {
        Character player = roundController.getPlayerChara();

        if (AutoMoveManager.move(chara, roomContraller, eventController, diceRoll, aPathManager, player.getCurrentRoom()))
        {
            //找到房间后, 等待后续细节,:根据设定找下一个房间? 开启剧本? 目前直接结束回合
            Debug.Log(chara.getName() + "已经到达目标房间 (" + chara.getCurrentRoom()[0] + "," + chara.getCurrentRoom()[1] + ")");
            Debug.Log("直接开打,开始疯狂攻击玩家");

            battleController.fighte(chara, player);

            if (typeof(NPC).IsAssignableFrom(chara.GetType()))
            {
                Debug.Log("该角色是属于NPC");
                NPC npc = (NPC)chara;
                //角色行动 找物品
            }
            else
            {
                Debug.Log("该角色是属于怪物");
            };
        }
    }
Ejemplo n.º 2
0
    // Use this for initialization
    void Start()
    {
        mapManager  = new MapContraller();
        roomManager = GetComponent <RoomContraller> ();

        //在场景中搜索房间起点
        mapSpawnPoint = GameObject.Find("MapSpawnPoint").GetComponent <Transform> ();
        //生成好的地图数据<房间坐标xy,门的信息>
        Dictionary <int[], int[]> map = mapManager.genMap(roomLevel, roomAmount);

        foreach (int[] key in map.Keys)
        {
            //预备给新房间的坐标
            Vector3 newMap = mapSpawnPoint.position;
            //根据房间的宽度,水平偏移
            if (key [0] != 0)
            {
                newMap.x = key [0] * horizonDis;
            }
            //根据房间的高度,竖直偏移
            if (key [1] != 0)
            {
                newMap.y = key [1] * vertiDis;
            }
            //z值为0
            newMap.z = key[2];

            int[] rXYZ = { key[0], key[1], key[2] };
            //房间生成器返回新生成的房间
            unitMap = roomManager.genRoom(rXYZ, map [key]);
            //设置新房间的坐标
            unitMap.transform.position = newMap;
        }
    }
Ejemplo n.º 3
0
    private static bool move(Character chara, RoomContraller roomContraller, EventController eventController, DiceRollCtrl diceRoll, APathManager aPathManager, string targetRoomType, bool goUpOrDown)
    {
        // Debug.Log(targetRoomType + ", " + goUpOrDown);
        RoomInterface targetRoom = roomContraller.findRoomByRoomType(targetRoomType);

        return(doMove(chara, roomContraller, eventController, diceRoll, aPathManager, targetRoom, goUpOrDown));
    }
Ejemplo n.º 4
0
    private void P3Move(Character chara, RoomContraller roomContraller, EventController eventController, DiceRollCtrl diceRoll, APathManager aPathManager,
                        RoundController roundController, BattleController battleController)
    {
        NPC npc = (NPC)chara;

        if (P3Message.Count > 0)
        {
            npc.sendMessageToPlayer(P3Message.Dequeue());
        }
        Character kate = roundController.getCharaByName(SystemConstant.P4_NAME);

        if (!kate.isDead())
        {
            if (AutoMoveManager.move(chara, roomContraller, eventController, diceRoll, aPathManager, kate.getCurrentRoom()))
            {
                battleController.fighte(chara, kate);
                if (kate.isDead())
                {
                    P3Message.Enqueue(new string[] { "侦探死了?", "感谢神灵保佑,我永远是您忠实的仆从。", "哼,那个蜘蛛怪怕除虫剂的,随随便便就收拾了。" });
                }
            }
        }
        else
        {
            AutoMoveManager.move(chara, roomContraller, eventController, diceRoll, aPathManager, roomContraller.getRandomRoom().getXYZ());
        }
    }
Ejemplo n.º 5
0
    public void scriptAction(Character chara, RoomContraller roomContraller, EventController eventController, DiceRollCtrl diceRoll, APathManager aPathManager, RoundController roundController, BattleController battleController)
    {
        Character target = roundController.getCharaByName(targetList.Peek());

        Debug.Log("target name is " + target.getName());
        if (AutoMoveManager.move(chara, roomContraller, eventController, diceRoll, aPathManager, target.getCurrentRoom()))
        {
            if (!target.isPlayer())
            {
                battleController.fighte(chara, target);
            }
            else
            {
                battleController.showBattleUI(target, chara, false);
            }
            if (target.isDead())
            {
                if (target.getName() == SystemConstant.P1_NAME)
                {
                    NPC npc = (NPC)chara;
                    npc.sendMessageToPlayer(new string[] { "阻止我寻找真相的黑心医生已经死了。。。", "你们这群怪物,都必须死!" });
                }
                targetList.Dequeue();
            }
        }
        else
        {
            Debug.Log("return false... finding path.");
        }
    }
Ejemplo n.º 6
0
    public void loadInfo(Character chara, P0 p, RoomContraller roomController)
    {
        Debug.Log("开始读取记录。。。");
        setCrazyFlag(p.CrazyFlag);
        setAbilityInfo(p.AbilityInfo);
        setMaxAbilityInfo(p.MaxAbilityInfo);
        setActionPointrolled(p.ActionPointrolled);
        setIsDead(p.IsDead);
        this.setDesc(p.Desc);
        this.setBoss(p.IsBoss);

        this.transform.position = new Vector3(p.CharaTransformPositionX, p.CharaTransformPositionY, p.CharaTransformPositionZ);;
        Debug.Log("读取基本信息完成。。。");
        // Debug.Log("开始读取道具信息。。。");
        foreach (ItemInfo i in p.Bag)
        {
            if (i.Type == ItemConstant.ITEM_TYPE_POTION)
            {
                getBag().insertItem(new ItemPotion(i.Code, i.Name, i.Desc));
            }
        }
        // Debug.Log("读取道具信息完成。。。");
        //  Debug.Log("开始读取游戏进度信息。。。");
        foreach (string roomType in p.TargetRoomlist)
        {
            this.getTargetRoomList().Enqueue(roomController.findRoomByRoomType(roomType));
        }
        // Debug.Log("读取游戏进度信息完成。。。");
        updateActionPoint(p.ActionPoint);
        if (this.isPlayer())
        {
            FindObjectOfType <CameraCtrl>().setTargetPos(p.Xyz);
        }
    }
Ejemplo n.º 7
0
    // Use this for initialization
    void Start()
    {
        mapManager  = new MapContraller();
        roomManager = GetComponent <RoomContraller> ();

        //在场景中搜索房间起点
        mapSpawnPoint = GameObject.Find("MapSpawnPoint").GetComponent <Transform> ();
        //生成好的地图数据<房间坐标xy,门的信息>
        Dictionary <int[], int[]> map = mapManager.genMap(roomLevel, roomAmount);

        //根据地图数据,生成新房间
        foreach (int[] key in map.Keys)
        {
            //新房间在地图中的坐标
            int[] rXYZ = new int[] { key[0], key[1], key[2] };
            //产生新房间
            unitMap = roomManager.genRoom(rXYZ, map [key]);

            //预备给新房间的坐标
            Vector3 newMap = mapSpawnPoint.position;
            //根据房间的宽度,水平偏移
            newMap.x = key [0] * horizonDis;
            //根据房间的高度,竖直偏移
            newMap.y = key [1] * vertiDis;
            //根据房间的楼层,设定z坐标值
            newMap.z = key[2];
            //设置新房间在屏幕上的坐标
            unitMap.transform.position = newMap;
        }
    }
Ejemplo n.º 8
0
    void Start()
    {
        roundController = FindObjectOfType <RoundController>();
        roomContraller  = FindObjectOfType <RoomContraller>();
        miniMapUI       = FindObjectOfType <MiniMapUI>();

        newDi1 = Instantiate(minRoom) as GameObject;
        newDi1.GetComponent <RectTransform>().SetParent(MinMapPlane.transform);
        newDi1.GetComponent <RectTransform>().localPosition = showMPos;

        newDi2 = Instantiate(minRoom) as GameObject;
        newDi2.GetComponent <RectTransform>().SetParent(MinMapPlane.transform);
        // newDi2.GetComponent<RectTransform>().localPosition = show2Pos;
        newDi2.SetActive(false);
        newDi3 = Instantiate(minRoom) as GameObject;
        newDi3.GetComponent <RectTransform>().SetParent(MinMapPlane.transform);
        //newDi3.GetComponent<RectTransform>().localPosition = show1Pos;
        newDi3.SetActive(false);
        newDi4 = Instantiate(minRoom) as GameObject;
        newDi4.GetComponent <RectTransform>().SetParent(MinMapPlane.transform);
        // newDi4.GetComponent<RectTransform>().localPosition = show1Pos;
        newDi4.SetActive(false);
        newDi5 = Instantiate(minRoom) as GameObject;
        newDi5.GetComponent <RectTransform>().SetParent(MinMapPlane.transform);
        newDi5.SetActive(false);
        // newDi5.GetComponent<RectTransform>().localPosition = show1Pos;
        east  = new int[] { 0, 0, 0 };
        west  = new int[] { 0, 0, 0 };
        north = new int[] { 0, 0, 0 };
        south = new int[] { 0, 0, 0 };
    }
Ejemplo n.º 9
0
 // Use this for initialization
 void Start()
 {
     roundController = FindObjectOfType <RoundController>();
     roomContraller  = FindObjectOfType <RoomContraller>();
     diceRoll        = FindObjectOfType <DiceRollCtrl>();
     confirmUI       = FindObjectOfType <ConfirmManageUI>();
     camCtrl         = FindObjectOfType <CameraCtrl>();
 }
Ejemplo n.º 10
0
    private void P5Move(Character chara, RoomContraller roomContraller, EventController eventController, DiceRollCtrl diceRoll, APathManager aPathManager,
                        RoundController roundController, BattleController battleController)
    {
        Character monster = roundController.getCharaByName(SystemConstant.MONSTER1_NAME);
        string    roomType;
        NPC       npc = (NPC)chara;

        if (this.P5TargetRooms.Count >= 1)
        {
            roomType = this.P5TargetRooms.Peek();
            if (P5Message.Count > 0)
            {
                npc.sendMessageToPlayer(P5Message.Dequeue());
            }
        }
        else
        {
            if (P5Message.Count > 0)
            {
                npc.sendMessageToPlayer(P5Message.Dequeue());
            }

            if (monster.isDead())
            {
                if (P5Message.Count > 0)
                {
                    npc.sendMessageToPlayer(P5Message.Dequeue());
                }
                roomType = roomContraller.getRandomRoom().getRoomType();
            }
            else
            {
                roomType = roomContraller.findRoomByXYZ(monster.getCurrentRoom()).getRoomType();
            }
            this.P5TargetRooms.Enqueue(roomType);
        }
        if (AutoMoveManager.move(chara, roomContraller,
                                 eventController, diceRoll, aPathManager, roomContraller.findRoomByRoomType(roomType).getXYZ()))
        {
            this.P5TargetRooms.Dequeue();

            if (roomType == RoomConstant.ROOM_TYPE_HOSPITAIL_MINITOR)
            {
                npc.sendMessageToPlayer(new string[] { "我在监控室了,这个有台电脑。", "我破解了文件夹,里面有很多照片,有一张很奇怪,大家来看看。" });
            }
            else
            {
                if (!monster.isDead())
                {
                    battleController.fighte(chara, monster);
                    if (monster.isDead())
                    {
                        P1Message.Enqueue(new string[] { "那个蜘蛛怪已经死了!。", "那个萝莉侦探还管不管了啊?" });
                    }
                }
            }
        }
    }
Ejemplo n.º 11
0
    // Use this for initialization
    void Start()
    {
        roundController = FindObjectOfType <RoundController>();

        roomContraller = FindObjectOfType <RoomContraller>();
        HiddenRoom01   = FindObjectOfType <H_hiddenRoom>();
        camCtrl        = FindObjectOfType <CameraCtrl>();
        this.setThingCode(ThingConstant.HIDDEN_DOOR_01_CODE);
    }
Ejemplo n.º 12
0
    // Use this for initialization
    void Start()
    {
        roundController = FindObjectOfType <RoundController>();

        roomContraller = FindObjectOfType <RoomContraller>();

        camCtrl = FindObjectOfType <CameraCtrl>();
        this.setThingCode(ThingConstant.UPSTAIR_ENTER_CODE);
    }
Ejemplo n.º 13
0
    // Use this for initialization
    void Start()
    {
        roomContraller   = FindObjectOfType <RoomContraller>();
        diceRoll         = FindObjectOfType <DiceRollCtrl>();
        eventController  = FindObjectOfType <EventController>();
        roundController  = FindObjectOfType <RoundController>();
        battleController = FindObjectOfType <BattleController>();
        //duiHuaUImanager = FindObjectOfType<DuiHuaUImanager>();
        charaInfoManager = FindObjectOfType <CharaInfoManager>();
        setGuangBoListener(FindObjectOfType <GuangBoListener>());
        guangBoController = FindObjectOfType <GuangBoController>();
        storyController   = FindObjectOfType <StoryController>();
        bss = new BlackSignStory();
        this.setName(SystemConstant.P6_NAME);
        int[] roomXYZ;
        setBag(new Bag());
        if (this.neworLoad)
        {
            roomXYZ = new int[] { 0, 0, RoomConstant.ROOM_Z_GROUND };
            setCrazyFlag(false);
            //for test 4-->9
            setAbilityInfo(new int[] { 7, 9, 6, 7 });
            setMaxAbilityInfo(new int[] { 7, 9, 6, 7 });
            setActionPointrolled(false);
            setIsDead(false);
            this.setDesc("外乡人.");
            this.waitPlan = false;
            setDistance(0);
            setCurrentRoom(roomXYZ);
            // this.setClickMessage(new string[] { "我就是来旅游的。" });
        }
        else
        {
            P0 p = loadInfo(this.getName());
            roomXYZ       = p.Xyz;
            this.waitPlan = p.WaitPlan;
            setDistance(0);
            setCurrentRoom(roomXYZ);
            loadInfo(this, p, roomContraller);
        }
        //游戏一开始 所处的房间 默认房间的坐标为 0,0,0


        this.roomContraller.findRoomByXYZ(roomXYZ).setChara(this);
        this.roomContraller.setCharaInMiniMap(roomXYZ, this, true);
        this.setClickMessage(this.roomContraller.findRoomByXYZ(roomXYZ).findSomethingNews(this).ToArray());

        /*
         * Item item1 = new ItemTask(ItemConstant.ITEM_CODE_SPEC_Y0006
         * , ItemDesConstant.ITEM_CODE_SPEC_Y0006_NAME, ItemDesConstant.ITEM_CODE_SPEC_Y0006_NAME);
         * this.getBag().insertItem(item1);
         * Item item2 = new ItemTask(ItemConstant.ITEM_CODE_SPEC_Y0007
         *  , ItemDesConstant.ITEM_CODE_SPEC_Y0007_NAME, ItemDesConstant.ITEM_CODE_SPEC_Y0007_DES);
         * this.getBag().insertItem(item2);
         */
    }
Ejemplo n.º 14
0
    // Use this for initialization
    void Start()
    {
        eventController = FindObjectOfType <EventController> ();

        roundController = FindObjectOfType <RoundController> ();

        roomContraller = FindObjectOfType <RoomContraller> ();

        camCtrl = FindObjectOfType <CameraCtrl> ();
    }
Ejemplo n.º 15
0
 // Use this for initialization
 void Start()
 {
     roundController = FindObjectOfType <RoundController>();
     roomContraller  = FindObjectOfType <RoomContraller>();
     initMapObject   = FindObjectOfType <initMap>();
     loadingManager  = FindObjectOfType <LoadingManager>();
     storyController = FindObjectOfType <StoryController>();
     thingController = FindObjectOfType <ThingController>();
     eventController = FindObjectOfType <EventController>();
     taskMananger    = FindObjectOfType <TaskMananger>();
 }
Ejemplo n.º 16
0
    // Use this for initialization
    void Start()
    {
        roomContraller   = FindObjectOfType <RoomContraller>();
        diceRoll         = FindObjectOfType <DiceRollCtrl>();
        eventController  = FindObjectOfType <EventController>();
        roundController  = FindObjectOfType <RoundController>();
        battleController = FindObjectOfType <BattleController>();
        //duiHuaUImanager = FindObjectOfType<DuiHuaUImanager>();
        charaInfoManager = FindObjectOfType <CharaInfoManager>();
        setGuangBoListener(FindObjectOfType <GuangBoListener>());
        guangBoController = FindObjectOfType <GuangBoController>();
        storyController   = FindObjectOfType <StoryController>();
        bss = new BlackSignStory();
        this.setName(SystemConstant.P4_NAME);
        setDistance(-0.5f);
        //游戏一开始 所处的房间 默认房间的坐标为 0,0,0
        int[] roomXYZ;
        setBag(new Bag());
        if (this.neworLoad)
        {
            roomXYZ = new int[] { 0, 0, RoomConstant.ROOM_Z_GROUND };
            setCrazyFlag(false);
            setAbilityInfo(new int[] { 8, 3, 6, 7 });
            setMaxAbilityInfo(new int[] { 8, 3, 6, 7 });
            setActionPointrolled(false);
            setIsDead(false);


            this.setDesc("看似小萝莉,其实是一个出名的侦探。");
            this.waitPlan = false;
            setTargetChara(new List <string>());
            getTargetChara().Add(SystemConstant.P2_NAME);
            //  this.setClickMessage(new string[] { "真相只有一个。", "你就是犯人。" });
            getTargetRoomList().Enqueue(roomContraller.findRoomByRoomType(RoomConstant.ROOM_TYPE_HOSPITAIL_SURGERY));
            getTargetRoomList().Enqueue(roomContraller.findRoomByRoomType(RoomConstant.ROOM_TYPE_HOSPITAIL_TRI_OPERATION));
            getTargetRoomList().Enqueue(roomContraller.findRoomByRoomType(RoomConstant.ROOM_TYPE_HOSPITAIL_MORGUE));
            getTargetRoomList().Enqueue(roomContraller.findRoomByRoomType(RoomConstant.ROOM_TYPE_HOSPITAIL_STORE));
        }
        else
        {
            P0 p = loadInfo(this.getName());
            roomXYZ       = p.Xyz;
            this.waitPlan = p.WaitPlan;
            loadInfo(this, p, roomContraller);
        }
        setCurrentRoom(roomXYZ);
        this.roomContraller.findRoomByXYZ(roomXYZ).setChara(this);
        this.roomContraller.setCharaInMiniMap(roomXYZ, this, true);
        //this.setClickMessage(this.roomContraller.findRoomByXYZ(roomXYZ).findSomethingNews(this).ToArray());
        // setBoss(true);
    }
Ejemplo n.º 17
0
    // Use this for initialization
    public override void init()
    {
        Debug.Log("monster init function start begin...");
        roomContraller   = FindObjectOfType <RoomContraller>();
        diceRoll         = FindObjectOfType <DiceRollCtrl>();
        eventController  = FindObjectOfType <EventController>();
        roundController  = FindObjectOfType <RoundController>();
        battleController = FindObjectOfType <BattleController>();
        //duiHuaUImanager = FindObjectOfType<DuiHuaUImanager>();
        charaInfoManager = FindObjectOfType <CharaInfoManager>();
        setGuangBoListener(FindObjectOfType <GuangBoListener>());
        guangBoController = FindObjectOfType <GuangBoController>();
        storyController   = FindObjectOfType <StoryController>();
        this.setName(SystemConstant.MONSTER1_NAME);
        //游戏一开始 所处的房间 默认房间的坐标为 0,0,0
        //int[] roomXYZ = { 0, 0, RoomConstant.ROOM_Z_GROUND };
        setDistance(-1.5f);



        setAbilityInfo(new int[] { 7, 7, 1, 1 });

        setMaxAbilityInfo(new int[] { 7, 7, 1, 1 });
        setActionPointrolled(false);
        setIsDead(false);

        Character martin = roundController.getCharaByName(SystemConstant.P5_NAME);
        Character nolan  = roundController.getCharaByName(SystemConstant.P1_NAME);
        Character jessie = roundController.getCharaByName(SystemConstant.P3_NAME);
        Character player = roundController.getCharaByName(SystemConstant.P6_NAME);

        if (martin != null && !martin.isDead())
        {
            targetList.Enqueue(martin);
        }

        if (nolan != null && !nolan.isDead())
        {
            targetList.Enqueue(martin);
        }

        if (jessie != null && !jessie.isDead())
        {
            targetList.Enqueue(jessie);
        }
        if (player != null && !player.isDead())
        {
            targetList.Enqueue(player);
        }
    }
Ejemplo n.º 18
0
 public void guangBoAction(Character chara, RoomContraller roomContraller, EventController eventController, DiceRollCtrl diceRoll, APathManager aPathManager, RoundController roundController, BattleController battleController)
 {
     actionEnd = false;
     Debug.Log("执行广播任务,目标是 " + this.targetRoomType);
     if (AutoMoveManager.move(chara, roomContraller, eventController, diceRoll, aPathManager, this.targetRoomType))
     {
         NPC npc = (NPC)chara;
         npc.setFollowGuangBoAction(false);
         if (targetNameList.Contains(chara.getName()))
         {
             actionEnd = true;
         }
     }
     ;
 }
Ejemplo n.º 19
0
 public void scriptAction(Character chara, RoomContraller roomContraller, EventController eventController, DiceRollCtrl diceRoll, APathManager aPathManager, RoundController roundController, BattleController battleController)
 {
     if (chara.getName() == SystemConstant.P1_NAME)
     {
         P1Move(chara, roomContraller, eventController, diceRoll, aPathManager, roundController, battleController);
     }
     else if (chara.getName() == SystemConstant.P3_NAME)
     {
         P3Move(chara, roomContraller, eventController, diceRoll, aPathManager, roundController, battleController);
     }
     else if (chara.getName() == SystemConstant.P5_NAME)
     {
         P5Move(chara, roomContraller, eventController, diceRoll, aPathManager, roundController, battleController);
     }
 }
Ejemplo n.º 20
0
    // Use this for initialization
    void Start()
    {
        roomContraller   = FindObjectOfType <RoomContraller>();
        diceRoll         = FindObjectOfType <DiceRollCtrl>();
        eventController  = FindObjectOfType <EventController>();
        roundController  = FindObjectOfType <RoundController>();
        battleController = FindObjectOfType <BattleController>();
        //duiHuaUImanager = FindObjectOfType<DuiHuaUImanager>();
        charaInfoManager = FindObjectOfType <CharaInfoManager>();
        setGuangBoListener(FindObjectOfType <GuangBoListener>());
        guangBoController = FindObjectOfType <GuangBoController>();
        this.setName(SystemConstant.P1_NAME);
        //游戏一开始 所处的房间 默认房间的坐标为 0,0,0
        int[] roomXYZ;
        setBag(new Bag());
        if (this.neworLoad)
        {
            roomXYZ = new int[] { 0, 0, RoomConstant.ROOM_Z_GROUND };
            setCrazyFlag(false);
            setAbilityInfo(new int[] { 8, 3, 6, 7 });
            setMaxAbilityInfo(new int[] { 8, 3, 6, 7 });
            setActionPointrolled(false);
            setIsDead(false);


            this.waitPlan = false;

            this.setDesc("一身脏兮兮的白大褂,第一感觉是个跳大神的庸医。");
            //this.setClickMessage(new string[] { "", "你就是犯人。" });
            getTargetRoomList().Enqueue(roomContraller.getRandomRoom());
            getTargetRoomList().Enqueue(roomContraller.findRoomByRoomType(RoomConstant.ROOM_TYPE_HOSPITAIL_COMMON));
        }
        else
        {
            P0 p = loadInfo(this.getName());
            roomXYZ       = p.Xyz;
            this.waitPlan = p.WaitPlan;
            loadInfo(this, p, roomContraller);
            Debug.Log(" idont kone? nolan is dead ?" + this.isDead());
        }
        setDistance(0.5f);
        setCurrentRoom(roomXYZ);
        this.roomContraller.findRoomByXYZ(roomXYZ).setChara(this);
        this.roomContraller.setCharaInMiniMap(roomXYZ, this, true);
        this.setClickMessage(this.roomContraller.findRoomByXYZ(roomXYZ).findSomethingNews(this).ToArray());
    }
Ejemplo n.º 21
0
    // Use this for initialization
    void Start()
    {
        roomContraller   = FindObjectOfType <RoomContraller>();
        diceRoll         = FindObjectOfType <DiceRollCtrl>();
        eventController  = FindObjectOfType <EventController>();
        roundController  = FindObjectOfType <RoundController>();
        battleController = FindObjectOfType <BattleController>();
        //duiHuaUImanager = FindObjectOfType<DuiHuaUImanager>();
        charaInfoManager = FindObjectOfType <CharaInfoManager>();
        setGuangBoListener(FindObjectOfType <GuangBoListener>());
        guangBoController = FindObjectOfType <GuangBoController>();
        storyController   = FindObjectOfType <StoryController>();
        bss = new BlackSignStory();
        this.setName(SystemConstant.P5_NAME);
        setDistance(-2.0f);
        //游戏一开始 所处的房间 默认房间的坐标为 0,0,0
        int[] roomXYZ;
        setBag(new Bag());
        if (this.neworLoad)
        {
            roomXYZ = new int[] { 0, 0, RoomConstant.ROOM_Z_GROUND };
            setCrazyFlag(false);
            setAbilityInfo(new int[] { 8, 3, 6, 7 });
            setMaxAbilityInfo(new int[] { 8, 3, 6, 7 });
            setActionPointrolled(false);
            setIsDead(false);


            this.setDesc("沉默寡言,不爱说话的黑客.");
            this.waitPlan = false;
            // this.setClickMessage(new string[] { "谁能给我一台电脑?" });
            getTargetRoomList().Enqueue(roomContraller.getRandomRoom());
            getTargetRoomList().Enqueue(roomContraller.findRoomByRoomType(RoomConstant.ROOM_TYPE_DOWNSTAIR_BACK));
        }
        else
        {
            P0 p = loadInfo(this.getName());
            roomXYZ       = p.Xyz;
            this.waitPlan = p.WaitPlan;
            loadInfo(this, p, roomContraller);
        }
        setCurrentRoom(roomXYZ);
        this.roomContraller.findRoomByXYZ(roomXYZ).setChara(this);
        this.roomContraller.setCharaInMiniMap(roomXYZ, this, true);
        this.setClickMessage(this.roomContraller.findRoomByXYZ(roomXYZ).findSomethingNews(this).ToArray());
    }
Ejemplo n.º 22
0
    // Use this for initialization
    void Start()
    {
        roomContraller   = FindObjectOfType <RoomContraller>();
        diceRoll         = FindObjectOfType <DiceRollCtrl>();
        eventController  = FindObjectOfType <EventController>();
        roundController  = FindObjectOfType <RoundController>();
        battleController = FindObjectOfType <BattleController>();
        //duiHuaUImanager = FindObjectOfType<DuiHuaUImanager>();
        charaInfoManager = FindObjectOfType <CharaInfoManager>();
        setGuangBoListener(FindObjectOfType <GuangBoListener>());
        guangBoController = FindObjectOfType <GuangBoController>();
        storyController   = FindObjectOfType <StoryController>();
        bss = new BlackSignStory();
        int[] roomXYZ;
        this.setName(SystemConstant.P2_NAME);
        setDistance(1.5f);
        setBag(new Bag());
        //游戏一开始 所处的房间 默认房间的坐标为 0,0,0
        if (this.neworLoad)
        {
            roomXYZ = new int[] { 0, 0, RoomConstant.ROOM_Z_GROUND };
            setCrazyFlag(false);
            setAbilityInfo(new int[] { 2, 2, 4, 8 });
            setMaxAbilityInfo(new int[] { 2, 2, 4, 8 });
            setActionPointrolled(false);
            setIsDead(false);

            this.waitPlan = false;
            this.setDesc("活力充沛,爱开玩笑的冒险家。");
        }
        else
        {
            P0 p = loadInfo(this.getName());
            roomXYZ       = p.Xyz;
            this.waitPlan = p.WaitPlan;
            loadInfo(this, p, roomContraller);
        }
        setCurrentRoom(roomXYZ);
        this.roomContraller.findRoomByXYZ(roomXYZ).setChara(this);
        this.roomContraller.setCharaInMiniMap(roomXYZ, this, true);
        this.setClickMessage(this.roomContraller.findRoomByXYZ(roomXYZ).findSomethingNews(this).ToArray());
    }
Ejemplo n.º 23
0
    private void genDownMap()
    {
        // Debug.Log("init map begin");
        mapManager  = new MapContraller();
        roomManager = GetComponent <RoomContraller>();

        //在场景中搜索房间起点
        mapSpawnDownPoint = GameObject.Find("MapSpawnDownPoint").GetComponent <Transform>();
        //生成好的地图数据<房间坐标xy,门的信息>
        if (neworLoad)
        {
            this.mapDown = mapManager.genMap(RoomConstant.ROOM_Z_DOWN, roomAmount);
        }
        else
        {
            this.mapDown = genMap(Application.persistentDataPath + "/Save/SaveData3.sav");
        }
        // Debug.Log("map count: " + map.Count);
        //根据地图数据,生成新房间
        foreach (int[] key in mapDown.Keys)
        {
            //新房间在地图中的坐标
            int[] rXYZ = new int[] { key[0], key[1], key[2] };
            //产生新房间
            //  Debug.Log(rXYZ[0] +","+ rXYZ[1] + "," + rXYZ[2]);
            unitMap = roomManager.genRoom(rXYZ, mapDown[key]);

            //预备给新房间的坐标
            Vector3 newMap = mapSpawnDownPoint.position;
            //根据房间的宽度,水平偏移
            newMap.x = key[0] * horizonDis;
            //根据房间的高度,竖直偏移
            newMap.y = RoomConstant.ROOM_Y_DOWN + key[1] * vertiDis - 0.85f;
            //根据房间的楼层,设定z坐标值
            newMap.z = key[2];
            //设置新房间在屏幕上的坐标
            unitMap.transform.position = newMap;
        }

        genMinMap(mapDown, RoomConstant.ROOM_Z_DOWN);
    }
Ejemplo n.º 24
0
    // Use this for initialization
    void Start()
    {
        roomContraller       = FindObjectOfType <RoomContraller>();
        eventController      = FindObjectOfType <EventController>();
        this.guangBoListener = FindObjectOfType <GuangBoListener>();
        player = FindObjectOfType <Player>();
        nolan  = FindObjectOfType <Nolan>();
        ben    = FindObjectOfType <Ben>();
        kate   = FindObjectOfType <Kate>();
        martin = FindObjectOfType <Martin>();
        jessie = FindObjectOfType <Jessie>();
        if (newOrLoad)
        {
            //目前是写死。。后面需要改为程序控制添加 游戏人数

            setEndRound(player);
            setEndRound(nolan);
            setEndRound(ben);
            setEndRound(jessie);
            setEndRound(kate);
            setEndRound(martin);
            roundCount = 1;
            player.setActionPointrolled(true);
        }
        else
        {
            Debug.Log("laod  this game round begin ");
            string   datapath = Application.persistentDataPath + "/Save/SaveData0.sav";
            SaveData data     = (SaveData)IOHelper.GetData(datapath, typeof(SaveData));
            // foreach (string name in data.CharaNames)
            // player.setActionPointrolled(data.P6.ActionPointrolled);
            setEndRound(player);
            setEndRound(nolan);
            Debug.Log("nolan is dead? " + nolan.isDead());
            setEndRound(ben);
            setEndRound(jessie);
            setEndRound(kate);
            setEndRound(martin);
            roundCount = data.RoundCount;
            Debug.Log("laod  this game round end ");
        }
        // Debug.Log(playChara.getName() + " round this game");
        if (player.isPlayer())
        {
            this.playerChara = player;
        }
        else if (nolan.isPlayer())
        {
            this.playerChara = nolan;
        }
        else if (ben.isPlayer())
        {
            this.playerChara = ben;
        }
        else if (kate.isPlayer())
        {
            this.playerChara = kate;
        }
        else if (martin.isPlayer())
        {
            this.playerChara = martin;
        }
        else if (jessie.isPlayer())
        {
            this.playerChara = jessie;
        }

        isRoundEnd = false;
        playChara  = this.getNextCharecter();
        Debug.Log(playChara.getName() + " begin load  round this game");
    }
Ejemplo n.º 25
0
 void Start()
 {
     leaveExecuted  = true;
     roomContraller = FindObjectOfType <RoomContraller>();
     camCtrl        = FindObjectOfType <CameraCtrl>();
 }
Ejemplo n.º 26
0
 private void BenMove(Character chara, RoomContraller roomContraller, EventController eventController, DiceRollCtrl diceRoll, APathManager aPathManager,
                      RoundController roundController, BattleController battleController)
 {
     AutoMoveManager.move(chara, roomContraller, eventController, diceRoll, aPathManager, new int[] { 0, 0, 0 });
 }
Ejemplo n.º 27
0
 public void scriptAction(Character chara, RoomContraller roomContraller, EventController eventController, DiceRollCtrl diceRoll, APathManager aPathManager,
                          RoundController roundController, BattleController battleController)
 {
     BenMove(chara, roomContraller, eventController, diceRoll, aPathManager, roundController, battleController);
 }
Ejemplo n.º 28
0
 // Use this for initializ
 void Start()
 {
     player         = FindObjectOfType <Player>();
     roomContraller = FindObjectOfType <RoomContraller>();
 }
Ejemplo n.º 29
0
    public void sendGuangBoToOwner(NPC npc, RoomContraller roomContraller, RoundController roundController)
    {
        string targetRoomName = roomContraller.findRoomByRoomType(this.getGuangBoTargetVaule()).getRoomName();

        npc.sendMessageToPlayer(new string[] { npc.getName() + " :我准备听从" + this.getGuangBoOwnerName() + "的意见去" + targetRoomName + "看看" });
    }
Ejemplo n.º 30
0
    public Stack <Node> findPath(RoomInterface intiRoom, RoomInterface targetNode, RoomContraller roundController)
    {
        openList.Clear();
        closeList.Clear();
        //   Debug.Log(" intiRoom Room is " + intiRoom.getXYZ()[0] + "," + intiRoom.getXYZ()[1]);
        //   Debug.Log(" targetNode Room is " + targetNode.getXYZ()[0] + "," + targetNode.getXYZ()[1]);
        bool finded   = false;
        Node initNode = new Node(intiRoom.getXYZ()[0], intiRoom.getXYZ()[1], intiRoom.getXYZ()[2]);

        initNode.G = 10;
        initNode.H = (System.Math.Abs(initNode.xy[0] - targetNode.getXYZ()[0]) + System.Math.Abs(initNode.xy[1] - targetNode.getXYZ()[1])) * 10;
        initNode.F = initNode.G + initNode.H;
        openList.Add(initNode);

        while (!finded)
        {
            //计算起始位置周围的F值
            currentNode = getLessestNode(openList);
            //      Debug.Log(" currentNode Room is " + currentNode.xy[0] + "," + currentNode.xy[1]);
            closeList.Add(currentNode);
            if (currentNode.xy[0] == targetNode.getXYZ()[0] && currentNode.xy[1] == targetNode.getXYZ()[1])
            {
                //           Debug.Log("I got the targetRoom!!!!");
                finded = true;
                break;
            }

            RoomInterface currentRoom = roundController.findRoomByXYZ(currentNode.xy);
            //      Debug.Log(" currentRoom Room is " + currentRoom.getXYZ()[0] + "," + currentRoom.getXYZ()[1]);
            if (currentRoom.getNorthDoor().GetComponent <DoorInterface>().getShowFlag())
            {
                node = new Node(currentRoom.getXYZ()[0], currentRoom.getXYZ()[1] + 1, currentRoom.getXYZ()[2]);
                if (!this.containClose(node, closeList))
                {
                    node.G = 10 + currentNode.G;
                    node.H = (System.Math.Abs(node.xy[0] - targetNode.getXYZ()[0]) + System.Math.Abs(node.xy[1] - targetNode.getXYZ()[1])) * 10;
                    if (roundController.findRoomByXYZ(node.xy).isLock())
                    {
                        node.H = node.H + 50;
                    }
                    node.F      = node.G + node.H;
                    node.parent = currentNode;
                    openList.Add(node);
                }
            }
            if (currentRoom.getSouthDoor().GetComponent <DoorInterface>().getShowFlag())
            {
                node = new Node(currentRoom.getXYZ()[0], currentRoom.getXYZ()[1] - 1, currentRoom.getXYZ()[2]);
                if (!this.containClose(node, closeList))
                {
                    node.G = 10 + currentNode.G;
                    node.H = (System.Math.Abs(node.xy[0] - targetNode.getXYZ()[0]) + System.Math.Abs(node.xy[1] - targetNode.getXYZ()[1])) * 10;
                    if (roundController.findRoomByXYZ(node.xy).isLock())
                    {
                        node.H = node.H + 50;
                    }
                    node.F      = node.G + node.H;
                    node.parent = currentNode;
                    openList.Add(node);
                }
            }
            if (currentRoom.getEastDoor().GetComponent <DoorInterface>().getShowFlag())
            {
                node = new Node(currentRoom.getXYZ()[0] + 1, currentRoom.getXYZ()[1], currentRoom.getXYZ()[2]);
                if (!this.containClose(node, closeList))
                {
                    node.G = 10 + currentNode.G;
                    node.H = (System.Math.Abs(node.xy[0] - targetNode.getXYZ()[0]) + System.Math.Abs(node.xy[1] - targetNode.getXYZ()[1])) * 10;
                    if (roundController.findRoomByXYZ(node.xy).isLock())
                    {
                        node.H = node.H + 50;
                    }

                    node.F      = node.G + node.H;
                    node.parent = currentNode;
                    openList.Add(node);
                }
            }
            if (currentRoom.getWestDoor().GetComponent <DoorInterface>().getShowFlag())
            {
                node = new Node(currentRoom.getXYZ()[0] - 1, currentRoom.getXYZ()[1], currentRoom.getXYZ()[2]);
                if (!this.containClose(node, closeList))
                {
                    node.G = 10 + currentNode.G;
                    node.H = (System.Math.Abs(node.xy[0] - targetNode.getXYZ()[0]) + System.Math.Abs(node.xy[1] - targetNode.getXYZ()[1])) * 10;
                    if (roundController.findRoomByXYZ(node.xy).isLock())
                    {
                        node.H = node.H + 50;
                    }
                    node.F      = node.G + node.H;
                    node.parent = currentNode;
                    openList.Add(node);
                }
            }
            //     Debug.Log("openList.Count  " + openList.Count);
        }


        Stack <Node> paths = genPath(initNode, currentNode);

        return(paths);
    }