示例#1
0
    public override void OnStartServer()
    {
        api   = new HttpApiLogic(HttpRequestSender.GetInstance());
        roads = RoadController.GetInstance();
        roads.OnCustomStartServer();

        var randomPositions = AchievementController.GetRandomPositions(COINS_COUNT, roads);

        foreach (Vector2 position in randomPositions)
        {
            NetworkServer.Spawn(
                Instantiate(
                    achievementPrefab,
                    new Vector3(position.x, 1.5f, position.y),
                    Quaternion.AngleAxis(45, Vector3.up) * Quaternion.AngleAxis(90, Vector3.forward)
                    )
                );
        }

        var superPosition = AchievementController.GetPoint(roads);

        NetworkServer.Spawn(
            Instantiate(
                superAchievementPrefab,
                new Vector3(superPosition.x, 1.5f, superPosition.y),
                Quaternion.AngleAxis(45, Vector3.up) * Quaternion.AngleAxis(90, Vector3.forward)
                )
            );
    }
 protected override void Awake()
 {
     base.Awake();
     instance          = this;
     rewardGroupStartY = rewardGroup.anchoredPosition.y;
     achieveRect       = achievementGroup.GetComponent <RectTransform> ();
     preBtn.onClick.AddListener(() => {
         ClickPre();
     });
     nextBtn.onClick.AddListener(() => {
         ClickNext();
     });
     ownBtn.onClick.AddListener(() => {
         achieveRect.anchoredPosition = new Vector2(startPosX, achieveRect.anchoredPosition.y);
         currentPage = 1;
         backBtn.gameObject.SetActive(true);
         ownBtn.gameObject.SetActive(false);
         ShowOwnAndBack(false);
         SetPage();
     });
     backBtn.onClick.AddListener(() => {
         achieveRect.anchoredPosition = new Vector2(startPosX, achieveRect.anchoredPosition.y);
         currentPage = 1;
         ownBtn.gameObject.SetActive(true);
         backBtn.gameObject.SetActive(false);
         ShowOwnAndBack(true);
         SetPage();
     });
     startPosX = achieveRect.anchoredPosition.x;
     rect.onValueChanged.AddListener(OnValueChangedEvent);
     SetRewardCard();
 }
    void Start()
    {
        //Get the data to be displayed
        achievements = achievementLoader.GetAchievements();

        //Iterate through the data
        foreach (Achievement achievement in achievements)
        {
            //create new achievement object
            GameObject newAchievement = Instantiate(achievementListItem) as GameObject;

            //set the data
            AchievementController controller = newAchievement.GetComponent <AchievementController>();
            controller.achievementIcon.sprite          = achievement.achievementIcon;
            controller.achievementHeading.text         = achievement.achievementHeading;
            controller.achievementDescription.text     = achievement.achievementDescription;
            controller.achievementProgressSlider.value = achievement.achievementProgressSlider;

            //set the position
            newAchievement.transform.parent     = content.transform;
            newAchievement.transform.localScale = Vector3.one;

            //rename the heading and descirption text field to make it available for the translator
            controller.achievementHeading.name     = achievement.achievementHeading + "Heading";
            controller.achievementDescription.name = achievement.achievementHeading + "Description";
        }

        AchievementWriter writer = new AchievementWriter();

        writer.WriteAchievementProgress("trophy", 0.2f);
    }
 public static AchievementController getInstance()
 {
     if (scoreManager == null) {
         scoreManager = new AchievementController();
     }
     return scoreManager;
 }
        public void SettingsDuplicate()
        {
            ModelMapCreator mapCreator = new ModelMapCreator();

            mapCreator.CreateMap();

            MockFacebookContextSettings facebookContextSettings =
                new MockFacebookContextSettings("AppId", 1234, "AccessToken123", "http://apps.facebook.com/canvasPage",
                                                "SignedRequest");

            Mock <IUserService> mockUserService = new Mock <IUserService>();
            User originalUser = new User
            {
                AutoUpdate         = true,
                FacebookUserId     = facebookContextSettings.UserId,
                PublishDescription = true,
                SteamUserId        = "user1"
            };

            mockUserService.Setup(service => service.GetUser(facebookContextSettings.UserId))
            .Returns(() => originalUser).Verifiable();

            User updatedUser = new User
            {
                AccessToken        = originalUser.AccessToken,
                AutoUpdate         = originalUser.AutoUpdate,
                FacebookUserId     = originalUser.FacebookUserId,
                PublishDescription = originalUser.PublishDescription,
                SteamUserId        = "NullReference"
            };

            mockUserService.Setup(service => service.UpdateUser(updatedUser))
            .Throws(new DuplicateSteamUserException()).Verifiable();

            Mock <IAchievementService> mockAchievementService = new Mock <IAchievementService>();

            SessionStateItemCollection sessionItems = new SessionStateItemCollection();
            AchievementController      controller   = new AchievementController(mockAchievementService.Object,
                                                                                mockUserService.Object,
                                                                                facebookContextSettings);
            FakeControllerContext context = new FakeControllerContext(controller, sessionItems);

            controller.ControllerContext = context;
            controller.UserSettings      = originalUser;

            SettingsViewModel model =
                new SettingsViewModel
            {
                AutoUpdate         = true,
                PublishDescription = true,
                SteamUserId        = "NullReference"
            };

            JsonResult result = controller.SaveSettings(model);

            Assert.That((string)result.Data == "DuplicateError");

            mockUserService.Verify();
        }
示例#6
0
    public void PrintYouLost()
    {
        AchievementController.WinLoseAchievements(false, LimitType == (int)LimitTypes.Score);

        Result.GetComponent <UnityEngine.UI.Text>().text  = "YOU LOST ";
        Result.GetComponent <UnityEngine.UI.Text>().text += Bet.YourBet.ToString();
        Result.GetComponent <UnityEngine.UI.Text>().text += " CREDITS";
    }
示例#7
0
 public void PrintYouWon()
 {
     AchievementController.WinLoseAchievements(true, LimitType == (int)LimitTypes.Score);
     Result.GetComponent <UnityEngine.UI.Text>().text  = "YOU WON ";
     Result.GetComponent <UnityEngine.UI.Text>().text += Bet.TotalBet.ToString();
     Result.GetComponent <UnityEngine.UI.Text>().text += " CREDITS";
     ProjectConstants.userCredit += Bet.YourBet + Bet.TableBet;
 }
	private void Awake()
	{
		if (instance != null && instance != this)
		{
			Destroy(this.gameObject);
		}		
		instance = this;
		DontDestroyOnLoad( this.gameObject );
	}
示例#9
0
    //Calculates the number of stars earned for each level
    public void CalculateStarsEarned()
    {
        int starsEarned = 0;
        int count       = 100;

        foreach (Objective o in objectives)
        {
            if (o.GetMaxTarget() - o.GetCount() == 3)
            {
                if (count == 100)
                {
                    count = 0;
                }
                else if (count >= 0)
                {
                    count = 0;
                }
            }
            else if (o.GetMaxTarget() - o.GetCount() == 2)
            {
                if (count == 100)
                {
                    count = 1;
                }
                else if (count >= 1)
                {
                    count = 1;
                }
            }
            else if (o.GetMaxTarget() - o.GetCount() == 1)
            {
                if (count == 100)
                {
                    count = 2;
                }
                if (count >= 2)
                {
                    count = 2;
                }
            }
            else if (o.GetMaxTarget() - o.GetCount() == 0)
            {
                if (count == 100)
                {
                    count = 3;
                }
                if (count >= 3)
                {
                    count = 3;
                }
            }
            starsEarned = count;
        }


        AchievementController.UpdateStarsForLevel(level, starsEarned);
    }
