Exemple #1
0
    // Start is called before the first frame update
    void Start()
    {
        hurtable = GetComponent <Hurtable>();
        hurtable.Initialize(config.HealthConfig);

        lootDropper = GetComponent <LootDropper>();
        lootDropper.Initialize(config.LootConfig);

        rigidBody = GetComponent <Rigidbody2D>();
        renderer  = GetComponentInChildren <SpriteRenderer>();
        anim      = GetComponent <Animator>();

        Retarget();

        playerLayer = LayerMask.NameToLayer("Player");
        player      = GameObject.FindGameObjectWithTag("Player").transform;

        if (config.IsJelly)
        {
            rigidBody.gravityScale = 0.1f;
            direction = Vector2.up;
        }
        Swim();

        spriteRenderers = new List <SpriteRenderer>(GetComponentsInChildren <SpriteRenderer>());
        spriteRenderers.AddRange(GetComponents <SpriteRenderer>());
        origColors = spriteRenderers.Select(rend => rend.color).ToList();

        startPosition = transform.position;
    }
Exemple #2
0
        // load config
        void LoadConfig()
        {
            Config.Settings.NullValueHandling = NullValueHandling.Include;
            try {
                data = Config.ReadObject <TruePVEData>();
            } catch (Exception e) {
                data = new TruePVEData();
            }
            Config.Settings.NullValueHandling = NullValueHandling.Include;
            bool dirty = CheckConfig();

            if (data.data == null || data.data.Count == 0)
            {
                dirty = LoadDefaultData();
            }

            global = data.LookupByName("global");
            if (global == null)
            {
                dirty = CreateDefaultGlobal();
            }
            if (dirty)
            {
                SaveData();
            }
        }
Exemple #3
0
 void Start()
 {
     spawn          = GameObject.FindGameObjectWithTag("PlayerSpawn").transform;
     submarine      = GetComponent <Submarine>();
     hurtable       = GetComponent <Hurtable>();
     playerControls = FindObjectOfType <PlayerControls>();
 }
Exemple #4
0
    void Start()
    {
        Hurtable h = GetComponent <Hurtable>();

        h.DiedEventHandler += (victim, from, weapon) => GameStateManager.Instance.FpsPlayersWon();
        StartCoroutine(EndMatchTimeout());
    }
Exemple #5
0
    void Update()
    {
        timeAlive += Time.deltaTime;
        if (timeAlive > timeToLive)
        {
            fireballPool.ReturnObject(this);
            return;
        }

        transform.Translate(-transform.right * velocity * Time.deltaTime, Space.World);

        List <Hurtable> hurtables = hitboxManager.GetOverlappedHurtables();

        if (hurtables.Count > 0)
        {
            Hurtable hurtable = hurtables[0];
            HurtInfo hurtInfo = hurtable.OnHit(new HitInfo(this.transform.position, this.parrySpawnObjectPrototype));
            if (hurtInfo.hitConnected)
            {
                fireballPool.ReturnObject(this);
            }
        }

        transform.localScale = velocity > 0 ? Vector3.one : invertedLocalScale;
    }
Exemple #6
0
    public override PlayerState Tick(PlayerController context)
    {
        if (timeInState >= duration)
        {
            return(new StateGrounded());
        }

        timeInState += Time.deltaTime;
        Collider2D[] hurtboxes = context.meleeHitbox.GetHurtboxes(context.enemyLayerMask);
        for (int i = 0; i < hurtboxes.Length; i++)
        {
            Hurtable hurtable = hurtboxes[i].GetComponent <Hurtable>();
            if (hurtable != null && !hitHurtables.Contains(hurtable))
            {
                hurtable.OnHurt(context.meleeHitbox);
                ShakeCamera();
                context.Hitstop(0.2f);
                hitHurtables.Add(hurtable);
            }
        }

        float horizInput      = context.GetPlayerInput().GetHorizInput();
        float targetVelocityX = horizInput * context.GetSpeed() * attackingMoveSpeedFactor;

        context.velocity.x = Mathf.SmoothDamp(context.velocity.x, targetVelocityX, ref context.velocityXSmoothing, context.GetVelocityXSmoothFactorGrounded());
        context.velocity.y = context.GetGravity() * Time.deltaTime;

        context.FaceVelocityX();
        context.GetController().Move(context.velocity * Time.deltaTime);

        return(this);
    }
