private void Start() { // Get the catManager if (GameObject.Find("CatManager") != null) { catManager = GameObject.Find("CatManager").GetComponent <UICatSelect>(); // Set the correct cat switch (this.gameObject.tag) { case "playerOne": catData = catManager.playerOne; break; case "playerTwo": catData = catManager.playerTwo; break; } } // Get the sprite renderer spriteRenderer = this.gameObject.GetComponent <SpriteRenderer>(); // Set the sprite spriteRenderer.sprite = catData.sprite; // Set the scale transform.localScale = catData.size; // Add the collider // Unity automatically sets the collider to equal the sprite this.gameObject.AddComponent <PolygonCollider2D>(); }
static public CatData Create() { CatData data = new CatData(); data.InitDefault(); return(data); }
public void randomSelectCat() { switch (playerSelecting) { case 1: playerOne = catDatas[Random.Range(0, catDatas.Count)]; // Create the cat preview playerOneObject = GameObject.FindGameObjectWithTag("playerOne"); playerOneObject.GetComponent <SpriteRenderer>().sprite = questionMark; playerOneObject.transform.localScale = new Vector3(0.5f, 0.5f, 1); playerOneObject.transform.localRotation = Quaternion.Euler(0f, 0f, Random.Range(0f, 360f)); Destroy(playerOneObject.GetComponent <PolygonCollider2D>()); playerOneObject.AddComponent <PolygonCollider2D>(); playerOneObject.transform.localPosition = new Vector3(-6.595f, 3f, 0f); playerSelecting = 2; break; case 2: playerTwo = catDatas[Random.Range(0, catDatas.Count)]; // Create the cat preview playerTwoObject = GameObject.FindGameObjectWithTag("playerTwo"); playerTwoObject.GetComponent <SpriteRenderer>().sprite = questionMark; playerTwoObject.transform.localScale = new Vector3(0.5f, 0.5f, 1); playerTwoObject.transform.localRotation = Quaternion.Euler(0f, 0f, Random.Range(0f, 360f)); Destroy(playerTwoObject.GetComponent <PolygonCollider2D>()); playerTwoObject.AddComponent <PolygonCollider2D>(); playerTwoObject.transform.localPosition = new Vector3(6.595f, 3f, 0f); playerSelecting = 0; break; } }
public void resetCatSelect() { playerSelecting = 1; playerOne = null; playerTwo = null; playerOneObject.GetComponent <SpriteRenderer>().sprite = null; playerTwoObject.GetComponent <SpriteRenderer>().sprite = null; }
public void MarkFound(CatData cat) { if (!statuses[cat].Found) { statuses[cat].LastGift = new TimeSpan(DateTime.UtcNow.Ticks); statuses[cat].Found = true; statusDirty = true; } }
public void AddCat(CatData cat) { if (currentCats.Contains(cat)) { return; } currentCats.Add(cat); CheckCatProgress(); }
public async Task <ActionResult> DeleteConfirmed(int id) { CatData catData = await db.CatDatas.FindAsync(id); db.CatDatas.Remove(catData); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public void UpdateMood(CatData cat, float value) { if (statuses[cat].Mood < MoodColors.Length / 2) { statuses[cat].LastGift = new TimeSpan(DateTime.UtcNow.Ticks); } statuses[cat].MoodValue = value; statuses[cat].Mood = Mathf.RoundToInt(value * (MoodColors.Length - 1)); statusDirty = true; }
//init state public void InitState_1() { _gameData = new GameDataManager(); _playRoutine = new PlayRoutine(); _gameData.Add(CatData.Create()); _gameData.Add(CatData.Create()); _gameData.Add(CatData.Create()); _gameData.Add(CatData.Create()); }
public void AddRandomLetter(CatData cat) { AddLetter(new Letter(cat, new Dictionary <PlacableData, int>() { { DataManager.Instance.TowerComponents[Random.Range(0, DataManager.Instance.TowerComponents.Length)], Random.Range(1, 4) }, { DataManager.Instance.ToyComponents[Random.Range(0, DataManager.Instance.ToyComponents.Length)], Random.Range(1, 4) }, { DataManager.Instance.TreatComponents[Random.Range(0, DataManager.Instance.TreatComponents.Length)], Random.Range(1, 4) } })); }
public async Task CatCommandAsnyc(CommandContext ctx, params string[] args) { CatData cat = default; bool skipRandom = false; foreach (var arg in args) { if (arg.StartsWith("id=")) { cat = await Cats.GetCatByIdAsync(arg[3..]);
public async Task <ActionResult> Edit([Bind(Include = "CatID,CategoryName")] CatData catData) { if (ModelState.IsValid) { db.Entry(catData).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(catData)); }
public async Task <ActionResult> Create([Bind(Include = "CatID,CategoryName")] CatData catData) { if (ModelState.IsValid) { db.CatDatas.Add(catData); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(catData)); }
public void CheckForCats() { if (/*GetInArea(PlacableDataType.Cat).Count < 2 &&*/ waitingCat == null) { UpdateValidCats(); if (validCats.Count > 0) { waitingCat = validCats[Random.Range(0, validCats.Count)]; StartCoroutine(WaitToSpawnCat()); } } }
bool HasRequ(CatData cat) { if (CatManager.Instance.TimeSinceLeave(cat) < cat.Prefab.GetComponent <CatController>().AwayLength[CatManager.Instance.GetMood(cat)]) { return(false); } List <Placable> towers = GetInArea(PlacableDataType.Tower); bool hasTower = false; for (int i = 0; i < towers.Count; i++) { if ((towers[i].Data as UpgradableData).MaterialType == cat.RequiredTowerType && (towers[i].Data as UpgradableData).Level >= cat.RequiredTowerLevel) { hasTower = true; break; } } if (!hasTower) { return(false); } for (int i = 0; i < cat.OtherRequirements.Length; i++) { bool hasRequ = false; if (PlacementManager.Instance.CurrentAttached != null && PlacementManager.Instance.CurrentAttached.Data == cat.OtherRequirements[i]) { hasRequ = true; } else { for (int j = 0; j < placedInArea.Count; j++) { if (placedInArea[j].Data == cat.OtherRequirements[i] && (placedInArea[i].GetComponent <ItemController>() == null || placedInArea[i].GetComponent <ItemController>().AnyLeft())) { hasRequ = true; break; } } } if (!hasRequ) { return(false); } } return(true); }
private bool canUpdateCat() { if (cat != null) { CatData monsterData = cat.GetComponent <CatData>(); CatLevel nextLevel = monsterData.getNextLevel(); if (null != nextLevel) //更高的等级存在 { return(gameManager.Gold >= nextLevel.cost); } } return(false); }
// GET: CatDatas/Delete/5 public async Task <ActionResult> Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CatData catData = await db.CatDatas.FindAsync(id); if (catData == null) { return(HttpNotFound()); } return(View(catData)); }
void Load() { if (File.Exists(Application.persistentDataPath + "/cats_" + DataManager.saveVersion + ".txt")) { string[] catsData = File.ReadAllLines(Application.persistentDataPath + "/cats_" + DataManager.saveVersion + ".txt"); for (int i = 0; i < catsData.Length; i += 6) { CatData cat = DataManager.Instance.GetData(catsData[i]) as CatData; statuses[cat].Found = bool.Parse(catsData[i + 1]); statuses[cat].MoodValue = float.Parse(catsData[i + 2]); statuses[cat].LastGift = new TimeSpan(long.Parse(catsData[i + 3])); statuses[cat].LastLeave = new TimeSpan(long.Parse(catsData[i + 4])); statuses[cat].LastEnter = new TimeSpan(long.Parse(catsData[i + 5])); statuses[cat].Mood = Mathf.RoundToInt(statuses[cat].MoodValue * (MoodColors.Length - 1)); } } }
protected virtual void Start() { playArea = GetComponentInParent <PlayArea>(); catData = Data as CatData; AddState <SitState>(); AddState <WalkState>(); AddState <TutorialSitState>(); AddState <TutorialWalkState>(); AddState <EatState>(); AddState <PetState>(); AddState <PlayState>(); AddState <ChaseState>(); AddState <ChasePlayState>(); CatManager.Instance.MarkFound(catData); moodValue = CatManager.Instance.GetMoodValue(catData); mood = CatManager.Instance.GetMood(catData); moodMat.color = CatManager.Instance.MoodColors[mood]; if (HelpManager.Instance.CurrentStep == TutorialStep.Start) { targetPos = Vector3.zero; SetState <TutorialWalkState>(); } else if (HelpManager.Instance.CurrentStep == TutorialStep.Mail) { targetPos = MailboxManager.Instance.transform.localPosition; SetState <TutorialWalkState>(); } else if (HelpManager.Instance.CurrentStep == TutorialStep.GrabBook) { targetPos = BookController.Instance.transform.localPosition; SetState <TutorialWalkState>(); } else { SetState <SitState>(); } if (StayForever) { HelpManager.Instance.onCompleteTutorialStep += OnCompleteTutorialStep; } }
public void CheckWaitingCat() { if (waitingCat != null) { UpdateValidCats(); if (!validCats.Contains(waitingCat)) { if (validCats.Count > 0) { waitingCat = validCats[Random.Range(0, validCats.Count)]; } else { StopAllCoroutines(); } } } }
IEnumerator WaitToSpawnCat() { if (HelpManager.Instance.CurrentStep == TutorialStep.PlaceToy) { yield return(new WaitForSeconds(1f)); } else { yield return(new WaitForSeconds(waitingCat.Prefab.GetComponent <CatController>().SpawnWait[CatManager.Instance.GetMood(waitingCat)])); } Placable cat = PlacementManager.Instance.PlaceAt(this, waitingCat, CatSpawnPoint.localPosition, true); CatManager.Instance.EnterArea(waitingCat); cat.GetComponent <CatController>().EnterArea(); waitingCat = null; CheckForCats(); }
/// <summary> /// 获取商品的所有分类 /// </summary> /// <returns></returns> public async Task <List <CatData> > findAll() { List <Cat> cats = await db.Cat.ToListAsync(); List <CatData> catDatas = new List <CatData>(); CatData catdata = null; cats.ForEach((n) => { if (n.parentId.Equals(0)) { catdata = new CatData(); catdata.cat = n; catdata.child = this.findChild(cats, n.id); catDatas.Add(catdata); } }); return(catDatas); }
public float GetMoodValue(CatData cat) { return(statuses[cat].MoodValue); }
public void LeaveArea(CatData cat) { statuses[cat].LastLeave = new TimeSpan(DateTime.UtcNow.Ticks); statusDirty = true; }
public void AddWeightedRandomLetter(CatData cat) { List <CatData> unfoundCats = new List <CatData>(); for (int i = 0; i < DataManager.Instance.Cats.Length; i++) { if (!CatManager.Instance.IsFound(DataManager.Instance.Cats[i])) { unfoundCats.Add(DataManager.Instance.Cats[i]); } } Dictionary <PlacableData, int> weights = new Dictionary <PlacableData, int>(); int totalWeight = 0; for (int i = 0; i < DataManager.Instance.Cats.Length; i++) { int weight = 1; if (unfoundCats.Count > 0 && DataManager.Instance.Cats[i] == unfoundCats[0]) { weight = 20; } else if (unfoundCats.Count > 1 && DataManager.Instance.Cats[i] == unfoundCats[1]) { weight = 7; } else if (unfoundCats.Count > 2 && DataManager.Instance.Cats[i] == unfoundCats[2]) { weight = 2; } AddWeight(weights, DataManager.Instance.TowerComponents[(int)DataManager.Instance.Cats[i].RequiredTowerType], weight * DataManager.Instance.GetTowerMatAmount(DataManager.Instance.Cats[i].RequiredTowerType, DataManager.Instance.Cats[i].RequiredTowerLevel) / 2, ref totalWeight); for (int j = 0; j < DataManager.Instance.Cats[i].OtherRequirements.Length; j++) { BuildableData buildable = DataManager.Instance.Cats[i].OtherRequirements[j] as BuildableData; if (!buildable.Unlimited) { if (!PlayerManager.Instance.HasRecipe(buildable) && !HasRecipe(buildable)) { for (int k = 0; k < DataManager.Instance.ToyRecipes.Length; k++) { if (DataManager.Instance.ToyRecipes[k].Product == buildable) { AddWeight(weights, DataManager.Instance.ToyRecipes[k], weight, ref totalWeight); break; } } for (int k = 0; k < DataManager.Instance.TreatRecipes.Length; k++) { if (DataManager.Instance.TreatRecipes[k].Product == buildable) { AddWeight(weights, DataManager.Instance.TreatRecipes[k], weight, ref totalWeight); break; } } } for (int k = 0; k < buildable.BuildRequirements.Length; k++) { AddWeight(weights, buildable.BuildRequirements[k], weight, ref totalWeight); } } } } Dictionary <PlacableData, int> gifts = new Dictionary <PlacableData, int>(); for (int i = 0; i < 4; i++) { int randWeight = Random.Range(0, totalWeight); int currWeight = 0; foreach (KeyValuePair <PlacableData, int> pair in weights) { currWeight += pair.Value; if (currWeight > randWeight) { if (gifts.ContainsKey(pair.Key)) { if (pair.Key.DataType != PlacableDataType.ToyRecipe && pair.Key.DataType != PlacableDataType.TreatRecipe) { gifts[pair.Key]++; } } else { gifts.Add(pair.Key, 1); } break; } } } AddLetter(new Letter(cat, gifts)); }
public void LeftAreaAfter(CatData cat, float length) { statuses[cat].LastLeave = statuses[cat].LastEnter.Add(TimeSpan.FromSeconds(length)); statusDirty = true; }
public void EnterArea(CatData cat) { statuses[cat].LastEnter = new TimeSpan(DateTime.UtcNow.Ticks); statusDirty = true; }
public float TimeSinceEnter(CatData cat) { return((float)(new TimeSpan(DateTime.UtcNow.Ticks).Subtract(statuses[cat].LastEnter).TotalSeconds)); }
public int GetMood(CatData cat) { return(statuses[cat].Mood); }
public bool IsFound(CatData cat) { return(statuses[cat].Found); }