예제 #1
0
    public void TakesHit(Hit hit)
    {
        player.HP -= (int)(hit.weapon.damage * diffDamageModifier);

        //params for ShakeCamera = duration, strength, vibrato, randomness
        EventKit.Broadcast <float, float, int, float>("shake camera", .5f, .3f, 20, 5f);
        EventKit.Broadcast <int>("reduce hp", player.HP);

        if (hit.hitFrom == RIGHT)
        {
            BroadcastMessage("RepulseToLeft", 5.0F);
        }
        else
        {
            BroadcastMessage("RepulseToRight", 5.0F);
        }

        if (player.HP > 0)
        {
            MFX.FadeToColorAndBack(spriteRenderer, MCLR.bloodRed, 0f, .2f);
        }
        else
        {
            EventKit.Broadcast <int, Weapon.WeaponType>("player dead", hit.hitFrom, hit.weaponType);
        }
    }
예제 #2
0
    public void TakesHit(string weaponType, Weapon weapon, Collider2D coll, int hitFrom)
    {
        // calculate damage
        player.HP -= (int)(weapon.damage * DIFFICULTY_DAMAGE_MODIFIER);

        // produce effects
        // params for ShakeCamera = duration, strength, vibrato, randomness
        Messenger.Broadcast <float, float, int, float>("shake camera", .5f, .3f, 20, 5f);
        Messenger.Broadcast <int>("reduce hp", player.HP);

        // float xDistance = hitFrom == LEFT ? 2f : -2f;
        // transform.DOJump(new Vector3(transform.position.x + xDistance, transform.position.y, transform.position.z), .2f, 1, .5f, false);

        if (hitFrom == RIGHT)
        {
            BroadcastMessage("RepulseToLeft", 5.0F);
        }
        else
        {
            BroadcastMessage("RepulseToRight", 5.0F);
        }

        if (player.HP > 0)
        {
            MFX.FadeToColorAndBack(spriteRenderer, MCLR.bloodRed, 0f, .2f);
        }
        else
        {
            Messenger.Broadcast <string, Collider2D, int>("player dead", "projectile", coll, hitFrom);
        }
    }
    void Start()
    {
        player = GameObject.Find(_DATA).GetComponent <PlayerData>();
        Assert.IsNotNull(player);

        (fadeWhenHit = MFX.FadeToColorAndBack(spriteRenderer.material, MCLR.bloodRed, 0f, .2f)).Pause();

        Init();
    }
예제 #4
0
    public void TouchesEnemy(string weaponType, CreatureEntity enemy, Collider2D coll, int hitFrom)
    {
        player.HP -= (int)(enemy.touchDamage * diffDamageModifier);

        EventKit.Broadcast <int>("reduce hp", player.HP);

        if (player.HP > 0)
        {
            MFX.FadeToColorAndBack(spriteRenderer, MCLR.bloodRed, 0f, .2f);
        }
        else
        {
            EventKit.Broadcast <int, Weapon.WeaponType>("player dead", hitFrom, Weapon.WeaponType.Struckdown);
        }
    }
예제 #5
0
    public void TouchesEnemy(string weaponType, CreatureEntity enemy, Collider2D coll, int hitFrom)
    {
        // calculate damage
        player.HP -= (int)(enemy.touchDamage * DIFFICULTY_DAMAGE_MODIFIER);

        // produce effects
        Messenger.Broadcast <int>("reduce hp", player.HP);

        if (player.HP > 0)
        {
            MFX.FadeToColorAndBack(spriteRenderer, MCLR.bloodRed, 0f, .2f);
        }
        else
        {
            Messenger.Broadcast <string, Collider2D, int>("player dead", "struckdown", coll, hitFrom);
        }
    }