Exemple #7
0
 // creates default "global" container
 bool CreateDefaultGlobal()
 {
     global                    = data.CreateHurtable("global");
     global.description        = "Global damage handling";
     global.links[global.name] = false;             // map global to itself - default no damage
     return(true);
 }
Exemple #8
0
    // Start is called before the first frame update
    void Start()
    {
        hurtable = GetComponent <Hurtable>();
        hurtable.Initialize(healthConfig);

        collider = GetComponent <Collider2D>();
        rb       = GetComponent <Rigidbody2D>();
    }
Exemple #9
0
            public Hurtable CreateHurtable(string name)
            {
                Hurtable h = new Hurtable();

                h.name       = name;
                data[h.name] = h;
                return(h);
            }
Exemple #10
0
    public void Start()
    {
        AttractorScript script = (AttractorScript)Object.FindObjectOfType(typeof(AttractorScript));

        _attractor = script.gameObject;
        _renderer  = (SpriteRenderer)GetComponent(typeof(UnityEngine.SpriteRenderer));
        _rigidbody = gameObject.GetComponent <Rigidbody2D>();
        _hurtable  = gameObject.GetComponent <Hurtable>();
    }
Exemple #11
0
    void OnTriggerEnter2D(Collider2D other)
    {
        Hurtable hurtable = other.gameObject.GetComponent <Hurtable>();

        if (hurtable != null && (mask == (mask | (1 << other.gameObject.layer))))
        {
            hurtable.Hit(damage, false);
        }
    }
Exemple #12
0
        // loads default data entries
        bool LoadDefaultData()
        {
            data.data.Clear();
            CreateDefaultGlobal();

            Hurtable napalm = data.CreateHurtable("napalm");

            napalm.description = "Heli Napalm";
            napalm.prefabs.Add("napalm");
            napalm.links[global.name] = true;             // napalm hurts anything

            Hurtable player = data.CreateHurtable("player");

            player.description = "Players";
            player.types.Add(typeof(BasePlayer).Name);
            player.links[player.name] = false;            // no player-vs-player damage
            global.links[player.name] = true;             // anything hurts player

            //Hurtable fire = data.CreateHurtable("fire");
            //fire.type = typeof(FireBall).Name;
            //fire.prefabs.Add("campfire");
            //fire.links[global.name] = false; // no fire damage

            Hurtable traps = data.CreateHurtable("traps");

            traps.description = "Traps, landmines, and spikes";
            traps.types.Add(typeof(BearTrap).Name);
            traps.types.Add(typeof(Landmine).Name);
            traps.prefabs.Add("spikes.floor");
            //traps.prefabs.Add("beartrap");
            //traps.prefabs.Add("landmine");
            player.links[traps.name] = true;             // players can damage traps
            traps.links[player.name] = false;            // traps don't damage players

            Hurtable barricades = data.CreateHurtable("barricades");

            barricades.description = "Barricades";
            barricades.types.Add(typeof(Barricade).Name);
            player.links[barricades.name] = true;             // players can damage barricade
            barricades.links[player.name] = false;            // barricades cannot hurt players

            Hurtable highwalls = data.CreateHurtable("highwalls");

            highwalls.description = "High external walls";
            highwalls.prefabs.Add("wall.external.high.stone");
            highwalls.prefabs.Add("wall.external.high.wood");
            highwalls.links[player.name] = false;             // high external walls cannot hurt players

            Hurtable heli = data.CreateHurtable("heli");

            heli.description = "Heli";
            heli.types.Add(typeof(BaseHelicopter).Name);
            global.links[heli.name] = true;             // heli can take damage

            return(true);
        }
