Esempio n. 1
0
    public void PlayerWasHit(Customer customer, InventoryItemType weapon)
    {
        int healthLoss = 0;

        if (weapon == InventoryItemType.Dagger)
        {
            healthLoss = rng.Range(1, 3);
        }
        else if (weapon == InventoryItemType.ShortSword)
        {
            healthLoss = rng.Range(2, 5);
        }
        else if (weapon == InventoryItemType.Scimitar)
        {
            healthLoss = rng.Range(5, 8);
        }
        UIManager.main.ShowMessage(string.Format(
                                       "You were hit by <b><color=#{0}>{1}</color></b>'s <color=#{2}><b>{3}</b></color>! You lost {4} health!",
                                       customer.ColorText,
                                       customer.CustomerName,
                                       UIManager.main.GetColorAsString(weapon),
                                       weapon,
                                       healthLoss
                                       ));
        int newHealth = UIManager.main.AddToPlayerHealth(-healthLoss);

        if (newHealth <= 0)
        {
            PlayerDied();
        }

        SoundManager.main.PlaySound(SoundType.PlayerWasHit);
    }
Esempio n. 2
0
    public void GetHit(InventoryItemType weapon)
    {
        int healthLoss = 0;

        if (weapon == InventoryItemType.Dagger)
        {
            healthLoss = rng.Range(1, 3);
        }
        else if (weapon == InventoryItemType.ShortSword)
        {
            healthLoss = rng.Range(2, 5);
        }
        else if (weapon == InventoryItemType.Scimitar)
        {
            healthLoss = rng.Range(5, 8);
        }
        else if (weapon == InventoryItemType.Bow)
        {
            healthLoss = 1;
        }
        health -= healthLoss;
        if (health < 1)
        {
            StartDying(weapon);
        }
        if (!isDead)
        {
            MoveToRandomDirection();
        }
    }
Esempio n. 3
0
File: Enemy.cs Progetto: bradur/LD37
    public void GetHit(InventoryItemType weapon)
    {
        int healthLoss = 0;

        if (weapon == InventoryItemType.Dagger)
        {
            healthLoss = rng.Range(1, 3);
        }
        else if (weapon == InventoryItemType.ShortSword)
        {
            healthLoss = rng.Range(2, 5);
        }
        else if (weapon == InventoryItemType.Scimitar)
        {
            healthLoss = rng.Range(5, 8);
        }
        else if (weapon == InventoryItemType.Bow)
        {
            healthLoss = rng.Range(1, 3);
        }
        int newHealth = UIManager.main.AddToEnemyHealth(-healthLoss);

        if (newHealth < 1)
        {
            Die();
        }
        else
        {
            MoveAway();
        }
    }
Esempio n. 4
0
    public float Execute()
    {
        Debug.Log("DamagePercentageUseCase");
        float damage = -target.finalMaxHP * percentage * RandomWrapper.Range(0.2f);

        new ModifyHPUseCase(target, damage).Execute();
        DamageLogger.Add(target.unitId, (int)damage);
        return(damage);
    }
Esempio n. 5
0
    private float DamageOne(UnitSO subject, UnitSO target, SkillSO skill)
    {
        // Modifier should take into account resistances/weaknesess
        float modifier        = 1;
        bool  containsElement = target.elementalWeakness.ContainsKey(skill.element);

        if (containsElement)
        {
            modifier = target.elementalWeakness[skill.element] / 100f;
        }
        float power = skill.power;
        // Decide between physical and magical attack+defense
        bool  isMagic = skill.isMagical;
        float attack  = isMagic? subject.finalMagicAttack : subject.finalAttack;
        float defense = isMagic? subject.finalMagicDefense : target.finalDefense;
        float level   = subject.level;

        float formulaRes = ((2 * level / 5 + 2) * (power / 50) * (attack / defense) + 2) * modifier * RandomWrapper.Range(0.2f);

        new ModifyHPUseCase(target, -formulaRes).Execute();
        DamageLogger.Add(target.unitId, (int)-formulaRes);
        return(formulaRes);
    }
Esempio n. 6
0
 void MoveToRandomDirection()
 {
     currentMoveTime = rng.Range(moveTimeMin, moveTimeMax);
     rb2D.velocity   = rng.Choose(possibleVectorDirections) * rng.Range(speedMin, speedMax);
     moving          = true;
 }