示例#10
0
 // Update is called once per frame
 void FixedUpdate()
 {
     Player = GameObject.Find("player");
     scorer = GameObject.Find("Scorer").GetComponent<AchievementController>();
     if (Player) {
         height = (int)(Player.transform.position.y - this.transform.position.y) + 100;
         scorer.setScore (height + 1);
     }
 }
示例#11
0
 public void DestroyedNumber(int number, int whose)
 {
     ScoreObject[whose].Scored(number);
     ScorePlayer(number + 1, whose);
     AchievementController.CollectingTiles();
     if (LimitType == (int)LimitTypes.Score)
     {
         ControlForScore();
     }
 }
	void checkAchievement(AchievementController controller, int id, AchievementData data, object text)
	{
		if(id<=2)
		{
			if(LevelConfig.getAchievementKillEnemy(id,data,text))
			{
				controller.spriteOutline.color = LevelConfig.ColorAchievementCompletedOutline;
				controller.spriteBackground.color = LevelConfig.ColorAchievementCompletedBackground;
				controller.completeIcon.SetActive(true);
			}
		}
	}
 void checkAchievement(AchievementController controller, int id, AchievementData data, object text)
 {
     if (id <= 2)
     {
         if (LevelConfig.getAchievementKillEnemy(id, data, text))
         {
             controller.spriteOutline.color    = LevelConfig.ColorAchievementCompletedOutline;
             controller.spriteBackground.color = LevelConfig.ColorAchievementCompletedBackground;
             controller.completeIcon.SetActive(true);
         }
     }
 }
示例#14
0
 void Awake()
 {
     if (_internal == null)
     {
         _internal = this;
     }
     else
     {
         Destroy(this);
         return;
     }
 }
示例#15
0
        public void getAchievement()
        {
            // Arrange
            AchievementController controller = new AchievementController();

            var actResult = controller.Get(1);
            // Act
            var result = actResult as OkNegotiatedContentResult <Achievement>;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Content.ID == 1);
        }
示例#16
0
        public void DeleteAchievement()
        {
            // Arrange
            AchievementController controller = new AchievementController();

            var actResult = controller.Delete(1);
            // Act
            var result = actResult as OkNegotiatedContentResult <bool>;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Content == true);
        }
        public void FinalScore(int score, PlayerData player)
        {
            //call AchievementController UserScore
            var ach = new AchievementController();

            ach.UserScore(player.playerID, score, gameID);

            //check for achievement unlocking
            if (score > achievementScoreTarget)
            {
                ach.UserAchieve(player.playerID, 1);
            }
        }
    private void Awake()
    {
        instance = this;

        didInit                = false;
        unlockedAchvNames      = new Queue <string>();
        displayingNotification = false;
        notifyAchvGo.SetActive(false);
        notifyAnimTimer = 0f;

        UpdateProgressAll(true);
        didInit = true;
    }
    static public AchievementGroupController GetAchievementGroup(String userid, Int32 award_group_id)
    {
        List <AchievementGroupController> list = AchievementController.GetAchievementGroupList(userid);

        foreach (AchievementGroupController tmp in list)
        {
            if (tmp.Id == award_group_id)
            {
                return(tmp);
            }
        }

        return(null);
    }
    static public List <AchievementGroupController> GetAchievementGroupList(String userid)
    {
        AchievementController             Control = new AchievementController(userid);
        List <AchievementGroupController> list    = new List <AchievementGroupController>();

        List <AchievementGroupModel> Modellist = Control.m_pModel.AchievementGroupList;

        foreach (AchievementGroupModel tmp in Modellist)
        {
            AchievementGroupController c = new AchievementGroupController(tmp, Control.m_pDb);
            list.Add(c);
        }

        return(list);
    }
示例#21
0
        public void PostAchievement()
        {
            // Arrange
            AchievementController controller = new AchievementController();

            Achievement AchievementObj = new Achievement
            {
                Name     = "Award",
                Comments = "Good Work",
            };
            var actResult = controller.Post(AchievementObj);
            // Act
            var result = actResult as OkNegotiatedContentResult <Achievement>;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Content.ID > 0);
        }
    public AchievementController()
    {
        instance = this;

        UpdateController.toUpdate      = Update;
        UpdateController.toFixedUpdate = FixedUpdate;

        new GUIController();

        CameraController.ResizeCamera(Mathf.Min(CameraController.GetWidthInMeters(1080 / 50f * Settings.FhdToHD), 1920 / 50f * Settings.FhdToHD));
        CameraController.cameraPosition = new Vector2(0, 0);

        UpdateController.Timer(0.1f, () => {
            Create();

            new SlideController(new Vector2(0, 0), new Vector2(height, 360 / 50f), SlideController.Mode.Slide, 3);
        });
    }
示例#23
0
 public void MagnetizeRow(int?row, int?col)
 {
     if (row != null && col != null)
     {
         AchievementController.MagnetizedTileCount = 0;
         int r = (int)row;
         GameManager.GetGameManager.MagnetizeRow(r);
         int c = (int)col;
         for (int i = 0; i < GameBoardMatrix.row[r].column.Length; i++)
         {
             if (i != col && GameBoardMatrix.row[r].column[i] != null)
             {
                 GameBoardMatrix.row[r].column[i].Magnetize();
                 AchievementController.MagnetizingRow();
             }
         }
     }
 }
示例#24
0
        public void PutAchievement()
        {
            // Arrange
            AchievementController controller = new AchievementController();

            Achievement AchievementObj = new Achievement
            {
                Name     = "Put request sucessfull",
                Comments = "Good Work",
                ID       = 1
            };
            var actResult = controller.Put(1, AchievementObj);
            // Act
            var result = actResult as OkNegotiatedContentResult <Achievement>;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Content.Name.Equals("Put request sucessfull"));
        }
        public AchievementControllerTests()
        {
            IQueryable <Achievement> achievements = _achievements.AsQueryable();

            _mockSet.As <IQueryable <Achievement> >().Setup(m => m.Provider).Returns(achievements.Provider);
            _mockSet.As <IQueryable <Achievement> >().Setup(m => m.Expression).Returns(achievements.Expression);
            _mockSet.As <IQueryable <Achievement> >().Setup(m => m.ElementType).Returns(achievements.ElementType);
            _mockSet.As <IQueryable <Achievement> >().Setup(m => m.GetEnumerator()).Returns(() => achievements.GetEnumerator());
            _mockSet.Setup(d => d.Add(It.IsAny <Achievement>())).Callback <Achievement>((s) => _achievements.Add(s));
            _mockSet.Setup(d => d.Remove(It.IsAny <Achievement>())).Callback <Achievement>((s) => _achievements.Remove(s));

            _dbMock.Setup(x => x.SaveChanges()).Returns(1).Verifiable();
            _dbMock.Setup(x => x.Achievements).Returns(_mockSet.Object);


            AchievementRepository repository = new AchievementRepository(_dbMock.Object);

            _controller = new AchievementController(repository);
        }