Exemple #13
0
 private void SandThrowProjectile_hitEvents(GameObject attacker, Weapon weapon, Hurtable hurtable)
 {
     if (hurtable.gameObject.GetComponent <Player>() != null)
     {
         MenuManager.sMainMenu.ChangeCamera(MenuManager.sMainMenu.bluryCamera);
         TimerManager.STimerManager.CreateTimer(bluryTime, t => {
             MenuManager.sMainMenu.ChangeCamera(MenuManager.sMainMenu.mainCamera);
         });
     }
 }
Exemple #14
0
    // Start is called before the first frame update
    void Start()
    {
        rend      = GetComponentInChildren <Renderer>();
        submarine = GetComponent <Submarine>();
        weapon    = GetComponent <Weapon>();
        submarine.Init(rend.transform.parent);

        hurtable = GetComponent <Hurtable>();
        hurtable.Initialize(config.HealthConfig);
    }
Exemple #15
0
    void OnTriggerEnter2D(Collider2D other)
    {
        Hurtable hurtable = other.GetComponent <Hurtable>();
        Attacker attacker = other.GetComponent <Attacker>();

        if (!attacker || !hurtable)
        {
            return;
        }
        DealDamage(hurtable);
    }
Exemple #16
0
    void Start()
    {
        chaser = GetComponent<ChasesPlayer>();
        hurt = GetComponent<Hurtable>();
        faces = GetComponent<FacesPlayer>();
        drops = GetComponent<DropsItems>();
        attacks = GetComponent<AttacksPlayer>();
        anim = GetComponent<Animator>();

        hurt.onDeath += hurt_onDeath;
        hurt.onHurt += hurt_onHurt;
    }
Exemple #17
0
 public object CanHurt(Hurtable other)
 {
     if (!enabled || !other.enabled)
     {
         return(null);
     }
     if (links != null && links.Count > 0 && links.ContainsKey(other.name))
     {
         return(links[other.name]);
     }
     return(null);
 }
Exemple #18
0
    void Start()
    {
        playerTrans = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
        agent = GetComponent<NavMeshAgent>();
        anim = GetComponent<Animator>();
        randMov = GetComponent<MovesRandomly>();
        drops = GetComponent<DropsItems>();
        audSrc = GetComponent<AudioSource>();

        hurt = GetComponent<Hurtable>();
        hurt.onDeath += hurt_onDeath;
    }
Exemple #19
0
    // Start is called before the first frame update
    void Start()
    {
        rend      = GetComponentInChildren <Renderer>();
        submarine = GetComponent <Submarine>();
        weapon    = GetComponent <Weapon>();
        submarine.Init(rend.transform.parent, config);

        hurtable = GetComponent <Hurtable>();
        hurtable.Initialize(config.HealthConfig);
        ReadConfig();

        crosshair = GetComponentInChildren <FollowMouse>();
    }
    public void HitTarget(int damage)
    {
        if (!attackTarget)
        {
            return;
        }
        Hurtable targetHurtable = attackTarget.GetComponent <Hurtable>();

        if (targetHurtable)
        {
            targetHurtable.Hurt(damage);
        }
    }
Exemple #21
0
 private void Attack()
 {
     Collider2D[] hurtboxes = hitbox.GetHurtboxes(attackLayerMask);
     for (int i = 0; i < hurtboxes.Length; i++)
     {
         Hurtable hurtable = hurtboxes[i].GetComponent <Hurtable>();
         if (hurtable != null)
         {
             hurtable.OnHurt(hitbox);
             Hitstop();
         }
     }
 }
