private static void NPCLeaving(NPCBase npc) { if (Random.NextFloat() > .49f) { float cost = PenalizeFood(npc.Colony, 0.05f); PandaChat.Send(npc.Colony, $"A colonist has left your colony taking {cost} food.", ChatColor.red); } else { var numberOfItems = Random.Next(1, 10); for (var i = 0; i < numberOfItems; i++) { var randItem = Random.Next(npc.Colony.Stockpile.ItemCount); var item = npc.Colony.Stockpile.GetByIndex(randItem); if (item.Type != ColonyBuiltIn.ItemTypes.AIR.Id && item.Amount != 0) { var leaveTax = Pipliz.Math.RoundToInt(item.Amount * .10); npc.Colony.Stockpile.TryRemove(item.Type, leaveTax); PandaChat.Send(npc.Colony, $"A leaving colonist has taken {leaveTax} {Models.ItemId.GetItemId(item.Type).Name}", ChatColor.red); } } PandaChat.Send(npc.Colony, $"A colonist has left your colony taking 10% of {numberOfItems} items from your stockpile.", ChatColor.red); } npc.health = 0; npc.OnDeath(); }
private static void NPCLeaving(NPCBase npc) { if (Random.NextFloat() > .49f) { float cost = ColonistManager.PenalizeFood(npc.Colony, 0.05f); PandaChat.Send(npc.Colony, _localizationHelper, "TakenFood", ChatColor.red); } else { var numberOfItems = Random.Next(1, 10); for (var i = 0; i < numberOfItems; i++) { var randItem = Random.Next(npc.Colony.Stockpile.ItemCount); var item = npc.Colony.Stockpile.GetByIndex(randItem); if (item.Type != ColonyBuiltIn.ItemTypes.AIR.Id && item.Amount != 0) { var leaveTax = Pipliz.Math.RoundToInt(item.Amount * .10); npc.Colony.Stockpile.TryRemove(item.Type, leaveTax); PandaChat.Send(npc.Colony, _localizationHelper, "LeavingTakingItems", ChatColor.red, leaveTax.ToString(), ItemId.GetItemId(item.Type).Name); } } PandaChat.Send(npc.Colony, _localizationHelper, "LeavingNumberOfItems", ChatColor.red, numberOfItems.ToString()); } npc.health = 0; npc.OnDeath(); }