示例#26
0
    void Awake()
    {
        if (Instance == null)
        {
            Instance = this;
        }
        Screen.sleepTimeout         = SleepTimeout.NeverSleep;
        Application.targetFrameRate = 30;

        c_AchievementCtrl = AchievementController.Instance;
        c_FightCtrl       = FightController.Instance;
        c_FontCtrl        = FontController.Instance;
        c_LayoutCtrl      = LayoutController.Instance;
        c_LanguageCtrl    = LanguageController.Instance;
        c_SkinCtrl        = SkinController.Instance;
        c_TextColorCtrl   = TextColorController.Instance;
        c_RecordCtrl      = RecordController.Instance;
        c_RankCtrl        = RankController.Instance;
        c_GuiCtrl         = GuiController.Instance;
        c_BluetoothCtrl   = BluetoothController.Instance;
    }
    void initAchievement()
    {
        AutoDestroy.destroyChildren(tempAchievement, "Collider Drag", "Scroll Bar");

        int i = 0;

        foreach (System.Collections.Generic.KeyValuePair <int, AchievementData> iterator in ReadDatabase.Instance.AchievementInfo)
        {
            GameObject achievement = Instantiate(LevelManager.Instance.Model.Achievement) as GameObject;
            achievement.transform.parent     = tempAchievement.transform;
            achievement.transform.localScale = Vector3.one;

            //Anchor
            UIAnchor uiAnchor = achievement.GetComponent <UIAnchor>();
            uiAnchor.container      = tempAchievement;
            uiAnchor.relativeOffset = new Vector2(LevelConfig.AnchorAchievementX,
                                                  LevelConfig.AnchorAchievementY - i * LevelConfig.AnchorAchievementDistanceY);

            //Stretch
            achievement.GetComponent <UIStretch>().container = tempAchievement;

            //Drag object
            achievement.GetComponent <UIDragScrollView>().scrollView = tempAchievement.GetComponent <UIScrollView>();

            AchievementController controller = achievement.GetComponent <AchievementController>();
            controller.spriteIcon.spriteName = iterator.Value.Icon;
            controller.labelName.text        = iterator.Value.Name;
            controller.labelSub.text         = LevelConfig.getAchievementTextValue(iterator.Key, iterator.Value,
                                                                                   PlayerInfo.Instance.listAchievement[iterator.Key]);
            controller.labelReward.text = iterator.Value.RewardAmount.ToString();
            controller.completeIcon.SetActive(false);

            checkAchievement(controller, iterator.Key, iterator.Value, PlayerInfo.Instance.listAchievement[iterator.Key]);

            i++;
        }
    }
    void Start()
    {
        achievementController = this;

        achievements = new GameObject[levelAmount][];
        for (int k = 0; k < levelAmount; k++)
        {
            achievements[k] = new GameObject[achievementsAmount];
        }

        Vector2 location = new Vector2(0.3f, 0.7f);
        for (int x = 0; x < levelAmount; x++)
        {
            for (int y = 0; y < achievementsAmount; y++)
            {
                location.x = (0.12f)*y + 0.3f;
                achievements[x][y] = Instantiate(gridButton, location, Quaternion.identity ) as GameObject;
                achievements[x][y].guiTexture.color = colours[x+1];
                achievements[x][y].name = ("Level" + (x+1) + "Achievement" + (y+1));

            }
            location.y -= 0.1f;
        }
    }
示例#29
0
    public IEnumerator GetAchievements(Character character, Action callback)
    {
        foreach (Transform child in GridAchievements.transform)
        {
            // DESTROY ALL CHILDREN
            GameObject.Destroy(child.gameObject);
        }
        string url   = String.Format("https://backend.josiahkhoo.me/api/characters/achievements/{0}", character.id.ToString());
        string token = string.Format("Token {0}", PlayerPrefs.GetString("token", "").ToString());

        using (var request = UnityWebRequest.Get(url))
        {
            request.SetRequestHeader("Authorization", token);
            yield return(request.SendWebRequest());

            var response = JSON.Parse(request.downloadHandler.text);
            // Debug.Log(response);
            if (request.responseCode == 200)
            {
                print(response);
                for (int i = 0; i < response.Count; i++)
                {
                    var                   achievementJson   = response[i];
                    GameObject            achievementOption = Instantiate(AchievementPrefab) as GameObject;
                    AchievementController controller        = achievementOption.GetComponent <AchievementController>();
                    controller.Title.text       = achievementJson["name"];
                    controller.Value.text       = achievementJson["value"];
                    controller.transform.parent = GridAchievements.transform;
                }
            }
        }
        if (callback != null)
        {
            callback();
        }
    }
示例#30
0
    protected void AchievementRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "getaward")
        {
            String Text           = null;
            Int32  award_group_id = Convert.ToInt32(e.CommandArgument);

            AchievementGroupController Controller = AchievementController.GetAchievementGroup(m_szUserId, award_group_id);

            String desc  = Controller.Description;
            Int32  point = Controller.Award;

            Controller.GetAward();

            Text = "获得成就\"" + desc + "\"";
            RecordController.AddDetail(m_szUserId, ModelParam.POINT_GET_RECORD_ID, Text, point);

            AchievementRepeater.DataBind();

            ClientScript.RegisterStartupScript(ClientScript.GetType(),
                                               "GetAwardScript",
                                               "<script>swal('" + Text + "').then((value) => {window.location.href='Achievement.aspx';});</script>");
        }
    }