Exemple #22
0
    void Start()
    {
        anim = GetComponent<Animator>();
        dropper = GetComponent<DropsItems>();
        chaser = GetComponent<ChasesPlayer>();
        faces = GetComponent<FacesPlayer>();
        hurt = GetComponent<Hurtable>();
        hurt.onDeath += hurt_onDeath;
        hurt.onHurt += hurt_onHurt;
        audioSrc = GetComponent<AudioSource>();

        attacks = GetComponent<AttacksPlayer>();
        attacks.onPlayerDeath += attacks_onPlayerDeath;
    }
 void Died(GameObject attacker, Weapon weapon, Hurtable hurtable)
 {
     InventoryInfo.inventoryInfo.currencyLeft += pointsForPlayer;
     foreach (var i in throwableItems)
     {
         float r = UnityEngine.Random.value;
         if (r <= i.probability)
         {
             Item item = ItemFactory.itemFactory.SpawnItem(i.item);
             item.transform.position = transform.position;
         }
     }
     ProgressManager.progressManager.killedEnemies++;
     GameObject.Destroy(gameObject);
 }
    void OnTriggerEnter2D(Collider2D other)
    {
        Hurtable hurtable = other.GetComponent <Hurtable>();
        Attacker attacker = other.GetComponent <Attacker>();

        if (!attacker || !hurtable)
        {
            return;
        }
        hasHit = true;
        if (animator)
        {
            animator.SetTrigger("Destroy");
        }
        Destroy(gameObject, 1f);
    }
Exemple #25
0
    // Start is called before the first frame update
    void Start()
    {
        hurtable = GetComponent <Hurtable>();
        hurtable.Initialize(config.HealthConfig);

        lootDropper = GetComponent <LootDropper>();
        lootDropper.Initialize(config.LootConfig);

        rigidBody = GetComponent <Rigidbody2D>();
        renderer  = GetComponentInChildren <SpriteRenderer>();
        anim      = GetComponent <Animator>();

        Retarget();

        playerLayer = LayerMask.NameToLayer("Player");
        player      = GameObject.FindGameObjectWithTag("Player").transform;
    }
Exemple #26
0
    private void Awake()
    {
        player       = FindObjectOfType <Player>();
        waveManager  = FindObjectOfType <WaveManager>();
        spawnManager = FindObjectOfType <SpawnManager>();

        animator    = GetComponent <Animator>();
        audioSource = GetComponent <AudioSource>();
        collider2D  = GetComponent <Collider2D>();

        if (transform.childCount > 0)
        {
            childObject = transform?.GetChild(0)?.gameObject;
        }

        movables = GetComponentsInParent <IMovable>();
        hurtable = GetComponent <Hurtable>();
    }
Exemple #27
0
    void Start()
    {
        anim = GetComponent<Animator>();
        dropper = GetComponent<DropsItems>();
        chaser = GetComponent<ChasesPlayer>();
        faces = GetComponent<FacesPlayer>();
        audSrc = GetComponent<AudioSource>();
        attacks = GetComponent<AttacksPlayer>();

        attacks.onPlayerHit += attacks_onPlayerHit;

        hurt = GetComponent<Hurtable>();
        hurt.onDeath += hurt_onDeath;

        hurt.onHurt += hurt_onHurt;

        tag = "enemy"; //For items to detect and deliver damage
    }
    private void OnTriggerEvent(Weapon weapon)
    {
        if (particleSystem != null)
        {
            particleSystem.Play();
        }
        RaycastHit hit;

        if (Physics.Raycast(transform.position, transform.rotation.eulerAngles, out hit, _range))
        {
            GameObject victim   = hit.collider.gameObject;
            Hurtable   hurtable = victim.GetComponent <Hurtable>();
            if (hurtable != null)
            {
                hurtable.Damaged(this.damage, this.gameObject, this);
                Hitted((victim));
            }
        }
    }
Exemple #29
0
    public override void Hit(Hurtable hurtable)
    {
        foreach (var rigidbody2D in FindObjectsOfType <Rigidbody2D>())
        {
            if (rigidbody2D.gameObject == gameObject)
            {
                continue;
            }

            if (Vector3.Distance(transform.position, rigidbody2D.position) < range)
            {
                var direction          = (rigidbody2D.position - (Vector2)transform.position).normalized;
                var normalizedDistance = (rigidbody2D.position - (Vector2)transform.position).magnitude / range;
                var force = strength * (1 / normalizedDistance);
                rigidbody2D.AddForce(direction * force, ForceMode2D.Impulse);
            }
        }

        Destroy(gameObject);
    }
