private void RemoveDeadAndOldAgressors() { for (int i = VillageAgressors.Count; i > 0; i--) { VillageAgressor villageagressor = VillageAgressors[i]; if (!villageagressor.Agressor.IsEntityAlive() || Math.Abs(TickCounter - villageagressor.AgressionTime) > 300) { VillageAgressors.RemoveAt(i); } } }
public virtual void AddOrRenewAgressor(EntityLiving par1EntityLiving) { for (IEnumerator <VillageAgressor> iterator = VillageAgressors.GetEnumerator(); iterator.MoveNext();) { VillageAgressor villageagressor = iterator.Current; if (villageagressor.Agressor == par1EntityLiving) { villageagressor.AgressionTime = TickCounter; return; } } VillageAgressors.Add(new VillageAgressor(this, par1EntityLiving, TickCounter)); }
public virtual EntityLiving FindNearestVillageAggressor(EntityLiving par1EntityLiving) { double d = double.MaxValue; VillageAgressor villageagressor = null; for (int i = 0; i < VillageAgressors.Count; i++) { VillageAgressor villageagressor1 = (VillageAgressor)VillageAgressors[i]; double d1 = villageagressor1.Agressor.GetDistanceSqToEntity(par1EntityLiving); if (d1 <= d) { villageagressor = villageagressor1; d = d1; } } return(villageagressor == null ? null : villageagressor.Agressor); }