Book of Enchantment #148

Parent #5Owner #2Flags read, fertileSource QuestCore.db

Aliases: Book of Enchantment, enchantmentbook

2 verbs · 20 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
titlethis none thisrxd#1481
ca*stthis on top of/on/onto/upon anyrxd#14875

Properties

PropertyDefinerFlagsOwnerValue
spellcounter#148rc#210
drop_failed_msg#5rc#2<clear>
drop_succeeded_msg#5rc#2<clear>
odrop_failed_msg#5rc#2<clear>
odrop_succeeded_msg#5rc#2<clear>
otake_succeeded_msg#5rc#2<clear>
otake_failed_msg#5rc#2<clear>
take_succeeded_msg#5rc#2<clear>
take_failed_msg#5rc#2<clear>
value_base#102r#2250.0
damage_base#102r#2<clear>
x_loc#102r#36<clear>
y_loc#102r#36<clear>
ansi_title#102r#36<clear>
obvious#102r#36<clear>
build_help#102rc#2<clear>
key#1c#20
aliases#1rc#2{"Book of Enchantment", "enchantmentbook"}
description#1rc#2"[green]You see a book bound in leather with magical text.[normal] [Spell: Enchantment]"
object_size#1r#36{0, 0}

Ancestry

Ancestors (nearest first): #5 generic thing#102 subthing#1 Root Class

Children: none

Call graph

calls n148_1 #148:ca*st n6_18 #6:tell n148_1->n6_18 n148_0 #148:title n148_1->n148_0 n20_19 #20:match_object n148_1->n20_19 n52_0 #52:has_property n148_1->n52_0 n102_4 #102:title n148_1->n102_4 n63_1 #63:_recycle n148_1->n63_1

Source

title

Spec this none thisFlags rxdOwner #2Definer #148

Referenced by

Source

1return tostr("[yellow]", this.name, "[normal]");

ca*st

Spec this on top of/on/onto/upon anyFlags rxdOwner #2Definer #148

Referenced by

none

Source

1if ((this in player.contents) && (player.stats_current[2][3] >= 11.0))
2player:tell("You prepare to cast from the ", this:title(), "[normal]...");
3elseif (player.stats_current[2][3] < 11.0)
4player:tell("You do not have a high enough INT ability! This spell requires at least 11.0.");
5return;
6else
7player:tell("You are not carrying that.");
8return;
9endif
10target = $string_utils:match_object(iobjstr, player.location);
11if (((iobjstr == "me") || (iobjstr == "self")) || (iobjstr == "myself"))
12player:tell("The target must be armor or a weapon, and you must be carrying it.");
13return;
14endif
15if ($object_utils:has_property(target, "enchant_level"))
16if ((target.enchant_level + 1) > toint(player.stats_current[2][3]))
17player:tell("You cannot enchant ", target.name, " beyond your INT ability.");
18return;
19endif
20endif
21if ((target in player.contents) && $object_utils:has_property(target, "armor"))
22target.armor = target.armor + 1.0;
23target.enchant_level = target.enchant_level + 1;
24target.value_base = target.value_base + 20.0;
25player:tell("You cast [yellow]Enchantment[normal] on ", target.name, "!");
26player.location:announce(player:title(), " casts [yellow]Enchantment[normal] on ", target.name, "!");
27player:tell("Your ", target.name, " gets +1.0 to Armor!");
28player.location:announce(player:title(), " enchants ", player.pp, " ", target.name, "!");
29if (!this.f)
30this.spellcounter = this.spellcounter - 1;
31if (!this.spellcounter)
32player:tell("The ", this:title(), " crumbles into dust!");
33$recycler:_recycle(this);
34endif
35endif
36return;
37elseif (((target in player.contents) && $object_utils:has_property(target, "weapon")) && target.shoots)
38target.projectile_dam = target.projectile_dam + 1.0;
39target.enchant_level = target.enchant_level + 1;
40target.value_base = target.value_base + 20.0;
41player:tell("You cast [yellow]Enchantment[normal] on ", target:title(), "!");
42player.location:announce(player:title(), " casts [yellow]Enchantment[normal] on ", target:title(), "!");
43player:tell("Your ", target:title(), " gets +1.0 to Projectile Damage!");
44player.location:announce(player:title(), " enchants ", player.pp, " ", target:title(), "!");
45if (!this.f)
46this.spellcounter = this.spellcounter - 1;
47if (!this.spellcounter)
48player:tell("The ", this:title(), " crumbles into dust!");
49$recycler:_recycle(this);
50endif
51endif
52elseif (((target in player.contents) && $object_utils:has_property(target, "weapon")) && (!target.shoots))
53target.damage_base = target.damage_base + 1.0;
54target.enchant_level = target.enchant_level + 1;
55target.value_base = target.value_base + 20.0;
56player:tell("You cast [yellow]Enchantment[normal] on ", target:title(), "!");
57player.location:announce(player:title(), " casts [yellow]Enchantment[normal] on ", target:title(), "!");
58player:tell("Your ", target:title(), " gets +1.0 to Damage!");
59player.location:announce(player:title(), " enchants ", player.pp, " ", target:title(), "!");
60if (!this.f)
61this.spellcounter = this.spellcounter - 1;
62if (!this.spellcounter)
63player:tell("The ", this:title(), " crumbles into dust!");
64$recycler:_recycle(this);
65endif
66endif
67elseif (!valid(target))
68player:tell("The target is invalid.");
69player:tell("The target must be armor or a weapon, and you must be carrying it.");
70return;
71else
72player:tell("No effect.");
73player:tell("The target must be armor or a weapon, and you must be carrying it.");
74return;
75endif