Beispiel #1
0
        public virtual void MonsterMemberAttacksEnemyCheck()
        {
            if (LoopMonster.CombatCode != CombatCode.NeverFights && LoopMonster.CheckNBTLHostility() && LoopMonster.Weapon >= 0)
            {
                NextState = Globals.CreateInstance <IMonsterAttackLoopInitializeState>();

                GotoCleanup = true;
            }
        }
Beispiel #2
0
        public virtual void MonsterFleesCheck()
        {
            if (LoopMonster.CheckNBTLHostility() && LoopMonster.CanMoveToRoom(true) && !LoopMonster.CheckCourage())
            {
                Debug.Assert(LoopMonster.Reaction != Friendliness.Neutral);

                ActionCommand = Globals.CreateInstance <IMonsterFleeCommand>(x =>
                {
                    x.ActorMonster = LoopMonster;

                    x.ActorRoom = LoopMonsterRoom;
                });

                ActionCommand.Execute();

                if (LoopMonster.CurrGroupCount >= Globals.LoopGroupCount)
                {
                    GotoCleanup = true;
                }
            }
        }