public static void ObjectHealthChanged(ObjectHealthChanged P) { MapObject Temp; for (int I = 0; I < MapLayer.ObjectList.Count; I++) { Temp = MapLayer.ObjectList[I]; if (Temp.ObjectID == P.ObjectID) { Temp.CurrentHP = P.HP; Temp.MaxHP = P.MaxHP; return; } } }
private IEnumerable <AGameEvent> AddBonus(AGameBonus bonus, long time) { if (bonus.Is(EnumObjectType.Remedy)) { var health = HealthAmount; var potentialHealth = health + health * bonus.DamageFactor; HealthAmount = potentialHealth > MaxHealthAmount ? MaxHealthAmount : potentialHealth; AGameEvent gameEvent = new ObjectHealthChanged(HealthAmount, Id, time); return(new[] { new ObjectDeleted(bonus.Id, time), gameEvent }); } Bonuses.RemoveAll(b => b.ObjectType == bonus.ObjectType); Bonuses.Add(bonus); bonus.Taken(time); //t = new BonusesChanged(Id, time, MergeBonuses()); return(new AGameEvent[] { new ObjectDeleted(bonus.Id, time) //t }); }