示例#31
0
    // Use this for initialization
    void Start()
    {
        #region GUI

        bgRect                = new Rect(0, 0, Screen.width, Screen.height);
        bgTexture             = activeSkin.customStyles[1].normal.background;
        achievementController = gameObject.GetComponent <AchievementController>();
        page = 0;

        // Calculate screen padding
        float screenPadding = Screen.height * screenPaddingPercentage;

        // Frame
        frameTexture = activeSkin.customStyles[2].normal.background;
        float frameHeight  = Screen.height - screenPadding * 2;
        float frameWidth   = frameHeight * ((float)frameTexture.width / (float)frameTexture.height);
        float frameXOffset = (Screen.width - frameWidth) * 0.5f;
        float frameYOffset = screenPadding;
        frameRect = new Rect(frameXOffset, frameYOffset, frameWidth, frameHeight);

        // Title
        titleStyle          = activeSkin.customStyles[3];
        titleStyle.fontSize = (int)(Screen.height * titleFontScale);
        Vector2 size         = activeSkin.customStyles[3].CalcSize(new GUIContent(title));
        float   titleXOffset = frameXOffset + frameWidth * 0.51f - size.x * 0.5f;
        float   titleYOffset = frameYOffset + frameHeight * 0.13f;
        titleRect = new Rect(titleXOffset, titleYOffset, size.x, size.y);

        // Sub-Title
        subtitleStyle          = activeSkin.customStyles[4];
        subtitleStyle.fontSize = (int)(Screen.height * subtitleFontScale);
        Vector2 subsize         = activeSkin.customStyles[4].CalcSize(new GUIContent(subtitle));
        float   subtitleXOffset = frameXOffset + frameWidth * 0.51f - subsize.x * 0.5f;
        float   subtitleYOffset = titleYOffset + size.y;
        subtitleRect = new Rect(subtitleXOffset, subtitleYOffset, subsize.x, subsize.y);

        // Achievements
        achievementTitleStyle          = activeSkin.customStyles[7];
        achievementDescStyle           = activeSkin.customStyles[8];
        achievementTitleStyle.fontSize = (int)(Screen.height * achievementFontScale);
        achievementDescStyle.fontSize  = (int)(Screen.height * achievementDFontScale);
        int numOfAchievements = Game.instance.achievements.Length;
        achievementTitleRect = new Rect[numOfAchievements];
        achievementDescRect  = new Rect[numOfAchievements];
        achievementTitleStr  = new string[numOfAchievements];
        achievementDescStr   = new string[numOfAchievements];
        iconsTexture         = new Texture[numOfAchievements];
        iconsRect            = new Rect[numOfAchievements];
        capsulesRect         = new Rect[numOfAchievements];
        capsulesTexture      = new Texture[numOfAchievements];
        float achievementTitleHeight = activeSkin.customStyles[7].CalcSize(new GUIContent(Game.instance.achievements[0].title)).y;
        float iconHeight             = achievementTitleHeight * 2;
        float iconWidth    = iconHeight * ((float)iconText.width / (float)iconText.height);
        float iconXOffset1 = frameXOffset + iconWidth * 2;
        float iconXOffset2 = Screen.width * 0.5f + screenPadding;
        float iconYOffset;
        float achievementTitleXOffset1 = iconXOffset1 + iconWidth + screenPadding;
        float achievementTitleXOffset2 = iconXOffset2 + iconWidth + screenPadding;
        float achievementTitleYOffset;
        float achievementDescYOffset;
        float capsuleHeight  = iconHeight;
        float capsuleWidth   = capsuleHeight * ((float)activeSkin.customStyles[9].normal.background.width / (float)activeSkin.customStyles[9].normal.background.height);
        float capsuleXOffset = 0f;
        float capsuleYOffset = 0f;
        int   j = 0;
        for (int i = 0; i < numOfAchievements; i++)
        {
            if (!Game.instance.achievements[i].hidden)
            {
                // choose which icon to output
                iconsTexture[j] = Game.instance.achievements[i].icon;
                Vector2 achievementTitleSize = activeSkin.customStyles[7].CalcSize(new GUIContent(Game.instance.achievements[i].title));
                Vector2 achievementDescSize  = activeSkin.customStyles[7].CalcSize(new GUIContent(Game.instance.achievements[i].ToString()));
                achievementTitleStr[j] = Game.instance.achievements[i].title;
                achievementDescStr[j]  = Game.instance.achievements[i].ToString();
                int test = i % 10;
                if ((j % 10) == 0)
                {
                    iconYOffset             = subtitleYOffset + subsize.y + screenPadding * 2;
                    iconsRect[j]            = new Rect(iconXOffset1, iconYOffset, iconWidth, iconHeight);
                    achievementTitleYOffset = iconYOffset;
                    achievementDescYOffset  = achievementTitleYOffset + achievementTitleHeight;
                    achievementTitleRect[j] = new Rect(achievementTitleXOffset1, achievementTitleYOffset, achievementTitleSize.x, achievementTitleSize.y);
                    achievementDescRect[j]  = new Rect(achievementTitleXOffset1, achievementDescYOffset, achievementDescSize.x, achievementDescSize.y);
                    capsuleXOffset          = achievementTitleXOffset1 + achievementTitleSize.x;
                    capsuleYOffset          = iconYOffset - achievementTitleSize.y;
                }
                else if ((j % 10) == 1)
                {
                    iconYOffset             = subtitleYOffset + subsize.y + screenPadding * 2;
                    iconsRect[j]            = new Rect(iconXOffset2, iconYOffset, iconWidth, iconHeight);
                    achievementTitleYOffset = iconYOffset;
                    achievementDescYOffset  = achievementTitleYOffset + achievementTitleHeight;
                    achievementTitleRect[j] = new Rect(achievementTitleXOffset2, achievementTitleYOffset, achievementTitleSize.x, achievementTitleSize.y);
                    achievementDescRect[j]  = new Rect(achievementTitleXOffset2, achievementDescYOffset, achievementDescSize.x, achievementDescSize.y);
                    capsuleXOffset          = achievementTitleXOffset2 + achievementTitleSize.x;
                    capsuleYOffset          = iconYOffset - achievementTitleSize.y;
                }
                else if ((j % 10) == 2)
                {
                    iconYOffset             = subtitleYOffset + subsize.y + screenPadding * 2 + iconHeight + screenPadding * 2;
                    iconsRect[j]            = new Rect(iconXOffset1, iconYOffset, iconWidth, iconHeight);
                    achievementTitleYOffset = iconYOffset;
                    achievementDescYOffset  = achievementTitleYOffset + achievementTitleHeight;
                    achievementTitleRect[j] = new Rect(achievementTitleXOffset1, achievementTitleYOffset, achievementTitleSize.x, achievementTitleSize.y);
                    achievementDescRect[j]  = new Rect(achievementTitleXOffset1, achievementDescYOffset, achievementDescSize.x, achievementDescSize.y);
                    capsuleXOffset          = achievementTitleXOffset1 + achievementTitleSize.x;
                    capsuleYOffset          = iconYOffset - achievementTitleSize.y;
                }
                else if ((j % 10) == 3)
                {
                    iconYOffset             = subtitleYOffset + subsize.y + screenPadding * 2 + iconHeight + screenPadding * 2;
                    iconsRect[j]            = new Rect(iconXOffset2, iconYOffset, iconWidth, iconHeight);
                    achievementTitleYOffset = iconYOffset;
                    achievementDescYOffset  = achievementTitleYOffset + achievementTitleHeight;
                    achievementTitleRect[j] = new Rect(achievementTitleXOffset2, achievementTitleYOffset, achievementTitleSize.x, achievementTitleSize.y);
                    achievementDescRect[j]  = new Rect(achievementTitleXOffset2, achievementDescYOffset, achievementDescSize.x, achievementDescSize.y);
                    capsuleXOffset          = achievementTitleXOffset2 + achievementTitleSize.x;
                    capsuleYOffset          = iconYOffset - achievementTitleSize.y;
                }
                else if ((j % 10) == 4)
                {
                    iconYOffset             = subtitleYOffset + subsize.y + screenPadding * 2 + iconHeight * 2 + screenPadding * 4;
                    iconsRect[j]            = new Rect(iconXOffset1, iconYOffset, iconWidth, iconHeight);
                    achievementTitleYOffset = iconYOffset;
                    achievementDescYOffset  = achievementTitleYOffset + achievementTitleHeight;
                    achievementTitleRect[j] = new Rect(achievementTitleXOffset1, achievementTitleYOffset, achievementTitleSize.x, achievementTitleSize.y);
                    achievementDescRect[j]  = new Rect(achievementTitleXOffset1, achievementDescYOffset, achievementDescSize.x, achievementDescSize.y);
                    capsuleXOffset          = achievementTitleXOffset1 + achievementTitleSize.x;
                    capsuleYOffset          = iconYOffset - achievementTitleSize.y;
                }
                else if ((j % 10) == 5)
                {
                    iconYOffset             = subtitleYOffset + subsize.y + screenPadding * 2 + iconHeight * 2 + screenPadding * 4;
                    iconsRect[j]            = new Rect(iconXOffset2, iconYOffset, iconWidth, iconHeight);
                    achievementTitleYOffset = iconYOffset;
                    achievementDescYOffset  = achievementTitleYOffset + achievementTitleHeight;
                    achievementTitleRect[j] = new Rect(achievementTitleXOffset2, achievementTitleYOffset, achievementTitleSize.x, achievementTitleSize.y);
                    achievementDescRect[j]  = new Rect(achievementTitleXOffset2, achievementDescYOffset, achievementDescSize.x, achievementDescSize.y);
                    capsuleXOffset          = achievementTitleXOffset2 + achievementTitleSize.x;
                    capsuleYOffset          = iconYOffset - achievementTitleSize.y;
                }
                else if ((j % 10) == 6)
                {
                    iconYOffset             = subtitleYOffset + subsize.y + screenPadding * 2 + iconHeight * 3 + screenPadding * 6;
                    iconsRect[j]            = new Rect(iconXOffset1, iconYOffset, iconWidth, iconHeight);
                    achievementTitleYOffset = iconYOffset;
                    achievementDescYOffset  = achievementTitleYOffset + achievementTitleHeight;
                    achievementTitleRect[j] = new Rect(achievementTitleXOffset1, achievementTitleYOffset, achievementTitleSize.x, achievementTitleSize.y);
                    achievementDescRect[j]  = new Rect(achievementTitleXOffset1, achievementDescYOffset, achievementDescSize.x, achievementDescSize.y);
                    capsuleXOffset          = achievementTitleXOffset1 + achievementTitleSize.x;
                    capsuleYOffset          = iconYOffset - achievementTitleSize.y;
                }
                else if ((j % 10) == 7)
                {
                    iconYOffset             = subtitleYOffset + subsize.y + screenPadding * 2 + iconHeight * 3 + screenPadding * 6;
                    iconsRect[j]            = new Rect(iconXOffset2, iconYOffset, iconWidth, iconHeight);
                    achievementTitleYOffset = iconYOffset;
                    achievementDescYOffset  = achievementTitleYOffset + achievementTitleHeight;
                    achievementTitleRect[j] = new Rect(achievementTitleXOffset2, achievementTitleYOffset, achievementTitleSize.x, achievementTitleSize.y);
                    achievementDescRect[j]  = new Rect(achievementTitleXOffset2, achievementDescYOffset, achievementDescSize.x, achievementDescSize.y);
                    capsuleXOffset          = achievementTitleXOffset2 + achievementTitleSize.x;
                    capsuleYOffset          = iconYOffset - achievementTitleSize.y;
                }
                else if ((j % 10) == 8)
                {
                    iconYOffset             = subtitleYOffset + subsize.y + screenPadding * 2 + iconHeight * 4 + screenPadding * 8;
                    iconsRect[j]            = new Rect(iconXOffset1, iconYOffset, iconWidth, iconHeight);
                    achievementTitleYOffset = iconYOffset;
                    achievementDescYOffset  = achievementTitleYOffset + achievementTitleHeight;
                    achievementTitleRect[j] = new Rect(achievementTitleXOffset1, achievementTitleYOffset, achievementTitleSize.x, achievementTitleSize.y);
                    achievementDescRect[j]  = new Rect(achievementTitleXOffset1, achievementDescYOffset, achievementDescSize.x, achievementDescSize.y);
                    capsuleXOffset          = achievementTitleXOffset1 + achievementTitleSize.x;
                    capsuleYOffset          = iconYOffset - achievementTitleSize.y;
                }
                else if ((j % 10) == 9)
                {
                    iconYOffset             = subtitleYOffset + subsize.y + screenPadding * 2 + iconHeight * 4 + screenPadding * 8;
                    iconsRect[j]            = new Rect(iconXOffset2, iconYOffset, iconWidth, iconHeight);
                    achievementTitleYOffset = iconYOffset;
                    achievementDescYOffset  = achievementTitleYOffset + achievementTitleHeight;
                    achievementTitleRect[j] = new Rect(achievementTitleXOffset2, achievementTitleYOffset, achievementTitleSize.x, achievementTitleSize.y);
                    achievementDescRect[j]  = new Rect(achievementTitleXOffset2, achievementDescYOffset, achievementDescSize.x, achievementDescSize.y);
                    capsuleXOffset          = achievementTitleXOffset2 + achievementTitleSize.x;
                    capsuleYOffset          = iconYOffset - achievementTitleSize.y;
                }

                if (Game.instance.achievements[i].capsuleColor == Rarity.common)
                {
                    capsulesTexture[j] = activeSkin.customStyles[9].normal.background;
                    capsulesRect[j]    = new Rect(capsuleXOffset, capsuleYOffset, capsuleWidth, capsuleHeight);
                }
                else if (Game.instance.achievements[i].capsuleColor == Rarity.rare)
                {
                    capsulesTexture[j] = activeSkin.customStyles[10].normal.background;
                    capsulesRect[j]    = new Rect(capsuleXOffset, capsuleYOffset, capsuleWidth, capsuleHeight);
                }
                else if (Game.instance.achievements[i].capsuleColor == Rarity.challenge)
                {
                    capsulesTexture[j] = activeSkin.customStyles[11].normal.background;
                    capsulesRect[j]    = new Rect(capsuleXOffset, capsuleYOffset, capsuleWidth, capsuleHeight);
                }
                else
                {
                    capsulesTexture[j] = null;
                }

                j++;
            }
            maxPage = j / 10;
        }

        // Buttons
        float btnBackHeight = Screen.height * 0.1f;
        float btnBackWidth  = btnBackHeight * ((float)activeSkin.customStyles[0].normal.background.width /
                                               (float)activeSkin.customStyles[0].normal.background.height);
        btnBackRect = new Rect(screenPadding, screenPadding, btnBackWidth, btnBackHeight);

        float btnControlHeight = Screen.height * 0.2f;
        float btnControlWidth  = btnControlHeight * ((float)activeSkin.customStyles[5].normal.background.width /
                                                     (float)activeSkin.customStyles[5].normal.background.height);
        btnPreviousRect = new Rect(screenPadding, (Screen.height - btnControlHeight) * 0.5f, btnControlWidth, btnControlHeight);
        btnNextRect     = new Rect(Screen.width - screenPadding - btnControlWidth, (Screen.height - btnControlHeight) * 0.5f, btnControlWidth, btnControlHeight);

        // Initialise button scalers
        btnBackScale = new ButtonHandler(btnBackRect, gameObject, 0.9f, "Back_ScaleButton");

        #endregion
    }
