public void getEaten(FishHunt hunt) { isBusy = true; isDying = true; deathCause = DeathCause.Eaten; deathTime = 1; dyingTimer = 1; }
void RemoveCreature(int cId, CharacterManager.DeathCause cause) { bool foundOne = false; int index = 0; int found = -1; while (index < creatures.Count && !foundOne) { if (creatures[index].id == cId && !creatures[index].isDying) { foundOne = true; found = index; } else { index++; } } if (foundOne) { SwimmingCreature c = creatures[found]; //creatures.Remove(c); if (cause == null) { cause = CharacterManager.DeathCause.Starve; } switch (cause) { case CharacterManager.DeathCause.Sold: c.startFishing(lures[Random.Range(0, lures.Count)]); break; case CharacterManager.DeathCause.Hot: c.startDying(player.tooHotPart); break; case CharacterManager.DeathCause.Cold: c.startDying(player.tooCoolPart); break; case CharacterManager.DeathCause.Eaten: SwimmingCreature predator = findRandomCreatureOfTier(c.level + 1); float fasterHunting = Mathf.Max(1, predator.huntingFish.Count); FishHunt hunt = new FishHunt(predator, c, predatorTime / fasterHunting); predator.huntingFish.Add(hunt); c.getEaten(hunt); predator.startEating(); break; case CharacterManager.DeathCause.Starve: c.startDying(player.starvedPart); break; } } }