public void FulfillNeed(NeedIndex need, int value, int minutes = NEED_FULFILMENT_COUNTER) { m_Needs[need].Fulfill(value); m_FulfillingNeed = need; m_FulfilmentCounter = minutes; Debug.Log(JoyName + " is fulfilling need " + need.ToString()); }
/// <summary> /// Create a new entity, naked and squirming /// Created with no equipment, knowledge, family, etc /// </summary> /// <param name="template"></param> /// <param name="needs"></param> /// <param name="level"></param> /// <param name="job"></param> /// <param name="sex"></param> /// <param name="sexuality"></param> /// <param name="position"></param> /// <param name="icons"></param> /// <param name="world"></param> public Entity(EntityTemplate template, Dictionary <NeedIndex, EntityNeed> needs, int level, JobType job, Sex sex, Sexuality sexuality, Vector2Int position, List <Sprite> sprites, WorldInstance world) : base(NameProvider.GetRandomName(template.CreatureType, sex), template.Statistics[StatisticIndex.Endurance].Value * 2, position, sprites, template.JoyType, true) { this.CreatureType = template.CreatureType; this.m_Size = template.Size; this.Slots = template.Slots; this.m_JobLevels = new Dictionary <string, int>(); this.m_Sexuality = sexuality; this.m_IdentifiedItems = new List <string>(); this.m_Statistics = template.Statistics; if (template.Skills.Count == 0) { this.m_Skills = EntitySkillHandler.GetSkillBlock(needs); } else { this.m_Skills = template.Skills; } this.m_Needs = needs; this.m_Abilities = template.Abilities; this.m_Level = level; for (int i = 1; i < level; i++) { this.LevelUp(); } this.m_Experience = 0; this.m_CurrentJob = job; this.m_Sentient = template.Sentient; this.m_NaturalWeapons = NaturalWeaponHelper.MakeNaturalWeapon(template.Size); this.m_Equipment = new Dictionary <string, ItemInstance>(); this.m_Backpack = new List <ItemInstance>(); this.m_Relationships = new Dictionary <long, int>(); this.Sex = sex; this.m_Family = new Dictionary <long, RelationshipStatus>(); this.m_VisionType = template.VisionType; this.m_Tileset = template.Tileset; this.CalculateDerivatives(); this.m_Vision = new bool[1, 1]; this.m_Pathfinder = new Pathfinder(); this.m_PathfindingData = new Queue <Vector2Int>(); this.m_FulfillingNeed = (NeedIndex)(-1); this.m_FulfilmentCounter = 0; this.RegenTicker = RNG.Roll(0, REGEN_TICK_TIME - 1); this.MyWorld = world; SetFOVHandler(); SetCurrentTarget(); }
public void FulfillNeed(string need, int value, int minutes = NEED_FULFILMENT_DEFAULT) { NeedIndex needIndex = (NeedIndex)Enum.Parse(typeof(NeedIndex), need, true); m_AssociatedEntity.FulfillNeed(needIndex, value, minutes); }