示例#32
0
 // Use this for initialization
 void Start()
 {
     scorer = GameObject.Find("Scorer").GetComponent<AchievementController>();
 }
示例#33
0
        /// <summary>
        /// Initializes screen
        /// </summary>
        public override void Initialize()
        {
            // Create the scene and add it
            _camera = new Camera2D(this.Game);
            _camera.Initialize();
            _fxcamera = new Camera2D(this.Game);
            _fxcamera.Initialize();

            _scene = new Scene(this.Game, _camera);
            _scene.TransitionPosition = 0;
            _scene.TransitionOnTime   = TimeSpan.FromSeconds(1);
            _scene.TransitionOffTime  = TimeSpan.FromSeconds(1);
            _scene.OffTransition();
            _fx           = new World(Vector2.UnitY * 10);
            _fxStaticBody = new Body(_fx)
            {
                Restitution = 0, Mass = 0, BodyType = BodyType.Static, Friction = 0.5f                            /*, Position =
                                                                                                                   * ConvertUnits.ToSimUnits(Vector2.UnitX * (_width - DataGrid.WidthInPixels) / 2f + Vector2.UnitY * 150)*/
            };

            // Create controllers
            _timeController        = new TimeController(this.Game);
            _pointsController      = new PointsController(this.Game);
            _dataGrid              = DataGrid.CreateDataGrid(this.Game, _fxStaticBody, _width / 70 - 1, _height / 49 - 4);
            _peaController         = new PeaController(this.Game);
            _inputController       = new InputController(this.Game);
            _achievementController = new AchievementController(this.Game);

            // Initialize controllers
            _timeController.Initialize();
            _pointsController.Initialize();
            _dataGrid.Initialize();
            _peaController.Initialize();
            _inputController.Initialize();
            _achievementController.Initialize();

            // Register controllers
            _dataGrid.Register(_peaController);

#if DEBUG && _
            DataBlock testBlock  = _dataGrid.Add(new Point(0, 0), BlockType.Normal);
            DataBlock testBlock2 = _dataGrid.Add(new Point(0, 1), BlockType.Gel);
            DataBlock testBlock3 = _dataGrid.Add(new Point(1, 1), BlockType.Normal);
            DataBlock testBlock4 = _dataGrid.Add(new Point(2, 1), BlockType.RightRamp);
            DataBlock testBlock5 = _dataGrid.Add(new Point(3, 2), BlockType.Normal);
            DataBlock testBlock6 = _dataGrid.Add(new Point(DataGrid.Width - 1, DataGrid.Height - 1), BlockType.Normal);
#endif
            // Create the peas
            DataPea pea1 = new DataPea(this.Game, _fx, _peaController);
            _pointsController.Register(pea1);
            _achievementController.Register(pea1);

            pea1.Initialize();

            this.Game.Components.Add(pea1);

            DataPea pea2 = new DataPea(this.Game, _fx, _peaController);
            DataPea pea3 = new DataPea(this.Game, _fx, _peaController);
            DataPea pea4 = new DataPea(this.Game, _fx, _peaController);
            DataPea pea5 = new DataPea(this.Game, _fx, _peaController);

            // This needs to be done BEFORE sprites of pea
            _pointsController.Register(pea2);
            _pointsController.Register(pea3);
            _pointsController.Register(pea4);
            _pointsController.Register(pea5);

            _achievementController.Register(pea2);
            _achievementController.Register(pea3);
            _achievementController.Register(pea4);
            _achievementController.Register(pea5);

            pea2.Initialize();
            pea3.Initialize();
            pea4.Initialize();
            pea5.Initialize();

            this.Game.Components.Add(pea2);
            this.Game.Components.Add(pea3);
            this.Game.Components.Add(pea4);
            this.Game.Components.Add(pea5);

            // Create layers
            _sceneryLayer = new SceneLayer(this.Game, _scene.Camera)
            {
                MoveSpeed = 0f, Distance = 0.9f
            };
            _levelLayer = new SceneLayer(this.Game, _scene.Camera)
            {
                MoveSpeed = 0f, Distance = 0.6f
            };
            _peasLayer = new SceneLayer(this.Game, _scene.Camera)
            {
                MoveSpeed = 0f, Distance = 0.3f
            };
            _hudLayer = new SceneLayer(this.Game, _scene.Camera)
            {
                MoveSpeed = 0f, Distance = 0.1f
            };

            // Create sprites
            _spriteGrid = new SpritesetGrid(_levelLayer)
            {
                Position = Vector2.UnitX * (_width - DataGrid.WidthInPixels) / 2f + Vector2.UnitY * 150
            };
            SpritePea.BaseOffset = _spriteGrid.Position;

            _peasLayer.Add(new SpritePea(_peasLayer, pea1, _pointsController));

#if !DEBUG || !TEST
            _peasLayer.Add(new SpritePea(_peasLayer, pea2, _pointsController));
            _peasLayer.Add(new SpritePea(_peasLayer, pea3, _pointsController));
            _peasLayer.Add(new SpritePea(_peasLayer, pea4, _pointsController));
            _peasLayer.Add(new SpritePea(_peasLayer, pea5, _pointsController));
#endif

#if DEBUG && TEST
            for (int i = 0; i < DataGrid.Width; i++)
            {
                if (new int[] { 3, 4, 5, 10, 12, 14 }.Contains(i) == false)
                {
                    DataBlock b = _dataGrid.Add(new Point(i, DataGrid.Height - 1), BlockType.Normal);
                    //_spriteGrid.Add(new SpriteBlock(_levelLayer, b));

                    if (new int[] { 0, 1, 2, 5, 8, 15 }.Contains(i))
                    {
                        b = _dataGrid.Add(new Point(i, DataGrid.Height - 2), BlockType.Normal);
                        //_spriteGrid.Add(new SpriteBlock(_levelLayer, b));
                    }

                    if (new int[] { 0, 15 }.Contains(i))
                    {
                        b = _dataGrid.Add(new Point(i, DataGrid.Height - 3), BlockType.Gel);
                        //_spriteGrid.Add(new SpriteBlock(_levelLayer, b));
                    }

                    if (new int[] { 0, 15 }.Contains(i))
                    {
                        b = _dataGrid.Add(new Point(i, DataGrid.Height - 4), BlockType.Gel);
                        //_spriteGrid.Add(new SpriteBlock(_levelLayer, b));
                    }
                }
            }


            DataBlock jump = _dataGrid.Add(new Point(3, 7), BlockType.Normal);
            //_spriteGrid.Add(new SpriteBlock(_levelLayer, jump));

            DataBlock ramp = _dataGrid.Add(new Point(1, 8), BlockType.RightRamp);
            //_spriteGrid.Add(new SpriteBlock(_levelLayer, ramp));

            //DataBlock gel = _dataGrid.Add(new Point(5, 10), BlockType.LeftRamp);
            //_spriteGrid.Add(new SpriteBlock(_levelLayer, gel));
#else
            // Some boundary blocks
            _dataGrid.Add(new Point(0, DataGrid.Height - 1), BlockType.Gel);
            _dataGrid.Add(new Point(DataGrid.Width - 1, DataGrid.Height - 1), BlockType.Gel);
            _dataGrid.Add(new Point(0, DataGrid.Height - 2), BlockType.Gel);
            _dataGrid.Add(new Point(DataGrid.Width - 1, DataGrid.Height - 2), BlockType.Gel);
#endif

            SpriteToolbox toolbox = new SpriteToolbox(_hudLayer)
            {
                Position = new Vector2(_width - (1280 - 1220),
                                       (Single)Math.Ceiling(150 * (_height / 720f)))
            };
            SpritesetHud hud = new SpritesetHud(_hudLayer, _pointsController, _inputController.State, _width, _height);


            // Register sprites at inputControllers
            _inputController.Register(_spriteGrid);
            _inputController.Register(toolbox);
            _inputController.Register(_camera, _width, _height);

            foreach (var blockRow in _dataGrid.Grid)
            {
                foreach (var block in blockRow)
                {
                    block.Place(block.BlockType, BlockState.Placed); // Direct placing;
                    _spriteGrid.Add(new SpriteBlock(_levelLayer, block));
                }
            }

            // Add the layers
            _scene.Add(_sceneryLayer);
            _scene.Add(_levelLayer);
            _scene.Add(_peasLayer);
            _scene.Add(_hudLayer);

            // Add the content
            Sprite background = new Sprite(_sceneryLayer, "Graphics/Background");
            background.Position = new Vector2(_width / 2f, _height / 2f);
            background.Origin   = new Vector2(1280f / 2f, 720f / 2f);
            background.Scale    = Math.Max(_width / 1280f, _height / 720f);

            Sprite splate = new Sprite(_sceneryLayer, "Graphics/Plate");
            splate.Position = new Vector2(_width / 2f, _height / 2f);
            splate.Origin   = new Vector2(1280f / 2f, 720f / 2f);
            splate.Scale    = Math.Max(_width / 1280f, _height / 720f);

            _sceneryLayer.Add(background);
            _sceneryLayer.Add(splate);
            _levelLayer.Add(_spriteGrid);
            _hudLayer.Add(toolbox);
            _hudLayer.Add(hud);

            // Bottom plate physics
            var plate = FixtureFactory.AttachRectangle(ConvertUnits.ToSimUnits(_width), ConvertUnits.ToSimUnits(20), 1f,
                                                       ConvertUnits.ToSimUnits(Vector2.UnitY * (49 * (DataGrid.Height - 3) + _spriteGrid.Position.Y + 5) + (_width / 2 - _spriteGrid.Position.X) * Vector2.UnitX), _fxStaticBody);
            plate.Restitution = 0;
            plate.Friction    = 0.5f;

            // Initializes scene and so on
            base.Initialize();

            _scene.Initialize();
            _camera.Position   = new Vector2(_width / 2f, _height / 2f);
            _fxcamera.Position = new Vector2(_width / 2f, _height / 2f) - _spriteGrid.Position; // + ConvertUnits.ToSimUnits(_spriteGrid.Position);
            _camera.Jump2Target();
            _fxcamera.Jump2Target();

            #if DEBUG && !SILVERLIGHT
            view = new DebugViewXNA(_fx);
            view.AppendFlags(FarseerPhysics.DebugViewFlags.CenterOfMass | FarseerPhysics.DebugViewFlags.DebugPanel | FarseerPhysics.DebugViewFlags.PerformanceGraph | FarseerPhysics.DebugViewFlags.PolygonPoints);
            #endif
            // Add components
            this.Game.Components.Add(_peaController);
            this.Game.Components.Add(_timeController);
            this.Game.Components.Add(_inputController);
            this.Game.Components.Add(_pointsController);
            this.Game.Components.Add(_achievementController);
            this.Game.Components.Add(_camera);
            this.Game.Components.Add(_fxcamera);
            this.Game.Components.Add(_dataGrid);
            this.Game.Components.Add(_scene);

            // Add popups
            _achievementController.OnCompletedAchievement += new AchievementCompletedHandler(_achievementController_OnCompletedAchievement);

            // Add overlay
            _overlay          = new PauseOverlay(_camera, _width, _height);
            _overlay.Exiting += new EventHandler(_overlay_Exiting);

            // Events
            this.Exited           += new EventHandler(PeaScreen_Exited);
            this.OnEnabledChanged += new BooleanDelegate(PeaScreen_OnEnabledChanged);
            this.OnVisibleChanged += new BooleanDelegate(PeaScreen_OnVisibleChanged);

            // Add end
            _pointsController.OnReachedGoal += new Action(_pointsController_OnReachedGoal);

            this.IsEnabled = false;
            this.IsVisible = false;
        }
