Оновити 'О магии'
parent
ee304e4466
commit
056b3a5fe7
@ -7,4 +7,52 @@
|
|||||||
Любой урон может быть: моментальным, отложенным или циклическим. *Либо вообще любое заклинание, просто не использовать некоторые дикие комбинации.*
|
Любой урон может быть: моментальным, отложенным или циклическим. *Либо вообще любое заклинание, просто не использовать некоторые дикие комбинации.*
|
||||||
|
|
||||||
При формировании заклинания нацеленного на урон, проверяется успех каста, потом проверяются защиты цели, потом вызывается наноситель урона.
|
При формировании заклинания нацеленного на урон, проверяется успех каста, потом проверяются защиты цели, потом вызывается наноситель урона.
|
||||||
При формировании заклинания нацеленного на эффект, проверяется успех каста, потом проверяются защиты цели (если применимо), потом вызывается вешатель эффектов.
|
|
||||||
|
При формировании заклинания нацеленного на эффект, проверяется успех каста, потом проверяются защиты цели (если применимо), потом вызывается вешатель эффектов.
|
||||||
|
|
||||||
|
```PHP
|
||||||
|
# Псевдокод
|
||||||
|
|
||||||
|
function castDamage($caster, $manaCost, $amountDamage, $target)
|
||||||
|
{
|
||||||
|
$this->damageMana($manaCost, $caster);
|
||||||
|
if ($user->mana < 0) {
|
||||||
|
return false; # Да, хардкор.
|
||||||
|
}
|
||||||
|
$this->damageHealth($amountDamage, $target)
|
||||||
|
}
|
||||||
|
|
||||||
|
function castEffect($caster, $manaCost, $effectId, $target)
|
||||||
|
{
|
||||||
|
$this->damageMana($manaCost, $caster);
|
||||||
|
if ($user->mana < 0) {
|
||||||
|
return false; # Да, хардкор.
|
||||||
|
}
|
||||||
|
$this->setEffect($effectId, $target)
|
||||||
|
}
|
||||||
|
|
||||||
|
function fireball($caster, ...$targets)
|
||||||
|
{
|
||||||
|
$manaCost = 50;
|
||||||
|
$baseDamage = -10; # Урон отнимается от здоровья.
|
||||||
|
foreach ($targets as $target) {
|
||||||
|
$damage = calculateDamage($baseDamage, $target->resists);
|
||||||
|
castDamage($caster, $manaCost, $damage, $target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function heal($caster, ...$targets)
|
||||||
|
{
|
||||||
|
$manaCost = 10;
|
||||||
|
$baseDamage = 4; # Лечение это отрицательный урон.
|
||||||
|
foreach ($targets as $target) {
|
||||||
|
$damage = calculateDamage($baseDamage, $target->resists);
|
||||||
|
castDamage($caster, $manaCost, $damage, $target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function smallHealingPotion($caster) # Зелье лечения
|
||||||
|
{
|
||||||
|
heal($caster, $caster);
|
||||||
|
}
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user