public void GetAnswerStringValue_ShouldReturnCorrectValue_ForFileUpload(EElementType type) { // Arrange var questionId = "test-questionID"; var labelText = "Evidence file"; var value = new List <FileUploadModel> { new FileUploadModel { TrustedOriginalFileName = "your_upload_file.txt" } }; var formAnswers = new FormAnswers { Pages = new List <PageAnswers> { new PageAnswers { Answers = new List <Answers> { new Answers { QuestionId = $"{questionId}-fileupload", Response = Newtonsoft.Json.JsonConvert.SerializeObject(value) } } } } }; var element = new ElementBuilder() .WithType(type) .WithQuestionId(questionId) .WithLabel(labelText) .Build(); // Act var result = _elementMapper.GetAnswerStringValue(element, formAnswers); // Assert Assert.Equal(value[0].TrustedOriginalFileName, result); }
public void ConditionalElementsAreValidCheck_IsNotValid_NoConditionalElement( EElementType elementType, string conditionalElementId) { // Arrange var option1 = new Option { ConditionalElementId = conditionalElementId, Value = "Value1" }; var element1 = new ElementBuilder() .WithType(elementType) .WithOptions(new List <Option> { option1 }) .Build(); var page = new PageBuilder() .WithElement(element1) .Build(); var schema = new FormSchemaBuilder() .WithPage(page) .WithName("test-name") .Build(); // Act ConditionalElementCheck check = new(); var result = check.Validate(schema); // Assert Assert.False(result.IsValid); Assert.All <string>(result.Messages, message => Assert.StartsWith(IntegrityChecksConstants.FAILURE, message)); }
public static EElementType GetFusionType(EElementType firstElement, EElementType secondElement) { EElementType fusionType; _FusionTable.TryGetValue(new KeyValuePair<EElementType, EElementType>(firstElement, secondElement), out fusionType); return fusionType; }
private void AddOrDelete(EElementType type, Vector2 position) { if (!_Inputs.Any(i => i.ElementType == type)) _Inputs.Add(new RawInput { ElementType = type, PlayerId = 1, Position = position }); else _Inputs.Remove(_Inputs.Single(i => i.ElementType == type)); }
public BulletTransmit(EntityBase entity, int bulletid, bool clear = false) { this.m_Entity = entity; this.weapondata = LocalModelManager.Instance.Weapon_weapon.GetBeanById(bulletid); this.mThunderRatio = 1f; this.attackratio = 1f; if (this.m_Entity == null) { this.attribute = new EntityAttributeBase(); } else { if (!clear) { this.attribute = new EntityAttributeBase(this.m_Entity.m_Data.CharID); this.m_Entity.m_EntityData.attribute.AttributeTo(this.attribute); this.CritRate = this.attribute.CritRate.Value; this.CritSuperRate = this.attribute.CritSuperRate.Value; this.mThroughEnemy = this.m_Entity.m_EntityData.ThroughEnemy; this.mThroughRatio = this.m_Entity.m_EntityData.ThroughRatio; this.mDebuffList = this.m_Entity.GetDebuffList(); this.mHitCreate2 = this.m_Entity.m_EntityData.HitCreate2; this.mHitCreate2Percent = this.m_Entity.m_EntityData.mHitCreate2Percent; this.mHitSputter = this.m_Entity.m_EntityData.BulletSputter; this.trailType = this.m_Entity.m_EntityData.ArrowTrailType; this.headType = this.m_Entity.m_EntityData.ArrowHeadType; } else { this.Clear(); } this.attack = MathDxx.CeilToInt((float)this.m_Entity.m_EntityData.GetAttack(this.weapondata.Attack)); } }
public void GetAnswerStringValue_ShouldReturnCorrectValue_ForElements(EElementType type, string value) { // Arrange var questionId = "test-questionID"; var formAnswers = new FormAnswers { Pages = new List <PageAnswers> { new PageAnswers { Answers = new List <Answers> { new Answers { QuestionId = questionId, Response = value } } } } }; var element = new ElementBuilder() .WithType(type) .WithQuestionId(questionId) .Build(); // Act var result = _elementMapper.GetAnswerStringValue(element, formAnswers); // Assert Assert.Equal(value, result); }
public static GameElement Create(EElementType elementType) { GameElement gameElement = null; switch (elementType) { case EElementType.D_WaterHell: gameElement = new WaterHell(); break; case EElementType.O_CarnivoreFruit: gameElement = new CarnivoreFruit(); break; case EElementType.O_DominoSpider: gameElement = new DominoSpider(); break; case EElementType.O_Mushroom: gameElement = new Mushroom(); break; case EElementType.O_WoolBall: gameElement = new WoolBall(); break; case EElementType.S_DesyncSound: gameElement = new DesyncSoud(); break; case EElementType.F_MushroomJose: gameElement = new MushroomJose(); break; default: gameElement = null; break; } return gameElement; }
public Monster(string name, EElementType elementType, int health, int attack, int defense) { Name = name; ElementType = elementType; Health = health; AttackStat = attack; DefenseStat = defense; }
private void Clear() { this.attribute = new EntityAttributeBase(this.m_Entity.m_Data.CharID); this.mThroughEnemy = 0; this.mHitCreate2 = 0; this.mDebuffList.Clear(); this.trailType = EElementType.eNone; this.headType = EElementType.eNone; }
public void InitWithBaseScene(GUISummonCollectionScene baseScene, EElementType et, int cur, int max) { this.mBaseScene = baseScene; this.mElementType = et; this.mCurNum = cur; this.mMaxNum = max; this.mIsTitle = true; this.CreateObjects(); this.Refresh(); }
public void AddElement(EElementType type) { BodyElementData local1 = this.ElementColor[type]; local1.count++; if (!this.bHittedColor) { this.UpdateElement(); } }
public void RemoveElement(EElementType type) { BodyElementData data = this.ElementColor[type]; data.count--; if ((data.count == 0) && !this.bHittedColor) { this.mShaderBase.ReturnToDefault(); } }
public void CheckForQuestionId_ThrowsException_IfQuestionIdDoesNotExist(EElementType elementType) { // Arrange var element = new ElementBuilder() .WithType(elementType) .Build(); // Act & Assert Assert.Throws <Exception>(() => _elementHelper.CheckForQuestionId(element)); }
public void CheckForLabel_ThrowsException_IfLabelDoesNotExists(EElementType elementType) { // Arrange var element = new ElementBuilder() .WithType(elementType) .WithQuestionId("test-id") .Build(); // Act & Assert Assert.Throws <Exception>(() => _elementHelper.CheckForLabel(element)); }
public void ElementBuilder_ShouldCreateGenericHtmlElementsWithText(EElementType eElementType, string text) { // Arrange var element = new ElementBuilder() .WithType(eElementType) .WithPropertyText(text) .Build(); // Act & Assert Assert.Equal(text, element.Properties.Text); }
public void ElementBuilder_ShouldThrowExceptionIfNoProviderGiven(EElementType type) { // Arrange var element = new ElementBuilder() .WithType(type) .WithQuestionId("Test") .Build(); //Assert Assert.Throws <Exception>(() => _elementHelper.CheckForProvider(element)); }
private GameObject _CreateElement(EElementType elementType, Vector2 controlPosition) { var element = Instantiate(_Prefabs[elementType]); element.transform.parent = this.transform; if (element.GetComponent<ObjectElement>() != null) element.transform.position = new Vector2(-(DistanceBetweenObjects / 2) + (controlPosition.x * DistanceBetweenObjects), element.transform.position.y); element.GetComponent<GameElement>().ElementType = elementType; element.GetComponent<GameElement>().ControlPosition = controlPosition; _GameElements.Add(element); return element; }
public void ElementBuilder_ShouldReturnTrue_IfProviderGiven(EElementType type) { // Arrange var element = new ElementBuilder() .WithType(type) .WithQuestionId("Test") .WithStreetProvider("FakeStreet") .WithAddressProvider("FakeAddress") .Build(); //Assert Assert.True(_elementHelper.CheckForProvider(element)); }
private void ExcuteAttribute() { if (this.buff_data.Attribute == "Att_Fire") { this.changeElement = EElementType.eFire; this.m_Entity.m_Body.AddElement(this.changeElement); } else if (this.buff_data.Attribute == "Att_Ice") { this.changeElement = EElementType.eIce; this.m_Entity.m_Body.AddElement(this.changeElement); } }
public void LoadMonsters(string filePath) { /* Format : Name,ElementType,Health,AttackStat,DefenseStat * example : MyMonster1,Earth,100,20,10 * data[] : 0,1,2,3,4 */ try { using (var reader = new StreamReader(File.Open(filePath, FileMode.Open))) { for (int i = 0; i < Capacity; i++) { string line = reader.ReadLine(); if (line == null) { Field[i] = null; return; } else { string[] data = line.Split(','); EElementType elementType = 0; if (data[1] == "Fire") { elementType = EElementType.Fire; } else if (data[1] == "Water") { elementType = EElementType.Water; } else if (data[1] == "Wind") { elementType = EElementType.Wind; } else if (data[1] == "Earth") { elementType = EElementType.Earth; } Field[i] = new Monster(data[0], elementType, Convert.ToInt32(data[2]), Convert.ToInt32(data[3]), Convert.ToInt32(data[4])); MonsterCount++; } } } } catch (FileNotFoundException) { return; } }
public void CheckForQuestionId_ReturnsTrue_IfQuestionIdExists(EElementType elementType) { // Arrange var element = new ElementBuilder() .WithType(elementType) .WithQuestionId("test") .Build(); // Act var result = _elementHelper.CheckForQuestionId(element); // Assert Assert.True(result); }
public async Task Map_ShouldReturnExpandoObject_WithSingleFile(EElementType type) { // Arrange var element = new ElementBuilder() .WithType(type) .WithQuestionId("file") .Build(); var element2 = new ElementBuilder() .WithType(type) .WithQuestionId("filetwo") .Build(); var page = new PageBuilder() .WithElement(element) .WithValidatedModel(true) .WithPageSlug("page-one") .Build(); var schema = new FormSchemaBuilder() .WithPage(page) .Build(); _mockSchemaFactory.Setup(_ => _.Build(It.IsAny <string>())) .ReturnsAsync(schema); _mockDistrubutedCache.Setup(_ => _.GetString(It.IsAny <string>())) .Returns(JsonConvert.SerializeObject(new FormAnswers { Pages = new List <PageAnswers>() })); _mockElementMapper.Setup(_ => _.GetAnswerValue(It.Is <IElement>(x => x.Properties.QuestionId == "file"), It.IsAny <FormAnswers>())) .Returns(null); _mockElementMapper.Setup(_ => _.GetAnswerValue(It.IsAny <IElement>(), It.IsAny <FormAnswers>())) .Returns(new List <File> { new File() }); // Act var result = await _service.Map("form", "guid"); // Assert var resultData = Assert.IsType <ExpandoObject>(result.Data); dynamic castResultsData = resultData; Assert.Single(castResultsData.file); Assert.NotNull(castResultsData); }
public void Add(string question, string answer, EElementType type) { if (string.IsNullOrWhiteSpace(answer)) { return; } if (type == EElementType.FileUpload || type == EElementType.MultipleFileUpload) { _filesData.Add($"{question}: {answer}"); } else { _data.Add(question, answer); } }
public void ElementBuilder_ShouldCreateListsWithListItems(EElementType eElementType) { // Arrange var listItems = new List <string> { "item 1", "item 2", "item 3" }; var element = new ElementBuilder() .WithType(eElementType) .WithListItems(listItems) .Build(); // Act & Assert Assert.Equal(3, element.Properties.ListItems.Count); Assert.Equal("item 1", element.Properties.ListItems[0]); }
public void Validate_ReturnsTrueWhenViewModelDoesntContainFileUpload(EElementType type) { // Arrange var element = new ElementBuilder() .WithType(type) .WithQuestionId("fileUpload") .Build(); var viewModel = new Dictionary <string, dynamic>(); // Act var result = _validator.Validate(element, viewModel, new form_builder.Models.FormSchema()); // Assert Assert.True(result.IsValid); }
public void Validate_ReturnsTrueWhenDocumentModel_IsNull(EElementType type) { // Arrange var element = new ElementBuilder() .WithType(type) .WithQuestionId("fileUpload") .Build(); var viewModel = new Dictionary <string, dynamic> { { $"fileUpload{FileUploadConstants.SUFFIX}", null } }; // Act var result = _validator.Validate(element, viewModel, new form_builder.Models.FormSchema()); // Assert Assert.True(result.IsValid); }
public void GetAnswerValue_Should_ThrowException_WhenDistributedCacheThrows(EElementType type) { // Arrange var key = "fileUploadTestKey"; _wrapper.Setup(_ => _.GetString(It.IsAny <string>())) .Returns(() => null); var formAnswers = new FormAnswers { Pages = new List <PageAnswers> { new PageAnswers { Answers = new List <Answers> { new Answers { QuestionId = $"{key}-fileupload", Response = JsonConvert.SerializeObject( new List <FileUploadModel> { new FileUploadModel { Key = key } } ) } } } } }; var element = new ElementBuilder() .WithType(type) .WithQuestionId(key) .Build(); // Act var result = Assert.Throws <Exception>(() => _elementMapper.GetAnswerValue(element, formAnswers)); // Assert Assert.Equal($"ElementMapper::GetFileUploadElementValue: An error has occurred while attempting to retrieve an uploaded file with key: {key} from the distributed cache", result.Message); }
public void InitWithBaseScene(GUISummonCollectionScene baseScene, EElementType et, PetInfo[] petInfo) { this.mBaseScene = baseScene; this.mElementType = et; for (int i = 0; i < 8; i++) { if (petInfo.Length > i) { this.mCollectionPetInfos[i] = petInfo[i]; } else { this.mCollectionPetInfos[i] = null; } } this.mIsTitle = false; this.CreateObjects(); this.Refresh(); }
public bool IsTypeBonus(EElementType attackType, EElementType defenseType) { if (attackType == EElementType.Fire) { if (defenseType == EElementType.Wind) { return(true); } } if (attackType == EElementType.Water) { if (defenseType == EElementType.Fire) { return(true); } } if (attackType == EElementType.Earth) { if (defenseType == EElementType.Fire) { return(true); } } if (attackType == EElementType.Wind) { if (defenseType == EElementType.Earth) { return(true); } if (defenseType == EElementType.Water) { return(true); } } return(false); }
public void ConditionalElementsAreValidCheck_IsValid( EElementType elementType, string conditionalElementId, string conditionalElementCorrespondingId) { // Arrange var option1 = new Option { ConditionalElementId = conditionalElementId, Value = "Value1" }; var element1 = new ElementBuilder() .WithType(elementType) .WithOptions(new List <Option> { option1 }) .Build(); var element2 = new ElementBuilder() .WithType(EElementType.Textbox) .WithQuestionId(conditionalElementCorrespondingId) .WithConditionalElement(true) .Build(); var page = new PageBuilder() .WithElement(element1) .WithElement(element2) .Build(); var schema = new FormSchemaBuilder() .WithPage(page) .WithName("test-name") .Build(); // Act & Assert ConditionalElementCheck check = new(); var result = check.Validate(schema); // Assert Assert.True(result.IsValid); Assert.DoesNotContain(IntegrityChecksConstants.FAILURE, result.Messages); }
public void Validate_ShouldReturn_True_ValidationResult_WhenQuestion_NotIn_ViewModel(EElementType type) { // Arrange var element = new ElementBuilder() .WithType(type) .WithQuestionId("fileuploadquestion") .Build(); var viewModel = new Dictionary <string, dynamic>(); // Act var result = _validator.Validate(element, viewModel, new form_builder.Models.FormSchema()); // Assert Assert.True(result.IsValid); }
private void _TryDefuse(EElementType unplugged) { //Defusion var fusionToDefuse = _GameElements.SingleOrDefault(g => { var fusionElement = g.GetComponent<FusionElement>(); return fusionElement != null && (fusionElement.FirstFusionElement == unplugged || fusionElement.SecondFusionElement == unplugged); }); if (fusionToDefuse != null) { var fusionElement = fusionToDefuse.GetComponent<FusionElement>(); _RemoveElement(fusionElement.ElementType); if (fusionElement.FirstFusionElement == unplugged) _CreateElement(fusionElement.SecondFusionElement, fusionElement.ControlPosition); else _CreateElement(fusionElement.FirstFusionElement, fusionElement.ControlPosition); _InputElements[fusionElement.FirstFusionElement].Fusioned = false; _InputElements[fusionElement.SecondFusionElement].Fusioned = false; } }
private static HitStruct GetHitStruct(EntityBase source, long beforehit, HitType hittype, HitBulletStruct bulletdata, HitSourceType sourcetype, EElementType element, int buffid, int soundid) => new HitStruct { source = source, before_hit = beforehit, type = (beforehit > 0L) ? HitType.Add : hittype, bulletdata = bulletdata, sourcetype = sourcetype, element = element, buffid = buffid, soundid = soundid };
private static HitStruct GetBuffHitStruct(EntityBase source, long beforehit, EElementType element, int buffid) { int soundid = 0; return(GetHitStruct(source, beforehit, HitType.Normal, null, HitSourceType.eBuff, element, buffid, soundid)); }
protected EElementType ScanElementType(FastBitmapHSV bitmap, Rectangle bounds) { EElementType element = EElementType.Unknown; int countElemR = 0; int countElemG = 0; int countElemB = 0; int countTotal = 0; const int hueDrift = 30; const int hueB = 180; const int hueG = 130; const int hueR = 15; foreach (var sampleBounds in rectActionElements) { for (int idxY = 0; idxY < sampleBounds.Height; idxY++) { for (int idxX = 0; idxX < sampleBounds.Width; idxX++) { FastPixelHSV testPx = bitmap.GetPixel(bounds.X + sampleBounds.X + idxX, bounds.Y + sampleBounds.Y + idxY); countTotal++; int testMono = testPx.GetMonochrome(); if (testMono < 210) { int testHue = testPx.GetHue(); countElemR += ((testHue > (hueR + 360 - hueDrift)) || (testHue < (hueR + hueDrift))) ? 1 : 0; countElemG += ((testHue > (hueG - hueDrift)) && (testHue < (hueG + hueDrift))) ? 1 : 0; countElemB += ((testHue > (hueB - hueDrift)) && (testHue < (hueB + hueDrift))) ? 1 : 0; } } } } int minThr = countTotal * 30 / 100; if ((countElemR > minThr) && (countElemR > countElemG) && (countElemR > countElemB)) { element = EElementType.Fire; } else if ((countElemG > minThr) && (countElemG > countElemR) && (countElemG > countElemB)) { element = EElementType.Wind; } else if ((countElemB > minThr) && (countElemB > countElemR) && (countElemB > countElemG)) { element = EElementType.Water; } if (element == EElementType.Unknown) { countElemR = 0; countElemG = 0; countElemB = 0; for (int idxY = 0; idxY < bounds.Height; idxY++) { for (int idxX = 0; idxX < bounds.Width; idxX++) { FastPixelHSV testPx = bitmap.GetPixel(bounds.X + idxX, bounds.Y + idxY); int testMono = testPx.GetMonochrome(); if (testMono < 210) { int testHue = testPx.GetHue(); countElemR += ((testHue > (hueR + 360 - hueDrift)) || (testHue < (hueR + hueDrift))) ? 1 : 0; countElemG += ((testHue > (hueG - hueDrift)) && (testHue < (hueG + hueDrift))) ? 1 : 0; countElemB += ((testHue > (hueB - hueDrift)) && (testHue < (hueB + hueDrift))) ? 1 : 0; } } } countTotal = bounds.Width * bounds.Height; minThr = countTotal * 30 / 100; if ((countElemR > minThr) && (countElemR > countElemG) && (countElemR > countElemB)) { element = EElementType.Fire; } else if ((countElemG > minThr) && (countElemG > countElemR) && (countElemG > countElemB)) { element = EElementType.Wind; } else if ((countElemB > minThr) && (countElemB > countElemR) && (countElemB > countElemG)) { element = EElementType.Water; } } if (DebugLevel >= EDebugLevel.Verbose) { Console.WriteLine(">> elem counters: R:{0}, G:{1}, B:{2} => {3}", countElemR, countElemG, countElemB, element); } return(element); }
private void AddCollectionTitle(EElementType tp) { if (this.mTitleOriginal == null) { this.mTitleOriginal = Res.LoadGUI("GUI/collectionTitle"); } GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate(this.mTitleOriginal); gameObject.name = this.mTitleOriginal.name; gameObject.transform.parent = this.mCollectionTable2.gameObject.transform; this.mContents.Add(gameObject.transform); gameObject.transform.localPosition = Vector3.zero; gameObject.transform.localScale = Vector3.one; CollectionTitle collectionTitle = gameObject.AddComponent<CollectionTitle>(); collectionTitle.mPriority = this.mBasePriority++; int hasPetsNum = this.GetHasPetsNum(tp); int typePetsTotalNum = this.GetTypePetsTotalNum(tp); collectionTitle.InitWithBaseScene(this.mBaseScene, tp, hasPetsNum, typePetsTotalNum); }
private void _RemoveElement(EElementType elementType) { var element = _GameElements.Single(g => g.GetComponent<GameElement>().ElementType == elementType); Destroy(element); _GameElements.Remove(element); }
private int GetHasPetsNum(EElementType tp) { int num = 0; switch (tp) { case EElementType.EET_Fire: for (int i = 0; i < this.mFirePetInfos.Count; i++) { if (Globals.Instance.Player.PetSystem.GetPetByInfoID(this.mFirePetInfos[i].ID) != null) { num++; } } break; case EElementType.EET_Wood: for (int j = 0; j < this.mWoodPetInfos.Count; j++) { if (Globals.Instance.Player.PetSystem.GetPetByInfoID(this.mWoodPetInfos[j].ID) != null) { num++; } } break; case EElementType.EET_Water: for (int k = 0; k < this.mWaterPetInfos.Count; k++) { if (Globals.Instance.Player.PetSystem.GetPetByInfoID(this.mWaterPetInfos[k].ID) != null) { num++; } } break; case EElementType.EET_Light: for (int l = 0; l < this.mLightPetInfos.Count; l++) { if (Globals.Instance.Player.PetSystem.GetPetByInfoID(this.mLightPetInfos[l].ID) != null) { num++; } } break; case EElementType.EET_Dark: for (int m = 0; m < this.mDarkPetInfos.Count; m++) { if (Globals.Instance.Player.PetSystem.GetPetByInfoID(this.mDarkPetInfos[m].ID) != null) { num++; } } break; } return num; }
private int GetTypePetsTotalNum(EElementType tp) { int result = 0; switch (tp) { case EElementType.EET_Fire: result = this.mFirePetInfos.Count; break; case EElementType.EET_Wood: result = this.mWoodPetInfos.Count; break; case EElementType.EET_Water: result = this.mWaterPetInfos.Count; break; case EElementType.EET_Light: result = this.mLightPetInfos.Count; break; case EElementType.EET_Dark: result = this.mDarkPetInfos.Count; break; } return result; }
public void Validate_ShouldReturn_True_ValidationResult_When_ValueIsNull_InViewModel_ForQuestion(EElementType type) { // Arrange var element = new ElementBuilder() .WithType(type) .WithQuestionId("fileuploadquestion") .Build(); var viewModel = new Dictionary <string, dynamic> { { $"fileuploadquestion{FileUploadConstants.SUFFIX}", null } }; // Act var result = _validator.Validate(element, viewModel, new form_builder.Models.FormSchema()); // Assert Assert.True(result.IsValid); }
public void Validate_ShouldReturn_True_ValidationResult_When_Flle_IsUnder_MaxSizeLimit(EElementType type, int maxSize) { // Arrange var element = new ElementBuilder() .WithType(type) .WithQuestionId("fileuploadquestion") .WithMaxFileSize(maxSize) .Build(); var viewModel = new Dictionary <string, dynamic> { { $"fileuploadquestion{FileUploadConstants.SUFFIX}", new List <DocumentModel> { new DocumentModel { FileSize = 1048576 } } } }; // Act var result = _validator.Validate(element, viewModel, new form_builder.Models.FormSchema()); // Assert Assert.True(result.IsValid); }
public ElementType(EElementType type) { Type = type; }
private void AddCollectionContent(EElementType tp, PetInfo[] petInfos) { if (this.mContentOriginal == null) { this.mContentOriginal = Res.LoadGUI("GUI/collectionContent"); } GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate(this.mContentOriginal); gameObject.name = this.mContentOriginal.name; gameObject.transform.parent = this.mCollectionTable2.gameObject.transform; this.mContents.Add(gameObject.transform); gameObject.transform.localPosition = Vector3.zero; gameObject.transform.localScale = Vector3.one; CollectionContent collectionContent = gameObject.AddComponent<CollectionContent>(); collectionContent.mPriority = this.mBasePriority++; collectionContent.InitWithBaseScene(this.mBaseScene, tp, petInfos); }