public Mob(Level level, IMobBehaviour behaviour, Position startPosition, CharacterStatistics statistics, bool confused = false) : base(startPosition) { Id = ++lastId; this.level = level; Behaviour = behaviour; originalBehaviour = behaviour; this.statistics = statistics; if (confused) { BecomeConfused(); } }
public override void BecomeConfused() { if (!cancelled) { return; } cancelled = false; Task.Delay(ConfusionTimeMs, cancellation.Token).ContinueWith(t => { if (cancelled) { return; } Behaviour = originalBehaviour; cancelled = true; }); Behaviour = new ConfusedMobBehaviour(); }
public NetworkMob(Level level, IMobBehaviour behaviour, Position startPosition, CharacterStatistics statistics, bool confused = false) : base(level, behaviour, startPosition, statistics, confused) { }