public override async Task Generate(IField field)
        {
            var mob = new FieldObjMob(MobTemplate, LifeTemplate.Left)
            {
                Position = LifeTemplate.Position,
                Foothold = field.GetFoothold(LifeTemplate.FH)
            };

            await field.Enter(mob, () => mob.GetEnterFieldPacket(FieldObjMobAppearType.Regen));

            Mob = mob;
        }
        public override bool Check(DateTime now, IField field)
        {
            if (Mob != null)
            {
                if (Mob.Field == null)
                {
                    var random   = new Random();
                    var buffer   = 7 * LifeTemplate.MobTime / 10;
                    var interval = TimeSpan.FromSeconds(
                        13 * LifeTemplate.MobTime / 10 + random.Next(buffer)
                        );

                    NextRegen = NextRegen.Add(interval);
                    Mob       = null;
                }

                return(false);
            }

            return(NextRegen < now);
        }
示例#3
0
 public CalculatedMobStats(IFieldObjMob mob)
 {
     _mob = mob;
 }