Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class HPPlayerSpell
- {
- const SpellDB = [
- 'conjunctivitis' => [
- 'rand1' => 15, 'rand2' => 38,
- 'text' => color("0,13", "%caster% has shot a jet of ").color("13,0", "blinding light at %target% ").color("0,13", "causing %value% damage!"),
- 'modifiers' => [
- 'HPPlayerSpell::ModMonsterHitDmg' => ['death_eater', 30, 60]
- ]
- ]
- ];
- public static function CalculateSpellValue($spell, $caster, $target, $special, &$success, &$text)
- {
- $spell = strtolower($spell);
- if (!self::Castable($spell, $caster, $target, $special, $text))
- {
- $success = false;
- return 0;
- }
- $spellentry = self::SpellDB[$spell];
- $value = Veletlenszam($spellentry['rand1'], $spellentry['rand2']);
- foreach ($spellentry['modifiers'] as $modifier => $modifierparams)
- {
- $modifier($caster, $target, $special, $spellentry, $value, $modifierparams);
- }
- self::ModWandDamage($caster, $target, $special, $value);
- $text = str_replace(['caster', 'target', 'value'], [self::GetPlayerName($caster), self::GetPlayerName($target), $value], $spellentry['text']);
- return $value;
- }
- public static function Castable($spell, $caster, $target, $special, &$reason)
- {
- if (!isset(self::SpellDB[$spell]))
- {
- $reason = "Spell not found in Spell DB";
- return false;
- }
- if (isset(self::SpellDB[$spell]['checks']))
- {
- foreach (self::SpellDB[$spell]['checks'] as $check)
- {
- if (!$check($caster, $target, $special, $reason))
- return false;
- }
- }
- return true;
- }
- public static function ModMonsterHitDmg($caster, $target, $special, &$spellentry, &$spellvalue, $params)
- {
- if ($params[0] == $target)
- $spellvalue = Veletlenszam($params[1], $params[2]);
- }
- public static function ModWandDamage($caster, $target, $special, &$spellentry, &$spellvalue, $params = [])
- {
- $spellvalue += UserStore::Call('GetEntry', $caster, "hpduel/wand", 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment