示例#1
0
        /// <summary>
        /// Builds a Billboard object
        /// </summary>
        public void Show()
        {
            if (mBillboard == null)
            {
                StyledQuad cardBackground = new StyledQuad
                                            (
                    "Quad",
                    GameFacade.Instance.RetrieveMediator <FashionGameGui>().GetNamedStyle(StyleName)
                                            );

                FashionCameraMediator cameraMediator = GameFacade.Instance.RetrieveMediator <FashionCameraMediator>();

                Billboard billboard = new Billboard();
                billboard.BillboardGameObject.layer = FashionMinigame.CLOTHING_LAYER;
                Material billboardMat = new Material(Shader.Find("GUI/Flat Color"));
                billboardMat.mainTexture = this.NormalTexture;
                billboard.SetMaterial(billboardMat);
                billboard.BillboardToCamera(cameraMediator.Camera);

                // Hard coded values: a bunch of them
                cardBackground.Size                    = new Vector2(4.0f, 4.0f);
                cardBackground.Transform.parent        = billboard.Transform;
                cardBackground.Transform.localPosition = new Vector3(-1.1f, 1.1f, -0.05f);
                cardBackground.Transform.localScale    = new Vector3(BILLBOARD_ASPECT_RATIO, 1.0f, 1.0f) * 0.55f;
                cardBackground.Transform.localRotation = Quaternion.Euler(90.0f, 0.0f, 0.0f);

                mBillboard = new Pair <Billboard, StyledQuad>(billboard, cardBackground);
                SetBillboardSize(BILLBOARD_SIZE);
            }
        }
示例#2
0
        private void SetupCamera(XmlNode cameraXmlNode)
        {
            if (cameraXmlNode == null)
            {
                throw new ArgumentNullException("cameraXmlNode");
            }
            FashionCameraMediator cam = GameFacade.Instance.RetrieveMediator <FashionCameraMediator>();

            Vector3 position = SerializationUtility.ToVector3(cameraXmlNode.SelectSingleNode("Position/@vector3").InnerText);
            Vector3 rotation = SerializationUtility.ToVector3(cameraXmlNode.SelectSingleNode("Rotation/@vector3").InnerText);
            float   fov      = float.Parse(cameraXmlNode.SelectSingleNode("FOV/@float").InnerText);

            cam.SetupCamera(position, Quaternion.Euler(rotation), fov);
        }
示例#3
0
        private void HandleExperienceGain(ExperienceInfo experience)
        {
            uint   points      = 0;
            string description = "";

            switch (experience.Type)
            {
            case ExperienceType.PerfectLevel:
                points      = GameFacade.Instance.RetrieveMediator <FashionLevel>().PerfectCompleteBonus;
                description = FashionGameTranslation.PERFECT_LEVEL;
                break;

            default:
                ExperienceData experienceForType = mExperiencePerType[experience.Type];
                if (experience.MultipleEvent != null)
                {
                    points = ((uint)experience.MultipleEvent) * experienceForType.ExperienceAmount;
                }
                else
                {
                    points = experienceForType.ExperienceAmount;
                }
                description = experienceForType.Description;
                break;
            }

            Vector3 windowPosition;

            if (experience.Position != null)
            {
                windowPosition = (Vector3)experience.Position;
            }
            else
            {
                FashionCameraMediator fashionCamera = GameFacade.Instance.RetrieveMediator <FashionCameraMediator>();
                windowPosition = fashionCamera.Camera.ViewportPointToRay(Vector3.one * 0.5f).GetPoint(1.0f);
            }

            EarnedXP(points);

            // TODO: Hard coded value
            GameFacade.Instance.RetrieveMediator <FashionGameGui>().SpawnFloatingWindow(windowPosition, points, description, new Color(0.69f, 0.79f, 0.36f));
        }
示例#4
0
        private void MousePosition(Vector3 position)
        {
            mMousePosition = position;
            FashionCameraMediator fashionCam = GameFacade.Instance.RetrieveMediator <FashionCameraMediator>();
            Ray mouseThruScreenRay           = fashionCam.Camera.ScreenPointToRay(position);

            // Update the clothing icon's world position
            mSelection.UpdateClothingPosition(mouseThruScreenRay.GetPoint(fashionCam.Camera.nearClipPlane * 1.1f));

            // Do Mouseovers
            RaycastHit rh;

            if (GameFacade.Instance.HasMediator <FashionLevel>() && Physics.Raycast(mouseThruScreenRay, out rh, Mathf.Infinity, 1 << FashionMinigame.STATION_LAYER))
            {
                FashionGameStation station = GameFacade.Instance.RetrieveMediator <FashionLevel>().GetStationFromGameObject(rh.collider.gameObject);
                if (station != null)
                {
                    station.MouseIsOver();
                }
            }
        }