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); }
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(); } }
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(); } }
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); }
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); }
void MoveToRandomDirection() { currentMoveTime = rng.Range(moveTimeMin, moveTimeMax); rb2D.velocity = rng.Choose(possibleVectorDirections) * rng.Range(speedMin, speedMax); moving = true; }