示例#34
0
 public PlayerUI(UnitBar hpBar, UnitBar energyBar, AchievementController achController)
 {
     this.hpBar         = hpBar;
     this.energyBar     = energyBar;
     this.achController = achController;
 }
示例#35
0
 // Use this for initialization
 void Start()
 {
     textView = GameObject.Find("terminalText");
     textController = textView.GetComponent<TerminalTextController>();
     achievement = GameObject.Find("achievement");
     achievementController = achievement.GetComponent<AchievementController>();
     storage = new ArrayList();
     InitializePlay();
     ParseAnalytics.TrackAppOpenedAsync();
 }
示例#36
0
        /// <summary>
        /// Initializes screen
        /// </summary>
        public override void Initialize()
        {
            // Create the scene and add it
            _camera = new Camera2D(this.Game);
            _camera.Initialize();
            _fxcamera = new Camera2D(this.Game);
            _fxcamera.Initialize();

            _scene = new Scene(this.Game, _camera);
            _scene.TransitionPosition = 0;
            _scene.TransitionOnTime = TimeSpan.FromSeconds(1);
            _scene.TransitionOffTime = TimeSpan.FromSeconds(1);
            _scene.OffTransition();
            _fx = new World(Vector2.UnitY * 10);
            _fxStaticBody = new Body(_fx) { Restitution = 0, Mass = 0, BodyType = BodyType.Static, Friction = 0.5f/*, Position = 
                ConvertUnits.ToSimUnits(Vector2.UnitX * (_width - DataGrid.WidthInPixels) / 2f + Vector2.UnitY * 150)*/ };
           
            // Create controllers
            _timeController = new TimeController(this.Game);
            _pointsController = new PointsController(this.Game);
            _dataGrid = DataGrid.CreateDataGrid(this.Game, _fxStaticBody, _width / 70 - 1, _height / 49 - 4);
            _peaController = new PeaController(this.Game);
            _inputController = new InputController(this.Game);
            _achievementController = new AchievementController(this.Game);

            // Initialize controllers
            _timeController.Initialize();
            _pointsController.Initialize();
            _dataGrid.Initialize();
            _peaController.Initialize();
            _inputController.Initialize();
            _achievementController.Initialize();

            // Register controllers
            _dataGrid.Register(_peaController);

#if DEBUG && _
            
            DataBlock testBlock = _dataGrid.Add(new Point(0, 0), BlockType.Normal);
            DataBlock testBlock2 = _dataGrid.Add(new Point(0, 1), BlockType.Gel);
            DataBlock testBlock3 = _dataGrid.Add(new Point(1, 1), BlockType.Normal);
            DataBlock testBlock4 = _dataGrid.Add(new Point(2, 1), BlockType.RightRamp);
            DataBlock testBlock5 = _dataGrid.Add(new Point(3, 2), BlockType.Normal);
            DataBlock testBlock6 = _dataGrid.Add(new Point(DataGrid.Width - 1, DataGrid.Height - 1), BlockType.Normal);
#endif
            // Create the peas
            DataPea pea1 = new DataPea(this.Game, _fx, _peaController);
            _pointsController.Register(pea1);
            _achievementController.Register(pea1);

            pea1.Initialize();

            this.Game.Components.Add(pea1);

            DataPea pea2 = new DataPea(this.Game, _fx, _peaController);
            DataPea pea3 = new DataPea(this.Game, _fx, _peaController);
            DataPea pea4 = new DataPea(this.Game, _fx, _peaController);
            DataPea pea5 = new DataPea(this.Game, _fx, _peaController);

            // This needs to be done BEFORE sprites of pea
            _pointsController.Register(pea2);
            _pointsController.Register(pea3);
            _pointsController.Register(pea4);
            _pointsController.Register(pea5);

            _achievementController.Register(pea2);
            _achievementController.Register(pea3);
            _achievementController.Register(pea4);
            _achievementController.Register(pea5);

            pea2.Initialize();
            pea3.Initialize();
            pea4.Initialize();
            pea5.Initialize();

            this.Game.Components.Add(pea2);
            this.Game.Components.Add(pea3);
            this.Game.Components.Add(pea4);
            this.Game.Components.Add(pea5);

            // Create layers
            _sceneryLayer = new SceneLayer(this.Game, _scene.Camera) { MoveSpeed = 0f, Distance = 0.9f };
            _levelLayer = new SceneLayer(this.Game, _scene.Camera) { MoveSpeed = 0f, Distance = 0.6f };
            _peasLayer = new SceneLayer(this.Game, _scene.Camera) { MoveSpeed = 0f, Distance = 0.3f };
            _hudLayer = new SceneLayer(this.Game, _scene.Camera) { MoveSpeed = 0f, Distance = 0.1f };

            // Create sprites
            _spriteGrid = new SpritesetGrid(_levelLayer) { Position = Vector2.UnitX * (_width - DataGrid.WidthInPixels) / 2f + Vector2.UnitY * 150 };
            SpritePea.BaseOffset = _spriteGrid.Position;
            
            _peasLayer.Add(new SpritePea(_peasLayer, pea1, _pointsController));

#if !DEBUG || !TEST
            _peasLayer.Add(new SpritePea(_peasLayer, pea2, _pointsController));
            _peasLayer.Add(new SpritePea(_peasLayer, pea3, _pointsController));
            _peasLayer.Add(new SpritePea(_peasLayer, pea4, _pointsController));
            _peasLayer.Add(new SpritePea(_peasLayer, pea5, _pointsController));
#endif

#if DEBUG && TEST
            for (int i = 0; i < DataGrid.Width; i++)
            {
                if (new int[] { 3, 4, 5, 10, 12, 14 }.Contains(i) == false)
                {
                    DataBlock b = _dataGrid.Add(new Point(i, DataGrid.Height - 1), BlockType.Normal);
                    //_spriteGrid.Add(new SpriteBlock(_levelLayer, b));

                    if (new int[] { 0 , 1, 2, 5, 8, 15 }.Contains(i))
                    {
                        b = _dataGrid.Add(new Point(i, DataGrid.Height - 2), BlockType.Normal);
                        //_spriteGrid.Add(new SpriteBlock(_levelLayer, b));
                    }

                    if (new int[] { 0, 15 }.Contains(i))
                    {
                        b = _dataGrid.Add(new Point(i, DataGrid.Height - 3), BlockType.Gel);
                        //_spriteGrid.Add(new SpriteBlock(_levelLayer, b));
                    }

                    if (new int[] { 0, 15 }.Contains(i))
                    {
                        b = _dataGrid.Add(new Point(i, DataGrid.Height - 4), BlockType.Gel);
                        //_spriteGrid.Add(new SpriteBlock(_levelLayer, b));
                    }
                }
            }


            DataBlock jump = _dataGrid.Add(new Point(3, 7), BlockType.Normal);
            //_spriteGrid.Add(new SpriteBlock(_levelLayer, jump));

            DataBlock ramp = _dataGrid.Add(new Point(1, 8), BlockType.RightRamp);
            //_spriteGrid.Add(new SpriteBlock(_levelLayer, ramp));

            //DataBlock gel = _dataGrid.Add(new Point(5, 10), BlockType.LeftRamp);
            //_spriteGrid.Add(new SpriteBlock(_levelLayer, gel));
#else
            // Some boundary blocks
            _dataGrid.Add(new Point(0, DataGrid.Height - 1), BlockType.Gel);
            _dataGrid.Add(new Point(DataGrid.Width - 1, DataGrid.Height - 1), BlockType.Gel);
            _dataGrid.Add(new Point(0, DataGrid.Height - 2), BlockType.Gel);
            _dataGrid.Add(new Point(DataGrid.Width - 1, DataGrid.Height - 2), BlockType.Gel);
#endif

            SpriteToolbox toolbox = new SpriteToolbox(_hudLayer)
            {
                Position = new Vector2(_width - (1280 - 1220),
                    (Single)Math.Ceiling(150 * (_height / 720f)))
            };
            SpritesetHud hud = new SpritesetHud(_hudLayer, _pointsController, _inputController.State, _width, _height);


            // Register sprites at inputControllers
            _inputController.Register(_spriteGrid);
            _inputController.Register(toolbox);
            _inputController.Register(_camera, _width, _height);

            foreach (var blockRow in _dataGrid.Grid)
                foreach (var block in blockRow)
                {
                    block.Place(block.BlockType, BlockState.Placed); // Direct placing;
                    _spriteGrid.Add(new SpriteBlock(_levelLayer, block));
                }

            // Add the layers
            _scene.Add(_sceneryLayer);
            _scene.Add(_levelLayer);
            _scene.Add(_peasLayer);
            _scene.Add(_hudLayer);
            
            // Add the content
            Sprite background = new Sprite(_sceneryLayer, "Graphics/Background");
            background.Position = new Vector2(_width / 2f, _height / 2f);
            background.Origin = new Vector2(1280f / 2f, 720f / 2f);
            background.Scale = Math.Max(_width / 1280f, _height / 720f);

            Sprite splate = new Sprite(_sceneryLayer, "Graphics/Plate");
            splate.Position = new Vector2(_width / 2f, _height / 2f);
            splate.Origin = new Vector2(1280f / 2f, 720f / 2f);
            splate.Scale = Math.Max(_width / 1280f, _height / 720f);

            _sceneryLayer.Add(background);
            _sceneryLayer.Add(splate);
            _levelLayer.Add(_spriteGrid);
            _hudLayer.Add(toolbox);
            _hudLayer.Add(hud);

            // Bottom plate physics
            var plate = FixtureFactory.AttachRectangle(ConvertUnits.ToSimUnits(_width), ConvertUnits.ToSimUnits(20), 1f,
                ConvertUnits.ToSimUnits(Vector2.UnitY * (49 * (DataGrid.Height - 3) + _spriteGrid.Position.Y + 5) + (_width / 2 - _spriteGrid.Position.X) * Vector2.UnitX), _fxStaticBody);
            plate.Restitution = 0;
            plate.Friction = 0.5f;

            // Initializes scene and so on
            base.Initialize();

            _scene.Initialize();
            _camera.Position = new Vector2(_width / 2f, _height / 2f);
            _fxcamera.Position = new Vector2(_width / 2f, _height / 2f)-  _spriteGrid.Position; // + ConvertUnits.ToSimUnits(_spriteGrid.Position);
            _camera.Jump2Target();
            _fxcamera.Jump2Target();
            
            #if DEBUG && !SILVERLIGHT
                view = new DebugViewXNA(_fx);
                view.AppendFlags(FarseerPhysics.DebugViewFlags.CenterOfMass | FarseerPhysics.DebugViewFlags.DebugPanel | FarseerPhysics.DebugViewFlags.PerformanceGraph | FarseerPhysics.DebugViewFlags.PolygonPoints);
            #endif
            // Add components
            this.Game.Components.Add(_peaController);
            this.Game.Components.Add(_timeController);
            this.Game.Components.Add(_inputController);
            this.Game.Components.Add(_pointsController);
            this.Game.Components.Add(_achievementController);
            this.Game.Components.Add(_camera);
            this.Game.Components.Add(_fxcamera);
            this.Game.Components.Add(_dataGrid);
            this.Game.Components.Add(_scene);

            // Add popups
            _achievementController.OnCompletedAchievement += new AchievementCompletedHandler(_achievementController_OnCompletedAchievement);

            // Add overlay
            _overlay = new PauseOverlay(_camera, _width, _height);
            _overlay.Exiting += new EventHandler(_overlay_Exiting);
          
            // Events
            this.Exited += new EventHandler(PeaScreen_Exited);
            this.OnEnabledChanged += new BooleanDelegate(PeaScreen_OnEnabledChanged);
            this.OnVisibleChanged += new BooleanDelegate(PeaScreen_OnVisibleChanged);

            // Add end
            _pointsController.OnReachedGoal += new Action(_pointsController_OnReachedGoal);

            this.IsEnabled = false;
            this.IsVisible = false;            
        }
示例#37
0
 /// <summary>
 /// Temporário: desbloqueia todas as conquistas
 /// </summary>
 public void cheatButton()
 {
     AchievementController.lockUnlock();
 }
 void Start()
 {
     instance = this;
     DontDestroyOnLoad(this.gameObject);
 }