private void GetChildren()
 {
     high_score_bar       = transform.Find("HighScore").GetComponent <RectTransform>();
     score_bar            = transform.Find("CurrentScore").GetComponent <RectTransform>();
     difficulty_ind_image = transform.Find("CurrentMedal").GetComponent <Image>();
     cpManager            = transform.parent.GetComponent <CPManager>();
 }
示例#2
0
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
         DontDestroyOnLoad(instance);
     }
     else
     {
         Destroy(gameObject);
     }
 }
示例#3
0
    void Awake()
    {
        patilImageTransform = transform.Find("Image");
        patilnerManager     = transform.parent.parent.parent.GetComponent <CPManager>();
        EventTrigger trigger = gameObject.AddComponent <EventTrigger>();

        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID = EventTriggerType.PointerDown;
        entry.callback.AddListener((data) => {
            OnPointerDownDelegate((PointerEventData)data);
        });
        trigger.triggers.Add(entry);
    }
示例#4
0
 void Awake()
 {
     rect            = transform.GetComponent <RectTransform>();
     width           = rect.sizeDelta.x;
     patilnerManager = transform.parent.GetComponent <CPManager>();
 }
示例#5
0
        private bool Move(bool moveNext = true, bool autoRun = false)
        {
            if (PlayerMoved == 0)
            {
                currentPlayer = Players[0];
            }
            else
            {
                currentPlayer = Players[PlayerMoved % Players.Count];
            }
            var player = currentPlayer;

            Console.WriteLine($"玩家 {player.Name} 回合: ");
            if (player.Stop == true)
            {
                return(HolidayEnd(player));
            }
            int dice = -1;

            if (autoRun == true)
            {
                Random rnd = new Random(Guid.NewGuid().GetHashCode());
                dice = rnd.Next(1, 7);
            }
            else
            {
                while (dice > 6 || dice < 1)
                {
                    Console.WriteLine("请输入玩家移动的距离:(1-6)/(Exit 退出)");
                    bool notExit = ReadIntNumber(out dice);
                    if (!notExit)
                    {
                        return(false);
                    }
                }
            }

            if (player == null)
            {
                Console.WriteLine("玩家信息不存在。");
                return(false);
            }

            GameLogs moveLog = new GameLogs()
            {
                ID            = GetLogID(),
                Type          = LogEventType.Move,
                PlayerName    = player.Name,
                StartPoint    = player.PositionNumber,
                EndPoint      = (player.PositionNumber + dice) % 36,
                Info          = "玩家移动",
                Round         = Round,
                currentPlayer = currentPlayer
            };

            AddLog(moveLog);


            player.PositionNumber += dice;
            int roundAdd = player.PositionNumber / 36;

            player.PositionNumber = player.PositionNumber % 36;

            if (roundAdd > 0)
            {
                RoundReward(player);
            }
            var positionCard = GameBoard.BoardMap[player.PositionNumber].PositionCard;

            if (positionCard.Type == CardType.Idol)
            {
                if (!string.Equals(positionCard.HolderId, player.Id) && !string.Equals(positionCard.HolderId, "-1"))
                {
                    var playerTo = Players.FirstOrDefault(p => p.Id == positionCard.HolderId);
                    if (playerTo.CanWin == true && positionCard.isMortgage == false)
                    {
                        var fee   = positionCard.Fee[positionCard.Level];
                        var cpFee = CPManager.CPCost(GameBoard, player.PositionNumber);
                        GoldExchange(player, playerTo, fee, cpFee);
                    }
                    else
                    {
                        if (playerTo.CanWin == false)
                        {
                            Console.WriteLine($"玩家{playerTo.Name} 处于休息状态,无法获得收入。");
                        }
                        if (positionCard.isMortgage == true)
                        {
                            Console.WriteLine($"艺人{player.PositionNumber}:{positionCard.Name} 处于抵押状态,无法获得收入。");
                        }
                    }
                }
                else if (string.Equals(positionCard.HolderId, player.Id))
                {
                    if (positionCard.Level < 4)
                    {
                        if (!autoRun)
                        {
                            bool loop = true;
                            while (loop)
                            {
                                Console.WriteLine("是否进行艺人升级?(Y/n)");
                                string YesOrNo = Console.ReadLine();
                                switch (YesOrNo.Trim().ToUpper())
                                {
                                case "":
                                    IdolLevelUp(player);
                                    loop = false;
                                    break;

                                case "Y":
                                    IdolLevelUp(player);
                                    loop = false;
                                    break;

                                case "YES":
                                    IdolLevelUp(player);
                                    loop = false;
                                    break;

                                case "N":
                                    Console.WriteLine("不进行升级。");
                                    loop = false;
                                    break;

                                case "NO":
                                    Console.WriteLine("不进行升级。");
                                    loop = false;
                                    break;
                                }
                            }
                        }
                        else
                        {
                            IdolLevelUp(player);
                        }
                    }
                }
                else if (string.Equals(positionCard.HolderId, "-1"))
                {
                    if (!autoRun)
                    {
                        bool loop = true;
                        while (loop)
                        {
                            Console.WriteLine("该艺人没有所属公司,是否签约艺人?(Y/n)");
                            string YesOrNo = Console.ReadLine();

                            switch (YesOrNo.Trim().ToUpper())
                            {
                            case "":
                                IdolContract(player);
                                loop = false;
                                break;

                            case "Y":
                                IdolContract(player);
                                loop = false;
                                break;

                            case "YES":
                                IdolContract(player);
                                loop = false;
                                break;

                            case "N":
                                Console.WriteLine("不进行签约。");
                                loop = false;
                                break;

                            case "NO":
                                Console.WriteLine("不进行签约。");
                                loop = false;
                                break;

                            default:
                                break;
                            }
                        }
                    }
                    else
                    {
                        IdolContract(player);
                    }
                }
            }
            else if (positionCard.Type == CardType.Special)
            {
                if (!string.Equals(positionCard.HolderId, player.Id) && !string.Equals(positionCard.HolderId, "-1"))
                {
                    var playerTo = Players.FirstOrDefault(p => p.Id == positionCard.HolderId);
                    if (playerTo.CanWin == true && positionCard.isMortgage == false)
                    {
                        int fee          = 0;
                        var specialHolds = GameBoard.BoardMap.Where(x => x.PositionCard.Type == CardType.Special && x.PositionCard.HolderId == positionCard.HolderId).ToList();
                        switch (specialHolds.Count)
                        {
                        case 1:
                            fee = 1000;
                            break;

                        case 2:
                            fee = 3000;
                            break;

                        case 3:
                            fee = 6000;
                            break;

                        case 4:
                            fee = 10000;
                            break;

                        default:
                            break;
                        }
                        GoldExchange(player, playerTo, fee, 0);
                    }
                    else
                    {
                        if (playerTo.CanWin == false)
                        {
                            Console.WriteLine($"玩家{playerTo.Name} 处于休息状态,无法获得收入。");
                        }
                        if (positionCard.isMortgage == true)
                        {
                            Console.WriteLine($"产业{player.PositionNumber}:{positionCard.Name} 处于抵押状态,无法获得收入。");
                        }
                    }
                }
                else if (string.Equals(positionCard.HolderId, "-1"))
                {
                    if (!autoRun)
                    {
                        bool loop = true;
                        while (loop)
                        {
                            Console.WriteLine("该产业没有所属公司,是否买下产业?(Y/n)");
                            string YesOrNo = Console.ReadLine();

                            switch (YesOrNo.Trim().ToUpper())
                            {
                            case "":
                                IdolContract(player);
                                loop = false;
                                break;

                            case "Y":
                                IdolContract(player);
                                loop = false;
                                break;

                            case "YES":
                                IdolContract(player);
                                loop = false;
                                break;

                            case "N":
                                Console.WriteLine("不进行签约。");
                                loop = false;
                                break;

                            case "NO":
                                Console.WriteLine("不进行签约。");
                                loop = false;
                                break;

                            default:
                                break;
                            }
                        }
                    }
                    else
                    {
                        IdolContract(player);
                    }
                }
            }
            else if (positionCard.Type == CardType.Back)
            {
                BackHome(player);
            }
            else if (positionCard.Type == CardType.Holiday)
            {
                Holiday(player);
            }
            else if (positionCard.Type == CardType.Education)
            {
                GameLogs eduLog = new GameLogs()
                {
                    ID            = GetLogID(),
                    Type          = LogEventType.Education,
                    PlayerName    = player.Name,
                    Info          = "深造进修,再玩一次",
                    Round         = Round,
                    currentPlayer = currentPlayer
                };
                AddLog(eduLog);
                Move(false, autoRun);
            }
            else if (positionCard.Type == CardType.Chance)
            {
                ChanceCardWin(player);
            }
            else if (positionCard.Type == CardType.Change)
            {
                ChangeCardTrigger(player);
            }
            if (moveNext)
            {
                PlayerMoved++;
                Round = PlayerMoved / Players.Count;
            }


            return(true);
        }
示例#6
0
 private void Start()
 {
     cp = GameObject.FindGameObjectWithTag("CPM").GetComponent <CPManager>();
 }