public override void InitializeAgent()
 {
     wm             = GetComponent <WeaponManager>();
     movement       = GetComponent <CMovement>();
     health         = GetComponent <CHealth>();
     grenadeThrower = GetComponent <CGrenadeThrower>();
 }
 public static void DisplayHealthBar()
 {
     foreach (GameObject go in Global.Entities)
     {
         CHealth health = go.GetComponent <CHealth>();
         if (health != null)
         {
             Global.Ecran.FillRectangle(Brushes.Black, go.posX - 8, go.CorrectedY - 20, 100, 10);
             Global.Ecran.FillRectangle(Brushes.Blue, go.posX - 8, go.CorrectedY - 20, (health.HP / health.InitialHP) * 100, 10);
             Global.Ecran.DrawString(health.HP + "/" + health.InitialHP, SystemFonts.DefaultFont, Brushes.White, go.posX, go.CorrectedY - 22);
         }
     }
 }
        public PeaEntity(float posX, float posY, double ShootSpeed, int shootDamage)
        {
            AI       = new AIPea(this);
            Layer    = 3;
            drawable = AddComponent(new CDrawable()) as CDrawable;
            moveable = AddComponent(new CMoveable()) as CMoveable;
            health   = AddComponent(new CHealth()) as CHealth;

            moveable.Speed   = new System.Drawing.Point((int)ShootSpeed, 0);
            health.InitialHP = 1;

            this.posX = posX;
            this.posY = posY;

            drawable.HitBox = new System.Drawing.Size(20, 20);
        }
Example #4
0
        public Entity BreakableWall(int mX, int mY)
        {
            var result = new Entity(_manager);

            var cHealth = new CHealth(85);
            var cBody   = Body(new SSVector2I(mX, mY), 16.ToUnits(), 16.ToUnits(), true);
            var cRender = Render(cBody, Textures.Wall, Tilesets.Wall, "breakable");

            cBody.Body.AddGroups(Groups.Obstacle);

            result.AddComponents(cHealth, cBody, cRender);
            result.AddTags(Tags.Wall, Tags.DamagedByAny);

            cRender.Sprite.Rotation = Utils.Random.Next(0, 4) * 90;

            return(result);
        }
Example #5
0
        public override void DoIt()
        {
            CHealth   health  = AssociatedGameObject.GetComponent <CHealth>();
            CDrawable nutDraw = AssociatedGameObject.GetComponent <CDrawable>();

            if (health.HP > 1333)
            {
                nutDraw.cycle = 0;
            }
            else if (health.HP < 1332 && health.HP > 666)
            {
                nutDraw.cycle = 1;
            }
            else
            {
                nutDraw.cycle = 2;
            }
        }
 void Update()
 {
     if (GetListCount() > 0)
     {
         m_fDamageTimer += Time.deltaTime;
         if (m_fDamageTimer > m_fTimePerTick)
         {
             for (int i = GetListCount(); i > 0; i--)
             {
                 int     iActiveIndex = i - 1;
                 CHealth TargetRef    = Get_ListGameObjectAtIndex(iActiveIndex).GetComponent <CHealth>();
                 CSoundBank.Instance.LavaTouch(TargetRef.gameObject);
                 TargetRef.TakeDamage(m_iDamagePerTick);
             }
             m_fDamageTimer = 0;
         }
     }
 }
Example #7
0
        public Entity Player(int mX, int mY)
        {
            var result = new Entity(_manager);

            var cStats    = new CStats(1, 1, 1, 50);
            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.CharPlayer, Tilesets.Char, "normal");
            var cControl  = Control(cBody, cStats, cMovement, cRender);
            var cShadower = new CShadower(_game, cBody, true, new Color(77, 77, 175, 255), 1);

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

            result.AddComponents(cStats, cHealth, cBody, cMovement, cControl, cRender, cShadower);
            result.AddTags(Tags.Char, Tags.Friendly, Tags.DamagedByEnemy);

            return(result);
        }
Example #8
0
    void Initialize()
    {
        if (m_bInitialized == false)
        {
            m_vPointOfInterest   = Vector3.zero;
            m_fSecToGenerateDest = m_fSecToGenerateDestBase;

            m_Health = GetComponent <CHealth>();

            m_Agent = GetComponent <NavMeshAgent>();
            if (GetAgent().stoppingDistance == 0)
            {
                GetAgent().stoppingDistance = 1.5f;
                m_fSpeedOriginal            = GetAgent().speed;
            }

            //m_Animator = GetComponent<Animator>();
            m_StatusEffects = GetComponent <CStatusEffects>();

            m_Senses = GetComponent <CSenses>();

            //m_Animations = GetComponent<CAnimations>();

            m_fLoseSightTimer = m_Senses.GetTimeUntilLoseSight();

            m_AIAttack = GetComponent <CAIAttack>();

            if (GetComponentInChildren <CSmokeVFX>())
            {
                m_SmokeVFX = GetComponentInChildren <CSmokeVFX>();
            }
            m_PlayerTransform = CPlayerControlls.GetPlayer().transform;

            m_Animator = GetComponent <Animator>();

            GetAnimator().keepAnimatorControllerStateOnDisable = true;

            m_bInitialized = true;
        }
    }
Example #9
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);
        }
Example #10
0
        /// <summary>
        /// Handler for when axe hits objects
        /// </summary>
        /// <param name="data">CollisionInfo instance</param>
        private void HandleAxeCollision(object data)
        {
            var coll = data as CollisionInfo?;

            if (!coll.HasValue)
            {
                return;
            }
            var collision = coll.Value;

            var e1 = collision.Entity1;
            var e2 = collision.Entity2;

            CHit    chit;
            CHealth h1;
            int     receiverId = 0;

            if (Game1.Inst.Scene.EntityHasComponent <CHit>(e1) && Game1.Inst.Scene.EntityHasComponent <CHealth>(e2))
            {
                receiverId = e2;
                chit       = (CHit)Game1.Inst.Scene.GetComponentFromEntity <CHit>(e1);
                if (chit.PlayerId == receiverId)
                {
                    return;
                }
                h1 = (CHealth)Game1.Inst.Scene.GetComponentFromEntity <CHealth>(e2);
            }
            else if (Game1.Inst.Scene.EntityHasComponent <CHealth>(e1) && Game1.Inst.Scene.EntityHasComponent <CHit>(e2))
            {
                receiverId = e1;
                chit       = (CHit)Game1.Inst.Scene.GetComponentFromEntity <CHit>(e2);
                if (chit.PlayerId == receiverId)
                {
                    return;
                }
                h1 = (CHealth)Game1.Inst.Scene.GetComponentFromEntity <CHealth>(e1);
            }
            else
            {
                return;
            }



            CHealth receiver = null;
            int     dealer   = 0;

            if (chit.IsAttacking && chit.AnimationProgress > 0.5f)
            {
                receiver         = h1;
                dealer           = chit.PlayerId;
                chit.LastSpashed = DateTime.Now;
            }
            else
            {
                return;
            }

            if (receiver.InvincibilityTime > 0)
            {
                return;
            }

            Game1.Inst.Scene.Raise("makedamage", new DamageInfo {
                dealer = dealer, receiver = receiver, receiverId = receiverId
            });
        }