Example #1
0
        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);
                }
            }
        }
Example #2
0
        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));
        }
Example #3
0
        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);
        }