예제 #1
0
        public Entity Enemy(int mX, int mY)
        {
            var result = new Entity(_manager);

            var cStats       = new CStats(1, 1, 1, 75);
            var cHealth      = new CHealth(cStats);
            var cBody        = Body(new SSVector2I(mX, mY), 10.ToUnits(), 10.ToUnits());
            var cMovement    = Movement(cBody);
            var cRender      = Render(cBody, Textures.CharEnemy, Tilesets.Char, "normal");
            var cShadower    = new CShadower(_game, cBody, false, new Color(125, 255, 125, 125));
            var cLineOfSight = new CLineOfSight(_game, cBody, cShadower)
            {
                TargetTag = Tags.Friendly, Angle = 90, Amplitude = 65
            };
            var cAI = AI(cStats, cBody, cMovement, cRender, cLineOfSight);

            cBody.Body.AddGroups(Groups.Character, Groups.Enemy);
            cBody.Body.AddGroupsToCheck(Groups.Obstacle);

            result.AddComponents(cHealth, cBody, cMovement, cRender, cShadower, cLineOfSight, cAI);
            result.AddTags(Tags.Char, Tags.Enemy, Tags.DamagedByFriendly);

            return(result);
        }
예제 #2
0
 private CAI AI(CStats mCStats, CBody mCBody, CMovement mCMovement, CRender mCRender, CLineOfSight mCLineOfSight)
 {
     return(new CAI(_game, mCStats, mCBody, mCMovement, mCRender, mCLineOfSight));
 }