public IdleController(AI_StateMachine ai, IContentLoader loader)
        {
            Dictionary <string, string> idleNpcDefinitions  = loader.LoadStrings("Data/IdleNPCDefinitions");
            Dictionary <string, string> behaviorDefinitions = loader.LoadStrings("Data/IdleBehaviors");

            this.ai     = ai;
            this.loader = loader;
            this.Setup(idleNpcDefinitions, behaviorDefinitions);
        }
        public FightController(AI_StateMachine ai, IContentLoader content, IModEvents events, int sword) : base(ai)
        {
            this.attackRadius             = 1.25f * Game1.tileSize;
            this.backupRadius             = 0.9f * Game1.tileSize;
            this.realLeader               = ai.player;
            this.leader                   = null;
            this.pathFinder.GoalCharacter = null;
            this.events                   = events;
            this.weapon                   = this.GetSword(sword);
            this.bubbles                  = content.LoadStrings("Strings/SpeechBubbles");
            this.fightSpeechTriggerThres  = ai.Csm.HasSkill("warrior") ? 0.25 : 0.7;

            if (Compat.IsModLoaded(ModUids.PACIFISTMOD_UID))
            {
                this.kissFrames = this.ai.ContentLoader.LoadData <string, string>("Data/FightFrames");
            }

            this.attackAnimation = new List <FarmerSprite.AnimationFrame>[4]
            {
                // Up
                new List <FarmerSprite.AnimationFrame>()
                {
                    new FarmerSprite.AnimationFrame(8, 100),
                    new FarmerSprite.AnimationFrame(9, 250),
                },
                // Right
                new List <FarmerSprite.AnimationFrame>()
                {
                    new FarmerSprite.AnimationFrame(6, 100),
                    new FarmerSprite.AnimationFrame(7, 250),
                },
                // Down
                new List <FarmerSprite.AnimationFrame>()
                {
                    new FarmerSprite.AnimationFrame(0, 100),
                    new FarmerSprite.AnimationFrame(1, 250),
                },
                // Left
                new List <FarmerSprite.AnimationFrame>()
                {
                    new FarmerSprite.AnimationFrame(14, 100),
                    new FarmerSprite.AnimationFrame(15, 250),
                },
            };
        }
Example #3
0
        public FightController(AI_StateMachine ai, IContentLoader content, IModEvents events, int sword) : base(ai)
        {
            this.attackRadius             = 1.25f * Game1.tileSize;
            this.backupRadius             = 0.9f * Game1.tileSize;
            this.realLeader               = ai.player;
            this.leader                   = null;
            this.pathFinder.GoalCharacter = null;
            this.events                   = events;
            this.weapon                   = this.GetSword(sword, this.ai.metadata.Profession == "warrior");
            this.bubbles                  = content.LoadStrings("Strings/SpeechBubbles");
            this.fightSpeechTriggerThres  = ai.metadata.Profession == "warrior" ? 0.33 : 0.15;

            this.attackAnimation = new List <FarmerSprite.AnimationFrame>[4]
            {
                // Up
                new List <FarmerSprite.AnimationFrame>()
                {
                    new FarmerSprite.AnimationFrame(8, 100),
                    new FarmerSprite.AnimationFrame(9, 250),
                },
                // Right
                new List <FarmerSprite.AnimationFrame>()
                {
                    new FarmerSprite.AnimationFrame(6, 100),
                    new FarmerSprite.AnimationFrame(7, 250),
                },
                // Down
                new List <FarmerSprite.AnimationFrame>()
                {
                    new FarmerSprite.AnimationFrame(0, 100),
                    new FarmerSprite.AnimationFrame(1, 250),
                },
                // Left
                new List <FarmerSprite.AnimationFrame>()
                {
                    new FarmerSprite.AnimationFrame(14, 100),
                    new FarmerSprite.AnimationFrame(15, 250),
                },
            };
        }