Exemple #30
0
    public List <Hurtable> GetOverlappedHurtables()
    {
        List <Hurtable> overlappedHurtables = new List <Hurtable>();

        foreach (RectHitbox hitbox in hitboxes)
        {
            if (hitbox != null && hitbox.IsHitboxActive())
            {
                Collider2D[] colliders = hitbox.GetColliders(layerMask);
                foreach (Collider2D collider in colliders)
                {
                    Hurtable hurtable = collider.GetComponentInParent <Hurtable>();
                    if (hurtable != null)
                    {
                        overlappedHurtables.Add(hurtable);
                    }
                }
            }
        }

        return(overlappedHurtables);
    }
Exemple #31
0
    /// <summary>
    /// Lets the granade exlode
    /// </summary>
    void Explode()
    {
        GameObject explosion = Instantiate(explosionEffect, transform.position, transform.rotation);

        Destroy(explosion, 3f);

        Collider[] coliders = Physics.OverlapSphere(transform.position, radius);

        foreach (var colider in coliders)
        {
            Hurtable  h  = colider.GetComponent <Hurtable>();
            Rigidbody rb = colider.GetComponent <Rigidbody>();
            if (h != null)
            {
                h.Damaged(this.damage, this.parentWeapon.parent, this.parentWeapon);
            }
            if (rb != null)
            {
                rb.AddExplosionForce(explosionForce, transform.position, radius);
            }
        }

        Destroy(this.gameObject);
    }
Exemple #32
0
    void Start()
    {
        baseHurtable = Core.CoreGO.GetComponent <Hurtable>();
        var resources = Resources.ResourcesDictionary;
        var oilGo     = resources[ResourceGenerator.Resource.Oil][0];
        var iron1Go   = resources[ResourceGenerator.Resource.Iron][0];
        var iron2Go   = resources[ResourceGenerator.Resource.Iron][1];

        Debug.Log(resources);

        oilHurtable   = oilGo.GetComponent <Hurtable>();
        iron1Hurtable = iron1Go.GetComponent <Hurtable>();
        iron2Hurtable = iron2Go.GetComponent <Hurtable>();

        baseText.text  = baseHurtable.life + "/" + baseHurtable.maxLife;
        oilText.text   = oilHurtable.life + "/" + oilHurtable.maxLife;
        iron1Text.text = iron1Hurtable.life + "/" + iron1Hurtable.maxLife;
        iron2Text.text = iron2Hurtable.life + "/" + iron2Hurtable.maxLife;

        baseHurtable.HittedEventHandler  += (damage, from, weapon) => baseText.text = baseHurtable.life + "/" + baseHurtable.maxLife;
        oilHurtable.HittedEventHandler   += (damage, from, weapon) => oilText.text = oilHurtable.life + "/" + oilHurtable.maxLife;
        iron1Hurtable.HittedEventHandler += (damage, from, weapon) => iron1Text.text = iron1Hurtable.life + "/" + iron1Hurtable.maxLife;
        iron2Hurtable.HittedEventHandler += (damage, from, weapon) => iron2Text.text = iron2Hurtable.life + "/" + iron2Hurtable.maxLife;
    }
Exemple #33
0
 public virtual void Hit(Hurtable hurtable)
 {
     Destroy(hurtable.gameObject);
 }
Exemple #34
0
 void DealDamage(Hurtable hurtable)
 {
     hurtable.Hurt(damage);
 }
Exemple #35
0
    void Start()
    {
        playerTrans = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
        fireBreath = GetComponentInChildren<DamagingParticleSystem>();
        anim = GetComponent<Animator>();
        audSrc = GetComponent<AudioSource>();

        drops = GetComponent<DropsItems>();

        hurt = GetComponent<Hurtable>();
        hurt.onDeath += hurt_onDeath;
    }
Exemple #36
0
    void Start()
    {
        ice = transform.FindChild("Ice").gameObject;
        player = GameObject.FindGameObjectWithTag("Player");
        anim = GetComponent<Animator>();
        motherHurtable = GetComponentInChildren<Hurtable>();
        audSrc = GetComponentInChildren<AudioSource>();

        motherHurtable.onHurt += motherHurtable_onHurt;
        motherHurtable.onDeath += motherHurtable_onDeath;

        //faces = GetComponent<FacesPlayer>();
        //dropper = GetComponent<DropsItems>();
    }