public void create_particle(string aType, Vector3 position, Vector3 speed, QuTimer aTimer, float aScale, bool aUseRandomRotation) { var cache = mCachedParticles[aType]; if (!cache.has_particle()) { Texture2D tex = null; if (aType == "gold") { tex = ManagerManager.Manager.mNewRef.partGold; } if (aType == "silver") { tex = ManagerManager.Manager.mNewRef.partSilver2; } var newPart = new FlatElementImage(tex, new Vector2(60, 60), 100); foreach (Renderer f in newPart.PrimaryGameObject.GetComponentsInChildren <Renderer>()) { f.gameObject.layer = ManagerManager.Manager.mBackgroundManager.mBackgroundLayer; } cache.return_particle(newPart); } var emitter = aType == "gold" ? mEmitter2 : mEmitter; var part = emitter.add_particle(cache.take_particle(), position, speed, 1f, aType); part.element.HardFlatRotation = Random.Range(0f, 360f); part.element.HardScale = aScale * Vector3.one; part.timer = new QuTimer(aTimer.getCurrent(), aTimer.getTarget()); }
public void create_shine_over_character(CharacterIndex aIndex, bool positive, float duration) { int index = aIndex.LevelIndex - 1; var shineImage = mManager.mCharacterBundleManager.get_image("SHINE"); FlatElementImage shine = new FlatElementImage(shineImage.Image, shineImage.Data.Size, 3); Vector3 targetPos = mCharacters[index].SoftPosition + new Vector3(0, shine.BoundingBox.height / 2 - 340, 0); shine.HardPosition = targetPos + new Vector3(0, 2000, 0); shine.SoftPosition = targetPos; shine.HardColor = positive ? GameConstants.UiYellow : GameConstants.UiRed; shine.PositionInterpolationMinLimit = 200; shine.ColorInterpolationMaxLimit = Mathf.Infinity; shine.ColorInterpolationMinLimit = 1f; mElement.Add(shine); mShineCleanup.Add(shine); TED.add_one_shot_event( delegate() { shine.SoftColor = GameConstants.UiWhiteTransparent; }, duration).then_one_shot( delegate() { mShineCleanup.Remove(shine); mElement.Remove(shine); shine.destroy(); }, 3); }
public override void Start() { mManager.GameEventDistributor += game_event_listener; //setup flat camera mFlatCamera = new FlatCameraManager(new Vector3(10000, 10000, 0), 9); mFlatCamera.Camera.depth = 101; //we want this on top always //mFlatCamera.Camera.clearFlags = CameraClearFlags.SolidColor; mFlatCamera.Camera.clearFlags = CameraClearFlags.Depth; mFlatCamera.Camera.backgroundColor = new Color32(37, 37, 37, 255); mFlatCamera.fit_camera_to_screen(true); //setup RT camera mRTCamera = new FlatCameraManager(new Vector3(10000, -6000, 0), 10); mRTCamera.set_render_texture_mode(true); mRTCamera.Camera.GetComponent <Camera>().name = "TCMCAMERA"; mRTCamera.fit_camera_to_game(); mRTImage = new FlatElementImage(mRTCamera.RT, 1); mRTImage.PrimaryGameObject.name = "TCMIMAGE"; mRTImage.HardScale = Vector3.one * mFlatCamera.Width / mRTImage.mImage.PixelDimension.x; ModeNormalPlay.slide_image(mFlatCamera, null, mRTImage, false, true); mElement.Add(mRTImage); //this is seen by main flat camera and not RT camera FYI initialize_depth_warning(); mManager.mAssetLoader.new_load_asset_bundle("START", delegate(AssetBundle aBundle){ start_screen_loaded_callback(aBundle, "START"); }); //this isn't working anyhow //mManager.StartCoroutine(test_you_are_playing_as()); }
FlatElementImage construct_flat_image(string aName, int aDepth) { if (mLoader == null) { throw new UnityException("start screen bundle null"); } CharacterData.ImageSizeOffsetAnimationData sizing; FlatElementImage r; if (aName != "BACKGROUND") //this is stupid and you should make background part of the dump.. { sizing = mLoader.Sizes.find_static_element(aName); try { r = new FlatElementImage(mLoader.Images.staticElements[aName], sizing.Size, aDepth); } catch (System.Exception e) { Debug.Log("messed up on " + aName); throw e; } } else { var backSize = mLoader.Sizes.mBackSize; sizing = new CharacterData.ImageSizeOffsetAnimationData(); sizing.Offset = new Vector2(0, 0); sizing.Size = backSize; r = new FlatElementImage(mLoader.Images.background1, backSize, aDepth); } r.HardPosition = mRTCamera.get_point(Vector3.zero) + sizing.Offset; return(r); }
public void sunset_loaded_callback(AssetBundle aBundle, string aBundleName) { mLoader = new CharacterLoader(); mLoader.complete_load_character(aBundle, aBundleName); mBackground = new FlatElementImage(mLoader.Images.background1, mLoader.Sizes.mBackSize, 0); mBackground.HardPosition = mFlatCamera.get_point(0, 0); mStubbyHairyGrass = construct_flat_image("BG-1", 2); mElement.Add(mBackground); mElement.Add(mStubbyHairyGrass); var sun = mManager.mCharacterBundleManager.get_image("SUN"); mSun = new FlatElementImage(sun.Image, sun.Data.Size, 1); var light = mManager.mCharacterBundleManager.get_image("SHINE"); mLightRay = new FlatElementImage(light.Image, light.Data.Size, 1); mLightRay.HardPosition = mFlatCamera.get_point(0, -10000); mElement.Add(mSun); mElement.Add(mLightRay); //mManager.mCharacterBundleManager.add_bundle_to_unload(aBundle); IsLoaded = true; //prep the sky for fetus set_sun(-1, true); set_sky_color(0); }
public void add_character(CharacterIndex aChar, bool aGood, bool aShowScore = true) { Vector3 gDiffLabelOffset = new Vector3(-100, -350, 0); if (aChar != CharacterIndex.sFetus) { string imgname = "SUNSET_" + aChar.StringIdentifier; if (aChar != CharacterIndex.sGrave) { imgname += "-" + (aGood?"a":"b"); } var addMe = construct_flat_image(imgname, 3 + mCharacters.Count * 2); //Debug.Log("adding character " + aChar.StringIdentifier + " " + aGood + " " + imgname); //special positioning for grave if (aChar == CharacterIndex.sGrave) { //put it at the last character plus one position CharacterIndex gravePosition = (new CharacterIndex(mCharacters.Count, 0)).get_future_neighbor(0); if (mCharacters.Count == 7) //there is no astronaut dot yet TODO need lea to add astronaut dot { gravePosition = new CharacterIndex(9, 0); } //weird... FlatElementImage posImg; if (gravePosition.LevelIndex <= 8) { posImg = construct_flat_image("SUNSET_" + gravePosition.StringIdentifier + "-a", 0); } else { posImg = construct_flat_image("SUNSET_" + gravePosition.StringIdentifier, 0); } addMe.HardPosition = posImg.SoftPosition; posImg.destroy(); } else if (mCharacters.Count < 7) //add diff label, note no difficulty for age 100 { string[] labelNames = new string[] { "label_easy", "label_normal", "label_hard", "label_extreme" }; var diffLabel = mManager.mCharacterBundleManager.get_image(labelNames[mManager.mGameManager.get_character_difficulty(aChar)]); FlatElementImage diffLabelImage = new FlatElementImage(diffLabel.Image, diffLabel.Data.Size, 19); diffLabelImage.HardPosition = addMe.HardPosition + gDiffLabelOffset; mDiffLabels.Add(diffLabelImage); mElement.Add(diffLabelImage); } mCharacters.Add(addMe); mElement.Add(addMe); if (aShowScore) { show_score(aChar, (int)mManager.mGameManager.mModeNormalPlay.CurrentPerformanceStat.AdjustedScore, 4, 1.2f); } set_sky_color(mCharacters.Count); } }
FlatElementImage construct_flat_image(string aName, int aDepth) { var sizing = mLoader.Sizes.find_static_element(aName); var r = new FlatElementImage(mLoader.Images.staticElements[aName], sizing.Size, aDepth); r.HardPosition = mFlatCamera.get_point(Vector3.zero) + sizing.Offset; return(r); }
public override void Start() { mBackground = new FlatElementImage(null, 0); mBackground.HardPosition = Vector3.zero; mBackgroundElements = new List <FlatElementImage>(); mForegroundElements = new List <FlatElementImage>(); }
public void load_images(CharacterLoader aCharacter, List <FlatElementImage> aImages, int startingDepth, string aPrefix, int aBegin = 0) { //last to first stupid hack.. List <CharacterData.ImageSizeOffsetAnimationData> dataList = new List <CharacterData.ImageSizeOffsetAnimationData>(); List <string> nameList = new List <string>(); for (int i = aBegin; i < 100; i++) { string name = aPrefix + i; CharacterData.ImageSizeOffsetAnimationData data = aCharacter.Sizes.find_static_element(name); if (data == null) //sometimes there are zero prefixes { name = aPrefix + "0" + i; data = aCharacter.Sizes.find_static_element(name); } if (data == null) { break; } //Debug.Log("loading " + name); dataList.Add(data); nameList.Add(name); } for (int i = dataList.Count - 1; i >= 0; i--) { Texture2D tex = aCharacter.Images.staticElements[nameList[i]]; //if(tex == null) //throw new UnityException("data exists for " + data.Name + " but texture does not"); var img = new FlatElementImage(tex, dataList[i].Size, startingDepth + aImages.Count); //fly in //img.HardPosition = random_position(); //img.SoftPosition = dataList[i].Offset; //fade in img.HardColor = GameConstants.UiWhiteTransparent; img.SoftColor = GameConstants.UiWhite; img.HardPosition = dataList[i].Offset; aImages.Add(img); var fx = AnimationEffects.get_effect(dataList[i].AnimationEffect); fx = null; //TODO if (fx != null) { img.Events.add_event( fx , 0); } //dataList[i].AnimationEffect } }
public ElementOffset add_image(Texture2D aTex, Vector3 aOffset, Vector2?aSize = null) { FlatElementImage image = new FlatElementImage(aTex, aSize, Depth + mElements.Count); ElementOffset r = new ElementOffset(image, aOffset); mElements.Add(r); SoftPosition = SoftPosition; return(r); }
public DifficultyObject(Texture2D aTex, int aDepth) { PrimaryGameObject = new GameObject("genDifficultyParent"); for (int i = 0; i < 4; i++) { mImageElements[i] = new FlatElementImage(aTex, aDepth); mElements.Add(new FlatElementMultiBase.ElementOffset(mImageElements[i], new Vector3(0, i * 47, 0))); mImageElements[i].PrimaryGameObject.transform.parent = PrimaryGameObject.transform; mNaughtyPositions[i] = (Random.insideUnitCircle.normalized * 3000); } Difficulty = 0; }
//called by NewGameManager public void setup_bb() { var nameFrame = mManager.mCharacterBundleManager.get_image("TEXTBOX"); var scoreFrame = mManager.mCharacterBundleManager.get_image("SCORE"); //BB small nonsense mBBNameText = new FlatElementText(mManager.mNewRef.genericFont, 50, "", 11); mBBNameTextFrame = new FlatElementImage(nameFrame.Image, nameFrame.Data.Size, 10); mBBScoreText = new FlatElementText(mManager.mNewRef.genericFont, 60, "0", 11); mBBScoreFrame = new FlatElementImage(scoreFrame.Image, scoreFrame.Data.Size, 10); mBBMultiplierImage = new FlatElementImage(null, 15); //mBBWarningText = new FlatElementText(mManager.mNewRef.genericFont,150,"WARNING",12); mBBWarningText = new FlatElementText(mManager.mNewRef.genericFont, 400, "WARNING", 20); mBBWarningText.HardColor = new Color(0.5f, 0.5f, 0.5f, 0); mBBWarningText.HardPosition = mFlatCamera.get_point(Vector3.zero); mBBNameText.HardColor = GameConstants.UiWhite; mBBNameText.Alignment = TextAlignment.Right; mBBNameText.Anchor = TextAnchor.MiddleRight; mBBScoreText.HardColor = GameConstants.UiWhite; mBBScoreText.Alignment = TextAlignment.Right; mBBScoreText.Anchor = TextAnchor.MiddleRight; mBBMultiplierImage.HardPosition = mFlatCamera.get_point(-1, 1) + new Vector3(200, -270, 0) + new Vector3(mBBMultiplierImage.BoundingBox.width, mBBMultiplierImage.BoundingBox.height, 0) / 2f; //this is just to position the text, it's done again in begin_new_character Vector3 textOffset = new Vector3(70, 115, 0) / 2; mBBNameTextFrame.HardPosition = mBBMultiplierImage.HardPosition + new Vector3(mBBNameTextFrame.BoundingBox.width, 140, 0) / 2 + textOffset; mBBNameText.HardPosition = mBBMultiplierImage.HardPosition + new Vector3(320, 140, 0) / 2 + textOffset; mBBScoreFrame.HardPosition = mBBMultiplierImage.HardPosition + new Vector3(mBBScoreFrame.BoundingBox.width, -140, 0) / 2 + textOffset; mBBScoreText.HardPosition = mBBScoreFrame.HardPosition + new Vector3(-mBBScoreFrame.BoundingBox.width / 2 + 180, 0, 0); var warningImage = mManager.mNewRef.redWarning; //mManager.mCharacterBundleManager.get_image("WARNING"); mWarningOverlay = new FlatElementImage(warningImage, mFlatCamera.Size, 100); mWarningOverlay.HardPosition = mFlatCamera.get_point(Vector3.zero); mElement.Add(mBBNameText); mElement.Add(mBBNameTextFrame); mElement.Add(mBBScoreFrame); mElement.Add(mBBScoreText); mElement.Add(mBBWarningText); mElement.Add(mBBMultiplierImage); mElement.Add(mWarningOverlay); }
public void initialize() { IsLoaded = false; mFlatCamera = new FlatCameraManager(mManager.mCameraManager.BackgroundCamera.transform.position, 10); mFlatCamera.fit_camera_to_game(); mFlatCamera.Camera.cullingMask = (1 << 3) | (1 << 0); mFlatCamera.set_render_texture_mode(true); mPlayerImage = new FlatElementImage(null, 10); mPlayerImage.PrimaryGameObject.name = "PLAYERIMAGE"; mElement.Add(mPlayerImage); }
public ChoiceObjectPair(Texture2D aLeftTex, int aDepth) { mSquare = new FlatElementImage(aLeftTex, aDepth); //NOTE these assets were removed since this class is no longer being used. //mDifficultyStars = new DifficultyObject(ManagerManager.Manager.mNewRef.uiPerfectStar, aDepth); //mDifficultyBalls = new DifficultyObject(ManagerManager.Manager.mNewRef.uiPerfectStar, aDepth); //just to get rid of warnings... mElements.Add(new FlatElementMultiBase.ElementOffset(mSquare, new Vector3(mSide, 0, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(mDifficultyStars, new Vector3(-mSide, mRightBot, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(mDifficultyBalls, new Vector3(-mSide, mRightBot, 0))); PrimaryGameObject = create_primary_from_elements(); }
public void start_screen_loaded_callback(AssetBundle aBundle, string aBundleName) { mBundle = aBundle; CharacterLoader loader = new CharacterLoader(); loader.complete_load_character(aBundle, aBundleName); mLoader = loader; //create background mElement.Add(construct_flat_image("BACKGROUND", 0)); mElement.Add(construct_flat_image("FG-1", 30)); for (int i = 2; i < 30; i++) { var img = construct_flat_image("BG-" + i, 30 - i); mElement.Add(img); } set_start_screen_character_transparency(); NewMenuReferenceBehaviour refs = mManager.mNewRef; //kinect required image if (!GameConstants.ALLOW_NO_KINECT && mManager.mZigManager.is_reader_connected() == 0) { //TODO put up a KINECT REQUIRED message mKinectRequiredImage = construct_flat_image("FG-1", 1000); mKinectRequiredImage.SoftPosition += new Vector3(0, -400, 0); mElement.Add(mKinectRequiredImage); } //mMenuBackground; //mMenuSelector; //mResume; //mRestart; //???? mMessageText = new FlatElementText(refs.genericFont, 60, "", 1); mMessageText.HardPosition = mRTCamera.get_point(Vector3.zero) + new Vector3(0, 400, 0); mElement.Add(mMessageText); start_configuration_display(); IsInitialized = true; }
FlatElementImage construct_flat_image(string aName, int aDepth) { var sizing = mLoader.Sizes.find_static_element(aName); try{ var r = new FlatElementImage(mLoader.Images.staticElements[aName], sizing.Size, aDepth); r.HardPosition = mFlatCamera.get_point(Vector3.zero) + sizing.Offset; return(r); } catch (System.Exception e) { Debug.Log("couldn't find " + aName); throw e; } }
public FlatUnlockIcon(CharacterIndex aChar, bool big, int aDepth) { var bgImage = ManagerManager.Manager.mCharacterBundleManager.get_image(big?"UNLOCKABLES_BOX_BIG" : "UNLOCKABLES_BOX_SMALL"); var charIcon = ManagerManager.Manager.mCharacterBundleManager.get_image("ICON_" + aChar.StringIdentifier); background = new FlatElementImage(bgImage.Image, bgImage.Data.Size, aDepth); icon = new FlatElementImage(charIcon.Image, charIcon.Data.Size, aDepth + 1); name = new FlatElementText(ManagerManager.Manager.mNewRef.genericFont, 50, FlatElementText.convert_to_multiline(1, aChar.ShortName.ToUpper()), aDepth + 1); mElements.Add(new FlatElementMultiBase.ElementOffset(background, new Vector3(0, 0, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(icon, new Vector3(0, 20, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(name, new Vector3(0, -200, 0))); PrimaryGameObject = create_primary_from_elements(); Depth = aDepth; }
public CharacterIconObject(CharacterIndex aIndex, int aDepth) { //NOTE these assets were removed since this class is no longer being used. //mBackground = new FlatElementImage(ManagerManager.Manager.mNewRef.pbCharacterIconBackground,aDepth); //mDifficultyStars = new DifficultyObject(ManagerManager.Manager.mNewRef.uiPerfectStar,aDepth+1); mIcon = new FlatElementImage(null, aDepth + 3); if (aIndex.LevelIndex != -1) { var loaded = ManagerManager.Manager.mCharacterBundleManager.get_image("BOX_" + aIndex.StringIdentifier); mIcon.set_new_texture(loaded.Image, null); //loaded.Data.Size); } //TODO delete /* * if(aIcon == null) * { * CharacterTextureBehaviour ctb = (GameObject.Instantiate(ManagerManager.Manager.mReferences.mMiniChar) as GameObject).GetComponent<CharacterTextureBehaviour>(); * mBody = new FlatBodyObject(ctb,aDepth); * GameObject.Destroy(ctb.gameObject); * } * else * mBody = new FlatBodyObject(aIcon,aDepth+3); * mBody.HardShader = ManagerManager.Manager.mReferences.mMiniCharacterShader; */ //mBodyOffset = mDifficultyStars.mImageElements[0].BoundingBox.width/2 + 5; //float starOffset = mBackground.BoundingBox.width/2+5; //float starOffset = 0; mBodyOffset = 0; //mElements.Add(new ElementOffset(mDifficultyStars, new Vector3(-starOffset,-70,0))); mElements.Add(new ElementOffset(mBackground, new Vector3(mBodyOffset, 0, 0))); mElements.Add(new ElementOffset(mIcon, new Vector3(mBodyOffset, 20, 0))); //mElements.Add(new ElementOffset(mBody, new Vector3(mBodyOffset,0,0))); PrimaryGameObject = create_primary_from_elements(); Depth = aDepth; set_perfectness(0); }
public MeterObject(Texture2D aFront, Texture2D aBack, Color aFill, int aDepth) { SoftColor = aFill; mBack = new FlatElementImage(aBack, aDepth); mFill = new FlatElementImage(null, aDepth + 1); mFront = new FlatElementImage(aFront, aDepth + 2); mFillOffset = new FlatElementMultiBase.ElementOffset(mFill, new Vector3(0, 0, 0)); mElements.Add(new FlatElementMultiBase.ElementOffset(mBack, new Vector3(0, 0, 0))); mElements.Add(mFillOffset); mElements.Add(new FlatElementMultiBase.ElementOffset(mFront, new Vector3(0, 0, 0))); PrimaryGameObject = create_primary_from_elements(); SoftInterpolation = SoftInterpolation; Percentage = 0.0f; Depth = aDepth; }
public void initialize_depth_warning() { mDepthImage = new FlatElementImage(null, new Vector2(160, 120), 100); mDepthImage.HardScale = Vector3.one * 2; //mDepthImage.HardPosition = mFlatCamera.get_point(1, -1) + new Vector3(-10 - mDepthImage.BoundingBox.width / 4, 10 + mDepthImage.BoundingBox.height / 4, 0) * mFlatCamera.screen_pixel_to_camera_pixel_ratio(); mDepthImage.HardPosition = mFlatCamera.get_point(1.5f, -1) + new Vector3(-10 - mDepthImage.BoundingBox.width / 4, 10 + mDepthImage.BoundingBox.height / 4, 0) * mFlatCamera.screen_pixel_to_camera_pixel_ratio(); mDepthImage.HardShader = mManager.mReferences.mXB1DepthImageShader; mDepthWarningText = new FlatElementText(mManager.mNewRef.genericFont, 40, GameStrings.GetString("TCMkinect1"), 100); mDepthWarningText.HardColor = new Color(1, 1, 1, 0); mDepthWarningText.Alignment = TextAlignment.Left; mDepthWarningText.Anchor = TextAnchor.MiddleLeft; mDepthWarningText.HardPosition = mFlatCamera.get_point(1, -1) + new Vector3(-280, 110, 0) * mFlatCamera.screen_pixel_to_camera_pixel_ratio(); mDepthWarningText.ColorInterpolationMaxLimit = 10f; mDepthWarningText.ColorInterpolationMinLimit = 2f; //mDepthWarningText.Alignment = TextAlignment.Left; EnableDepthWarning = false; mElement.Add(mDepthImage); mElement.Add(mDepthWarningText); }
public ChoiceObjectPair(Texture2D aLeftTex, CharacterTextureBehaviour aChar, Pose aPose, int aDepth) { mSquare = new FlatElementImage(aLeftTex, aDepth); //NOTE these assets were removed since this class is no longer being used. //mDifficultyStars = new DifficultyObject(ManagerManager.Manager.mNewRef.uiPerfectStar, aDepth); //mDifficultyBalls = new DifficultyObject(ManagerManager.Manager.mNewRef.uiPerfectStar, aDepth); mElements.Add(new FlatElementMultiBase.ElementOffset(mSquare, new Vector3(mSide, 0, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(mDifficultyStars, new Vector3(-mSide, mRightBot, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(mDifficultyBalls, new Vector3(-mSide, mRightBot, 0))); mMeter = new MeterImageObject(aLeftTex, null, MeterImageObject.FillStyle.DU, aDepth + 1); mMeter.Percentage = 0.0f; mBody = new FlatBodyObject(aChar, aDepth + 2); mBody.set_target_pose(aPose); mElements.Add(new FlatElementMultiBase.ElementOffset(mMeter, new Vector3(mSide, 0, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(mBody, new Vector3(mSide + 24, -7, 0))); PrimaryGameObject = create_primary_from_elements(); }
//TODO need custom split setting function... public PopupTextObject(string aText, int aDepth, Texture2D aBubble = null, System.Nullable <Vector2> aBubbleSize = null) { mBackground = new FlatElementImage(aBubble == null ? random_bubble(0) : aBubble, aBubbleSize, aDepth); mText = new FlatElementText(ManagerManager.Manager.mNewRef.genericFont, 80, "", aDepth + 1); mText.HardColor = new Color(0, 0, 0); mElements.Add(new FlatElementMultiBase.ElementOffset(mBackground, new Vector3(0, 0, 0))); mTextOffset = new FlatElementMultiBase.ElementOffset(mText, new Vector3(0, 0, 0)); mElements.Add(mTextOffset); Text = aText; PrimaryGameObject = create_primary_from_elements(); PrimaryGameObject.name = "genPOPUPTEXT"; //make sure it gets applied to text as well... ColorInterpolationMaxLimit = 3f; ColorInterpolationMinLimit = 1.5f; SoftInterpolation = .18f; //PositionInterpolationMinLimit = 500; Depth = aDepth; }
public static void slide_image(FlatCameraManager aCam, FlatElementImage cur, FlatElementImage next, bool right = true, bool instant = false) { //TODO set triggers to deactivate the surfaces, maybe not here.. for performance.. if (next != null) { next.HardPosition = aCam.get_point(Vector3.zero) + (right ? Vector3.right * next.BoundingBox.width : Vector3.down * next.BoundingBox.height); next.SoftPosition = aCam.get_point(Vector3.zero); if (instant) { next.HardPosition = next.SoftPosition; } } if (cur != null) { cur.SoftPosition = aCam.get_point(Vector3.zero) - (right ? Vector3.right * cur.BoundingBox.width : Vector3.down * cur.BoundingBox.height); if (instant) { cur.HardPosition = cur.SoftPosition; } } }
public void create_shine_over_character(FlatElementImage aHead, bool positive, float duration) { var shineImage = ManagerManager.Manager.mCharacterBundleManager.get_image("STREAM"); FlatElementImage shine = new FlatElementImage(shineImage.Image, shineImage.Data.Size, 3); Vector3 targetPos = aHead.SoftPosition + new Vector3(0, shine.BoundingBox.height / 2 - 360, 0) + new Vector3(0, 500, 0); Vector3 storePosition = targetPos + new Vector3((NIM.mFlatCamera.get_point(Vector3.zero).x - targetPos.x) * 0.2f, shine.BoundingBox.height - 100, 0); shine.HardPosition = storePosition; shine.SoftPosition = targetPos; shine.HardColor = positive ? GameConstants.UiYellowTransparent : GameConstants.UiRedTransparent; shine.HardColor = positive ? GameConstants.UiYellow : GameConstants.UiRed; shine.PositionInterpolationMinLimit = 250; shine.SoftInterpolation = 0.15f; mElement.Add(shine); /* * var boxImage = ManagerManager.Manager.mCharacterBundleManager.get_image("CUTSCENE_BOX"); * FlatElementImage box = new FlatElementImage(boxImage.Image,boxImage.Data.Size,3); * box.HardPosition = aHead.SoftPosition; * box.HardColor = positive ? GameConstants.UiGreenTransparent : GameConstants.UiRedTransparent; * box.HardColor = positive ? GameConstants.UiGreen : GameConstants.UiRed; * mElement.Add(box);*/ TED.add_one_shot_event( delegate() { shine.SoftPosition = storePosition; //shine.HardColor = GameConstants.UiWhiteTransparent; //box.HardColor = GameConstants.UiWhiteTransparent; }, duration).then_one_shot( delegate() { mElement.Remove(shine); //mElement.Remove(box); shine.destroy(); //box.destroy(); }, 0.7f); }
public void create_particle(string aType, Vector3 position, Vector3 speed, int emitterNum = 1) { //TODO diff particle types var cache = mCachedParticles[aType]; if (!cache.has_particle()) { Texture2D tex = null; if (aType == "gold") { tex = ManagerManager.Manager.mNewRef.partGold; } if (aType == "silver") { tex = ManagerManager.Manager.mNewRef.partSilver2; } var newPart = new FlatElementImage(tex, new Vector2(60, 60), 5); if (aType == "silver") { newPart.HardScale = 1.2f * (new Vector3(1, 1, 1)); newPart.HardFlatRotation = Random.Range(0f, 360f); } if (aType == "gold") { newPart.HardScale = 1.7f * (new Vector3(1, 1, 1)); } foreach (Renderer f in newPart.PrimaryGameObject.GetComponentsInChildren <Renderer>()) { f.gameObject.layer = ManagerManager.Manager.mBackgroundManager.mBackgroundLayer; } cache.return_particle(newPart); } var part = mEmitter.add_particle(cache.take_particle(), position, speed, 0.7f, aType); if (aType == "silver") { part.timer = new QuTimer(-0.5f, 0.2f); } }
public FlatUnlockBadge(CharacterIndex aChar, UnlockRequirements.UnlockData aData, int aDepth) { var unlockfont = ManagerManager.Manager.mNewRef.serifFont; var bgImage = ManagerManager.Manager.mCharacterBundleManager.get_image("UNLOCKABLES_PLATE"); background = new FlatElementImage(bgImage.Image, bgImage.Data.Size, aDepth); text1 = new FlatElementText(unlockfont, 120, "new lifestyle", aDepth + 1); text2 = new FlatElementText(unlockfont, 200, "UNLOCKED", aDepth + 1); mainIcon = new FlatUnlockIcon(aChar, true, aDepth + 1); if (aData.Related.Length == 0) { text3 = new FlatElementText(unlockfont, 200, FlatElementText.convert_to_multiline_max(35, aData.Sentence), aDepth + 1); } else { text3 = new FlatElementText(unlockfont, 70, FlatElementText.convert_to_multiline_max(35, aData.Sentence), aDepth + 1); } mElements.Add(new FlatElementMultiBase.ElementOffset(background, new Vector3(0, 0, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(text1, new Vector3(0, 600, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(text2, new Vector3(0, 450, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(mainIcon, new Vector3(0, 125, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(text3, new Vector3(0, -200, 0))); contributors = new FlatUnlockIcon[aData.Related.Length]; Vector3 step = new Vector3(-400, 0, 0); Vector3 start = (contributors.Length - 1) * (-step) / 2f + new Vector3(0, -700, 0); for (int i = 0; i < contributors.Length; i++) { contributors[i] = new FlatUnlockIcon(aData.Related[i], false, aDepth + 1); FlatUnlockIcon e = contributors[i]; mElements.Add(new FlatElementMultiBase.ElementOffset(e, start + step * i)); } PrimaryGameObject = create_primary_from_elements(); Depth = aDepth; }
//void initialize(CharacterLoader aActualChar, int aDepth) void initialize(CharacterIndex?aIndex, int aDepth) { var meterImage = ManagerManager.Manager.mCharacterBundleManager.get_image("SELECTION_BOX"); var newRef = ManagerManager.Manager.mNewRef; //mSquare = new FlatElementImage(newRef.bbChoiceBox, aDepth); mSquare = new FlatElementImage(meterImage.Image, meterImage.Data.Size, aDepth); mSquare.HardColor = GameConstants.UiRed; mText = new FlatElementText(newRef.fatFont, 48, "", aDepth + 2); mDiffImage = new FlatElementImage(null, aDepth + 3); mDiffImage.HardScale = 1.33f * Vector3.one; //mPerfect = new DifficultyObject(ManagerManager.Manager.mNewRef.uiPerfectStar, aDepth); mIcon = new FlatElementImage(null, aDepth + 2); mIcon.HardScale = 1.25f * Vector3.one; //mMeter = new MeterImageObject(newRef.bbChoiceBox, null,MeterImageObject.FillStyle.DU, aDepth + 1); mMeter = new MeterImageObject(meterImage.Image, meterImage.Data.Size, MeterImageObject.FillStyle.DU, aDepth + 1); mMeter.Percentage = 0.0f; set_perfectness(3); //mBody.set_target_pose(aPose); mElements.Add(new FlatElementMultiBase.ElementOffset(mSquare, new Vector3(0, 0, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(mDiffImage, new Vector3(-mSquare.BoundingBox.width / 2f + 80, -mSquare.BoundingBox.height / 2f + 80, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(mText, new Vector3(0, 0, 0))); //mElements.Add(new FlatElementMultiBase.ElementOffset(mPerfect, new Vector3(-122,65,0))); mElements.Add(new FlatElementMultiBase.ElementOffset(mMeter, new Vector3(0, 0, 0))); mElements.Add(new FlatElementMultiBase.ElementOffset(mIcon, new Vector3(0, 275, 0))); mText.HardColor = GameConstants.uiWhite; if (aIndex != null) { set_actual_character(aIndex.Value); } PrimaryGameObject = create_primary_from_elements(); Depth = aDepth; }
public void set_for_GRAVE(List <PerformanceStats> aStats) { //timing vars float gIntroText = 4.5f; float gPreScoreCount = 0.03f; float gScoreCount = 0.2f; float gPostScoreCount = 0.07f; float gRestart = 29; //disable the depth warning mManager.mZigManager.ForceShow = 2; //add the gravestone to the scene add_character(CharacterIndex.sGrave, true, false); //remove the grave if (aStats.Last().Character.Age == 999) { aStats.RemoveAt(aStats.Count - 1); } //add in fetus in case we skipped it in debug mode if (aStats.First().Character.Age != 0) { aStats.Insert(0, new PerformanceStats(new CharacterIndex(0, 0))); } //fake it for testing... /* TODO DELETE move this into ModeNormalPlay on force kill * mCharacters.Last().destroy(); //remove the grave * mElement.Remove(mCharacters.Last()); * mCharacters.RemoveAt(mCharacters.Count -1); * Random.seed = 123; * for(int i = 0; i < 8; i++) * { * if(aStats.Last().Character.Age < (new CharacterIndex(i,0)).Age) * { * PerformanceStats stat = new PerformanceStats(new CharacterIndex(i,Random.Range(0,4))); * stat.update_score(0,Random.value); * stat.update_score(1,Random.value); * stat.Stats = mManager.mGameManager.CharacterHelper.Characters[stat.Character]; * aStats.Add(stat); * * add_character(stat.Character,false); * } * } * add_character(CharacterIndex.sGrave,false); //add the grave back in */ //this is all a hack to get the score to show up right... float scoreIncrementor = 0; FlatElementText finalScoreText = new FlatElementText(mManager.mNewRef.serifFont, 70, "0", 21); finalScoreText.HardColor = (GameConstants.UiGraveText); FlatElementText finalAgeText = new FlatElementText(mManager.mNewRef.serifFont, 50, "0", 21); float ageIncrementer = 0; finalAgeText.HardColor = (GameConstants.UiGraveText); //perfectPercent.Text = ((int)(100*aStats.Sum(e=>e.Stats.Perfect+1)/(float)(aStats.Count*3))).ToString() + "%"; //TODO why this no work?? finalAgeText.Text = "0"; //aStats.Last().Character.Age.ToString(); //hack to put things into bg camera foreach (Renderer f in finalScoreText.PrimaryGameObject.GetComponentsInChildren <Renderer>()) { f.gameObject.layer = 4; } foreach (Renderer f in finalAgeText.PrimaryGameObject.GetComponentsInChildren <Renderer>()) { f.gameObject.layer = 4; } //foreach (Renderer f in perfectEngraving.PrimaryGameObject.GetComponentsInChildren<Renderer>()) f.gameObject.layer = 4; Vector3 graveCenter = mCharacters[mCharacters.Count - 1].HardPosition + new Vector3(0, 50, 0); finalScoreText.HardPosition = graveCenter + new Vector3(30, -180, 0); finalAgeText.HardPosition = graveCenter + new Vector3(25, 0, 0); mElement.Add(finalScoreText); //mElement.Add(perfectEngraving); mElement.Add(finalAgeText); graveCleanup.Add(finalScoreText); graveCleanup.Add(finalAgeText); TimedEventDistributor.TimedEventChain chain = TED.empty_chain(); chain = chain.then_one_shot( delegate { set_sun(); } , 0); chain = chain.then( low_skippable_text_bubble_event(GameStrings.GetString("SM1"), gIntroText), 3); /*.then( //wait a little bit to let the fading finish * low_skippable_text_bubble_event("HERE IS YOUR LIFE STORY",gIntroText) * );*/ for (int i = 1; i < aStats.Count; i++) { PerformanceStats ps = aStats[i]; chain = chain.then_one_shot( delegate() { if (ps.Character != CharacterIndex.sOneHundred) { show_score(ps.Character, (int)ps.AdjustedScore, gPreScoreCount + gScoreCount + gPostScoreCount + 1.5f); } } , gPreScoreCount).then( delegate(float aTime) { if (aTime < gScoreCount) { float displayScore = scoreIncrementor + (aTime / gScoreCount) * ps.AdjustedScore; float displayAge = ageIncrementer + (aTime / gScoreCount) * (ps.Character.Age - ageIncrementer); finalScoreText.Text = "" + (int)displayScore; finalAgeText.Text = "" + (int)displayAge; } if (aTime > gScoreCount + gPostScoreCount) { scoreIncrementor += ps.AdjustedScore; ageIncrementer = ps.Character.Age; finalScoreText.Text = "" + (int)scoreIncrementor; finalAgeText.Text = "" + (int)ageIncrementer; return(true); } return(false); }, 0); } chain = chain.wait(2.5f); //CONNECTIONS for (int i = 1; i < aStats.Count; i++) { PerformanceStats ps = aStats[i]; float gFirstConnectionText = 5f; float gConnectionText = 5f; float gPreParticle = 2f; //TODO grave connections CharIndexContainerString connections; //TODO bool wasHard = ps.Stats.Difficulty > 1; if (wasHard) { connections = mManager.mCharacterBundleManager.get_character_stat(ps.Character).CharacterInfo.HardConnections; } else { connections = mManager.mCharacterBundleManager.get_character_stat(ps.Character).CharacterInfo.EasyConnections; } //for each connection, check if it is relevent to the currently looping character for (int j = 1; j < aStats.Count; j++) { var targetCharacter = aStats[j].Character; //charcter we are connecting to var targetConnection = connections[targetCharacter]; //message if (targetConnection != null && targetConnection != "") { int accumChange = 0; //accum change is targetCharacters effect on the current character accumChange = aStats[j].CutsceneChangeSet.accumulative_changes()[ps.Character]; if ((wasHard && accumChange > 0) || //if was hard and effect was positive (i.e. hard) (!wasHard && accumChange < 0)) //if was easy and effect was negative (i.e. easy) { string [] conText = targetConnection.Replace("<S>", "@").Split('@'); PopupTextObject npo = null; chain = chain.then( delegate(float aTime) { if (npo == null) { npo = add_timed_text_bubble(conText[0], gFirstConnectionText + gConnectionText, -0.6f, 1); set_popup_color_for_cutscene_particles(npo, wasHard); create_shine_over_character(targetCharacter, !wasHard, gFirstConnectionText + gConnectionText); TED.add_one_shot_event( delegate() { create_shine_over_character(ps.Character, !wasHard, gFirstConnectionText + gConnectionText - 0.3f); } , 0.3f); } if (npo.IsDestroyed || aTime > gPreParticle) { return(true); } return(false); } , 0); System.Func <FlatElementBase, float, bool> jiggleDelegate = delegate(FlatElementBase aBase, float aTime2) { aBase.mLocalRotation = Quaternion.AngleAxis(Mathf.Sin(aTime2 * Mathf.PI * 2 * 8) * 10f, Vector3.forward); if (aTime2 >= (gFirstConnectionText - gPreParticle) / 4f) { aBase.mLocalRotation = Quaternion.identity; return(true); } return(false); }; chain = chain.then_one_shot( delegate() { if (npo != null) { mCharacters[char_to_list_index(targetCharacter)].Events.add_event(jiggleDelegate, 0); ManagerManager.Manager.mMusicManager.play_sound_effect("graveShine"); } //create the shine } ).then_one_shot( delegate() { if (npo != null && !npo.IsDestroyed) //if we used softskip, npo could be destroyed at this point { npo.Text = conText.Last(); mCharacters[char_to_list_index(ps.Character)].Events.add_event(jiggleDelegate, 0); ManagerManager.Manager.mMusicManager.play_sound_effect("graveShine"); } }, gFirstConnectionText - gPreParticle).then( delegate(float aTime){ if (npo.IsDestroyed || aTime > gConnectionText) { npo = null; return(true); } return(false); } ); } } } } string deathSentence = ""; if (aStats[aStats.Count - 1].DeathTime != -1) { deathSentence += GameStrings.GetString("SM2"); } else { deathSentence += GameStrings.GetString("SM3"); } if (!aStats [aStats.Count - 1].Character.IsDescriptionAdjective) { if ("aeiouAEIOU".IndexOf(aStats[aStats.Count - 1].Character.Description[0]) >= 0) { deathSentence += GameStrings.GetString("SM4"); } else { deathSentence += GameStrings.GetString("SM5"); } } deathSentence += aStats[aStats.Count - 1].Character.Description; chain = chain.then( low_skippable_text_bubble_event(deathSentence, gIntroText) , 1); foreach (CharacterIndex e in CharacterIndex.sAllCharacters) { UnlockRequirements.UnlockData unlockData; if (mManager.mMetaManager.UnlockManager.unlockedThisGame.TryGetValue(new UnlockRequirements.FakeCharIndex(e), out unlockData)) { if (unlockData != null) { ManagerManager.Log("announcing unlock " + e.StringIdentifier); CharacterIndex ce = new CharacterIndex(e); chain = chain.then_one_shot( delegate(){ mUnlockAnnouncer.announce_unlock(ce, unlockData); } , 0).then( delegate(float aTime){ return(!mUnlockAnnouncer.IsAnnouncing); } , 0); } } } //so we don't announce unlock again when we restart mManager.mMetaManager.UnlockManager.unlockedThisGame.Clear(); if (GameConstants.showReward && aStats[aStats.Count - 1].Character.LevelIndex >= 7) { FlatElementImage rewardImage = null; FlatElementImage rewardFrame = null; mModeNormalPlay.mGiftManager.set_background_for_render(); chain = chain.then_one_shot( delegate() { var frameImg = mManager.mCharacterBundleManager.get_image("GIFT_frame"); rewardFrame = new FlatElementImage(frameImg.Image, frameImg.Data.Size, 24); rewardImage = new FlatElementImage(mModeNormalPlay.mGiftManager.render_gift(0), new Vector2(2001, 1128), 23); //TODO play sound effect rewardImage.HardPosition = mFlatCamera.get_point(0, 3); rewardFrame.HardPosition = rewardImage.HardPosition; rewardImage.SoftPosition = mFlatCamera.get_point(Vector3.zero) + new Vector3(0, 150, 0); rewardFrame.SoftPosition = rewardImage.SoftPosition + new Vector3(0, 70, 0); mElement.Add(rewardImage); mElement.Add(rewardFrame); graveCleanup.Add(rewardImage); graveCleanup.Add(rewardFrame); var subChain = TED.empty_chain().wait(4); if (mModeNormalPlay.mGiftManager.gift_count() > 0) { for (int i = 1; i < 100; i++) { int localIndex = i % mModeNormalPlay.mGiftManager.gift_count(); subChain = subChain.then_one_shot( delegate(){ //TODO sound effect mModeNormalPlay.mGiftManager.render_gift(localIndex); } , 1f); } } } , 2); //chain = chain.wait(6); //chain = chain.then(skippable_text_bubble_event("YOU ARE THE PERFECT WOMAN!",5,-0.8f,2),0); } //variables for credits animation.. float lastTime = 0; FlatElementImage[] logos = null; //PopupTextObject gameOver = null; List <FlatElementText> creditsText = new List <FlatElementText>(); float scrollSpeed = 820; mGraveCompleteCb = delegate() { Vector3 barYPosition = mFlatCamera.get_point(Vector3.zero) + new Vector3(0, -700, 0); TED.add_one_shot_event( delegate() { mManager.mMusicManager.fade_in_extra_music("creditsMusic"); mManager.mMusicManager.fade_out(); var imgData = mManager.mCharacterBundleManager.get_image("BAR"); var barImg = new FlatElementImage(imgData.Image, imgData.Data.Size, 24); barImg.HardPosition = barYPosition + new Vector3(0, -1000, 0); barImg.SoftPosition = barYPosition; mElement.Add(barImg); graveCleanup.Add(barImg); } , 0).then_one_shot( delegate() { float lastXPosition = mFlatCamera.get_point(Vector3.zero).x - mFlatCamera.Width / 2 - 100; int counter = 0; foreach (string e in GameConstants.credits) { string val = e; if (System.Text.RegularExpressions.Regex.IsMatch(e, @"^\d+$")) { val = GameStrings.GetString("GCcredits" + e); } var text = new FlatElementText(mManager.mNewRef.genericFont, 70, val, 25); float textWidth = text.BoundingBox.width; text.HardColor = new Color(1, 1, 1, 1); text.HardPosition = new Vector3(lastXPosition - textWidth / 2f, barYPosition.y, 0); lastXPosition += -textWidth - 75; creditsText.Add(text); mElement.Add(text); graveCleanup.Add(text); counter++; } if (GameConstants.SHOW_LOGOS) { logos = new FlatElementImage[3]; lastXPosition += -200; string[] imageNames = new string[] { "LOGO_FA", "LOGO_AI", "LOGO_GL" }; for (int i = 0; i < imageNames.Length; i++) { var imgData = mManager.mCharacterBundleManager.get_image(imageNames[i]); var img = new FlatElementImage(imgData.Image, imgData.Data.Size, 25); float imgWidth = img.BoundingBox.width; img.HardPosition = new Vector3(lastXPosition - imgWidth / 2, barYPosition.y, 0); lastXPosition += -img.BoundingBox.width / 2f - 500; logos[i] = img; mElement.Add(img); graveCleanup.Add(img); } } } , 1).then_one_shot( delegate() { /* this will fade everything out super slowly * List<FlatElementBase> graveItems = new List<FlatElementBase>(){finalScoreText,perfectPercent}; * foreach(FlatElementBase e in * mCharacters.Cast<FlatElementBase>() * .Concat(mDiffLabels.Cast<FlatElementBase>()) * .Concat(mScoreLabels.Cast<FlatElementBase>()) * .Concat(mScoreTexts.Cast<FlatElementBase>()) * .Concat(graveItems.Cast<FlatElementBase>())) * { * e.ColorInterpolationLimit = 0.05f; * e.SoftColor = GameConstants.UiWhiteTransparent; * }*/ } , 0).then( delegate(float aTime) { //scroll contents down Vector3 scroll = new Vector3(scrollSpeed * (aTime - lastTime), 0, 0); foreach (FlatElementText e in creditsText) { e.SoftPosition = e.SoftPosition + scroll; } if (logos != null) { foreach (FlatElementImage e in logos) { e.SoftPosition = e.SoftPosition + scroll; } } lastTime = aTime; if (Input.GetKeyDown(KeyCode.Alpha0)) { return(true); } if (aTime > gRestart) { return(true); } return(false); } , 0).then_one_shot( delegate(){ mManager.mMusicManager.fade_out_extra_music(); mManager.restart_game(); } , 0); mGraveCompleteChain = TED.LastEventKeyAdded; }; chain = chain.then_one_shot( delegate() { mGraveCompleteCb(); mGraveCompleteCb = null; mGraveChain = null; } , 1); mGraveChain = TED.LastEventKeyAdded; }
//this needs to be called in order of characters created.... public void show_score(CharacterIndex aIndex, int aScore, float showTime, float jiggleDelayTime = 0) { int ind = char_to_list_index(aIndex); FlatElementText scoreText = new FlatElementText(mManager.mNewRef.fatFont, 40, aScore.ToString(), 21); var scoreBgImage = mManager.mCharacterBundleManager.get_image("SCORELABEL"); FlatElementImage scoreBg = new FlatElementImage(scoreBgImage.Image, scoreBgImage.Data.Size, 20); scoreBg.HardPosition = mFlatCamera.get_point(0, 1.5f); //SLOPPY, restart will clear out all characters but the TED will still be running and calling this function which will crash here if (mCharacters.Count > ind) { scoreBg.HardPosition = mCharacters[ind].SoftPosition + new Vector3(0, 400, 0); } scoreText.HardPosition = scoreBg.HardPosition; scoreText.SoftPosition = scoreBg.SoftPosition; scoreText.Text = "" + aScore; scoreText.PositionInterpolationMinLimit = 200f; scoreBg.PositionInterpolationMinLimit = 200f; scoreText.ColorInterpolationMinLimit = 2f; scoreBg.ColorInterpolationMinLimit = 2f; mScoreLabels.Add(scoreBg); mScoreTexts.Add(scoreText); mElement.Add(scoreBg); mElement.Add(scoreText); System.Func <FlatElementBase, float, bool> scoreJiggleDelegate = delegate(FlatElementBase aBase, float aTime2) { aTime2 -= jiggleDelayTime; if (aTime2 > 0) { aBase.mLocalRotation = Quaternion.AngleAxis(Mathf.Sin(aTime2 * Mathf.PI * 2 * 4) * 15f, Vector3.forward); if (aTime2 >= 0.7f) { aBase.mLocalRotation = Quaternion.identity; return(true); } } return(false); }; scoreBg.Events.add_event(scoreJiggleDelegate, 0.03f); scoreText.Events.add_event(scoreJiggleDelegate, 0.03f); //play the counting sound TED.add_one_shot_event(delegate(){ mManager.mMusicManager.play_sound_effect("counting"); }, jiggleDelayTime); TED.add_event( delegate(float aTime) { if (aTime > showTime) { scoreBg.SoftColor = GameConstants.UiWhiteTransparent; scoreText.SoftColor = GameConstants.UiWhiteTransparent; return(true); } return(false); } , 0).then_one_shot( delegate(){ mScoreLabels.Remove(scoreBg); mScoreTexts.Remove(scoreText); mElement.Remove(scoreBg); mElement.Remove(scoreText); scoreBg.destroy(); scoreText.destroy(); } , 3); }
public void initialize() { mInterfaceManager = new NewInterfaceManager(mManager, this); mInterfaceManager.initialize(); //mInterfaceManager.mFlatCamera.set_render_texture_mode(true); mInterfaceManager.setup_bb(); mSunsetManager = new SunsetManager(mManager, this); mSunsetManager.initialize(); mSunsetManager.mFlatCamera.set_render_texture_mode(true); mManager.mAssetLoader.new_load_asset_bundle("SUNSET", delegate(AssetBundle aBundle){ mSunsetManager.sunset_loaded_callback(aBundle, "SUNSET"); } ); mGiftManager = new GiftManager(mManager, this); mGiftManager.initialize(); mManager.mAssetLoader.new_load_asset_bundle("GIFT", delegate(AssetBundle aBundle){ mGiftManager.gift_loaded_callback(aBundle, "GIFT"); } ); mChoosingManager = new ChoosingManager(mManager, this); mChoosingManager.initialize(); mChoosingManager.mFlatCamera.set_render_texture_mode(true); mFlatCamera = new FlatCameraManager(new Vector3(-23200, 3500, 0), 10); mFlatCamera.Camera.depth = 100; mFlatCamera.fit_camera_to_screen(); mSunsetImage = new FlatElementImage(mSunsetManager.mFlatCamera.RT, 0); var hs = Vector3.one * mFlatCamera.Width / mSunsetImage.mImage.PixelDimension.x; //TODO extra space for rounded edges //hs.y += 600; //additional 300 pixels.. mSunsetImage.HardScale = hs; mSunsetImage.HardPosition = mFlatCamera.get_point(Vector3.zero) + Vector3.up * mSunsetImage.BoundingBox.height; //mSunsetImage.HardShader = mManager.mReferences.mRenderTextureShader; mSunsetImage.PositionInterpolationMinLimit = 10; //so it doesn't take forever to entirely cover the image underneath mElement.Add(mSunsetImage); mChoosingImage = new FlatElementImage(mChoosingManager.mFlatCamera.RT, 1); mChoosingImage.HardScale = Vector3.one * mFlatCamera.Width / mChoosingImage.mImage.PixelDimension.x; mChoosingImage.HardPosition = mFlatCamera.get_point(Vector3.zero) + Vector3.right * mChoosingImage.BoundingBox.width; //mChoosingImage.HardShader = mManager.mReferences.mRenderTextureShader; mElement.Add(mChoosingImage); //this is silly, we forec the interface image to appear above everything else pretty much just so we can have text bubbles show above everything //kind of a dumb way to do it oh well. /* * mInterfaceImage = new FlatElementImage(mInterfaceManager.mFlatCamera.RT,1); * mInterfaceImage.HardScale = Vector3.one * mFlatCamera.Width/mInterfaceImage.mImage.PixelDimension.x; * mInterfaceImage.HardPosition = mFlatCamera.get_point(Vector3.zero); * mElement.Add(mInterfaceImage);*/ mIsInitialized = true; }