public static void Update(float deltaTime, List <GameObject> nearbyNPC, GameMap map, GameObject source) { source.PhysicsComponent.Clock += deltaTime; source.PhysicsComponent.NearbyUnits = getInRangeUnits(nearbyNPC, source); Move(deltaTime, map, source.PhysicsComponent); if (source.PhysicsComponent.objective != null && !StatsProcessor.CheckIfAlive(source.PhysicsComponent.objective.StatsComponent)) { source.PhysicsComponent.objective = null; } }
public static void Unequip(GameObject bearer, ItemComponent item) { StatsProcessor.RemoveBonuses(bearer.StatsComponent); if (bearer.Inventory.Where(i => i.Name.Equals(item.Name) && i.Equiped).First() != null) { bearer.StatsComponent.ItemStrength -= item.StrengthBonus; bearer.StatsComponent.ItemDexterity -= item.DexterityBonus; bearer.StatsComponent.ItemIntelligence -= item.IntelligenceBonus; bearer.StatsComponent.ItemConstitution -= item.ConstitutionBonus; bearer.StatsComponent.ItemSpirit -= item.SpiritBonus; bearer.StatsComponent.ItemRange -= item.RangeBonus; bearer.StatsComponent.ItemDamage -= item.DamageBonus; bearer.StatsComponent.ItemHp -= item.HPBonus; item.Equiped = false; } StatsProcessor.ApplyBonuses(bearer.StatsComponent); StatsProcessor.CalculateStats(bearer.StatsComponent); }