Commit f28a4f64257c6604400a984f70ca3e074914e8b7

Authored by dg
1 parent d90376d3

The Rod of Recall is now dropped by the first boss killed


git-svn-id: http://svn.net-core.org/repos/t-engine4@2469 51575b47-30f0-44d4-a5cc-537603b46e54
... ... @@ -193,6 +193,14 @@ function _M:die(src)
193 193 return
194 194 end
195 195
  196 + if self.rank >= 4 and not game.state.droped_rod_recall then
  197 + local rod = game.zone:makeEntityByName(game.level, "object", "ROD_OF_RECALL")
  198 + if rod then
  199 + game.zone:addEntity(game.level, rod, "object", self.x, self.y)
  200 + game.state.droped_rod_recall = true
  201 + end
  202 + end
  203 +
196 204 return mod.class.Actor.die(self, src)
197 205 end
198 206
... ...
... ... @@ -285,3 +285,25 @@ newEntity{ define_as = "ORB_SCRYING",
285 285 auto_id = 1,
286 286 },
287 287 }
  288 +
  289 +newEntity{ base = "BASE_WAND",
  290 + define_as = "ROD_OF_RECALL",
  291 + unided_name = "unstable wand", identified=true, force_lore_artifact=true,
  292 + name = "Rod of Recall", color=colors.LIGHT_BLUE, unique=true,
  293 + desc = [[This rod is made entirely of voratun, infused with raw magical energies it can bend space itself.
  294 +This seems to be what the troll was keeping as "treasure". You have heard of such items before, they are very useful to adventurers, allowing faster travel.]],
  295 + cost = 0, quest=true,
  296 + elec_proof = true,
  297 +
  298 + max_power = 1000, power_regen = 1,
  299 + use_power = { name = "recall the user to the worldmap", power = 1000,
  300 + use = function(self, who)
  301 + if who:canBe("worldport") then
  302 + who:setEffect(who.EFF_RECALL, 40, {})
  303 + game.logPlayer(who, "Space around you starts to dissolve...")
  304 + else
  305 + game.logPlayer(who, "The rod emits a strange noise, glows briefly and returns to normal.")
  306 + end
  307 + end
  308 + },
  309 +}
... ...
... ... @@ -75,7 +75,7 @@ quickEntity('high-peak', {always_remember = true, show_tooltip=true, name="High
75 75 quickEntity('unremarkable-cave', {always_remember = true, show_tooltip=true, name="Unremarkable cave", display='>', color=colors.UMBER, notice = true, change_level=1, change_zone="unremarkable-cave"})
76 76
77 77 -- Island of Rel
78   -quickEntity('irkkk', {always_remember = true, show_tooltip=true, name="Irkkk (Town)", desc="Yeek Wayist capital", display='*', color={r=255, g=255, b=255}, back_color=colors.DARK_GREEN, image="terrain/town1.png", notice = true, change_level=1, change_zone="town-irkkk"})
  78 +quickEntity('irkkk', {always_remember = true, show_tooltip=true, name="Irkkk (Town)", desc="Yeek Wayist capital", display='*', color={r=255, g=255, b=255}, back_color=colors.DARK_GREEN, image="terrain/town1.png", notice = true})
79 79 quickEntity('ritch-tunnels', {always_remember = true, show_tooltip=true, name="Tunnel into the ritchs grounds",display='>', color=colors.UMBER, notice = true, change_level=1, change_zone="ritch-tunnels"})
80 80 quickEntity('murgol-lair', {always_remember = true, show_tooltip=true, name="Way into the lair of Murgol",display='>', color=colors.LIGHT_BLUE, notice = true, change_level=1, change_zone="murgol-lair"})
81 81 quickEntity('rel-tunnel', {always_remember = true, show_tooltip=true, name="Tunnel to Maj'Eyal", display='>', color=colors.LIGHT_BLUE, notice = true, force_down=true, change_level=4, change_zone="halfling-ruins", change_level_check = function() local p = game.party:findMember{main=true} if p:hasQuest("start-yeek") and not p:isQuestStatus("start-yeek", engine.Quest.DONE) then require("engine.ui.Dialog"):simplePopup("Long tunnel", "You can not abandon the yeeks of Rel to the dangers that lie within the island.") return false end return true end})
... ...
... ... @@ -40,6 +40,7 @@ on_status_change = function(self, who, status, sub)
40 40 if self:isCompleted("ritch") and self:isCompleted("murgol") then
41 41 who:setQuestStatus(self.id, engine.Quest.DONE)
42 42 who:grantQuest("starter-zones")
  43 + game.logPlayer(game.player, "You should head to the tunnel to Maj'Eyal and explore the world. For the Way.")
43 44 end
44 45 end
45 46 end
... ...
... ... @@ -24,106 +24,32 @@ load("/data/general/npcs/jelly.lua", rarity(3))
24 24
25 25 local Talents = require("engine.interface.ActorTalents")
26 26
27   -newEntity{
28   - define_as = "BASE_NPC_RITCH_REL",
29   - type = "insect", subtype = "ritch",
30   - display = "I", color=colors.RED,
31   - desc = [[Ritchs are giant insects native to the arid wastes of the southern parts of the Far East.
32   -Vicious predators, they inject corrupting diseases into their foes, and their sharp claws cut through most armours.]],
33 27
34   - combat = { dam=resolvers.rngavg(10,32), atk=9, apr=4, damtype=DamageType.BLIGHT, dammod={dex=1.2} },
35   -
36   - body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
37   -
38   - infravision = 20,
39   - size_category = 1,
40   - rank = 2,
41   -
42   - autolevel = "slinger",
43   - ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, },
44   - stats = { str=15, dex=15, mag=8, con=10 },
45   -
46   - poison_immune = 0.5,
47   - disease_immune = 0.5,
48   - resists = { [DamageType.BLIGHT] = 20, [DamageType.FIRE] = 40 },
49   -}
50   -
51   -newEntity{ base = "BASE_NPC_RITCH",
52   - name = "ritch flamespitter", color=colors.DARK_RED,
53   - level_range = {1, nil}, exp_worth = 1,
54   - rarity = 1,
55   - max_life = 5,
56   - life_rating = 3,
57   -
58   - rank = 2,
59   -
60   - ai_state = { ai_move="move_dmap", talent_in=1, },
61   - resolvers.talents{
62   - [Talents.T_RITCH_FLAMESPITTER_BOLT]=1,
63   - },
64   -}
65   -
66   -newEntity{ base = "BASE_NPC_RITCH",
67   - name = "ritch impaler", color=colors.UMBER,
68   - level_range = {2, nil}, exp_worth = 1,
69   - rarity = 1,
70   - max_life = 50,
71   - life_rating = 11,
72   -
73   - rank = 2,
74   -
75   - ai_state = { ai_move="move_dmap", talent_in=1, },
76   - resolvers.talents{
77   - [Talents.T_RUSHING_CLAWS]=1,
78   - },
79   -}
80   -
81   -newEntity{ base = "BASE_NPC_RITCH",
82   - name = "chitinous ritch", color=colors.YELLOW,
83   - level_range = {1, nil}, exp_worth = 1,
84   - rarity = 1,
85   - max_life = 100,
86   - life_rating = 13,
87   -
88   - rank = 2,
89   - combat_armor = 6,
90   -
91   - ai_state = { ai_move="move_dmap", talent_in=1, },
92   -}
93 28
94 29 newEntity{ base = "BASE_NPC_RITCH_REL", define_as = "HIVE_MOTHER",
95   - unique = true,
96   - name = "Ritch Hive Mother",
97   - display = "I", color=colors.VIOLET,
98   - desc = [[This huge ritch seems to be the mother of all those here. Her sharp, fiery, claws dart toward you!]],
  30 + type = "humanoid", subtype="atch", unique = true,
  31 + name = "Murgol",
  32 + display = "y", color=colors.VIOLET,
  33 + desc = [[This monstrous yeek depravity opposes all that the Way stands for. The Way commands that he is eliminated.]],
99 34 level_range = {7, nil}, exp_worth = 2,
100   - max_life = 120, life_rating = 14, fixed_rating = true,
101   - equilibrium_regen = -50,
  35 + max_life = 190, life_rating = 17, fixed_rating = true,
102 36 infravision = 20,
103   - stats = { str=15, dex=10, cun=8, mag=16, wil=16, con=10 },
  37 + stats = { str=15, dex=10, cun=8, mag=16, wil=10, con=15 },
104 38 move_others=true,
105 39
106 40 instakill_immune = 1,
107   - blind_immune = 1,
108   - no_breath = 1,
109 41 rank = 4,
110 42 size_category = 4,
  43 + no_breath = 1,
111 44
112 45 combat = { dam=30, atk=22, apr=7, dammod={str=1.1} },
113 46
114   - resists = { [DamageType.BLIGHT] = 40 },
115   -
116 47 body = { INVEN = 10, BODY=1 },
117 48
118 49 resolvers.drops{chance=100, nb=1, {defined="FLAMEWROUGHT", random_art_replace={chance=75}}, },
119 50 resolvers.drops{chance=100, nb=3, {ego_chance=100} },
120 51
121 52 resolvers.talents{
122   - [Talents.T_SUMMON]=1,
123   - [Talents.T_SHRIEK]=2,
124   - [Talents.T_WEAKNESS_DISEASE]=1,
125   - [Talents.T_RITCH_FLAMESPITTER_BOLT]=2,
126   - [Talents.T_SPIT_BLIGHT]=2,
127 53 },
128 54 resolvers.sustains_at_birth(),
129 55
... ... @@ -135,6 +61,6 @@ newEntity{ base = "BASE_NPC_RITCH_REL", define_as = "HIVE_MOTHER",
135 61 ai = "tactical", ai_state = { talent_in=2, },
136 62
137 63 on_die = function(self, who)
138   - game.player:setQuestStatus("start-yeek", engine.Quest.COMPLETED, "ritch")
  64 + game.player:setQuestStatus("start-yeek", engine.Quest.COMPLETED, "murgol")
139 65 end,
140 66 }
... ...
... ... @@ -50,7 +50,6 @@ He is wielding a small tree trunk and lumbering toward you.]],
50 50 body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
51 51 resolvers.equip{ {type="weapon", subtype="greatmaul", defined="GREATMAUL_BILL_TRUNK", random_art_replace={chance=75}, autoreq=true}, },
52 52 resolvers.drops{chance=100, nb=3, {ego_chance=100} },
53   - resolvers.drops{chance=100, nb=1, {defined="ROD_OF_RECALL"} },
54 53
55 54 resolvers.talents{
56 55 [Talents.T_RUSH]=3,
... ...
... ... @@ -29,25 +29,3 @@ newEntity{ base = "BASE_LORE",
29 29 encumberance = 0,
30 30 }
31 31 end
32   -
33   -newEntity{ base = "BASE_WAND",
34   - define_as = "ROD_OF_RECALL",
35   - unided_name = "unstable wand", identified=true, force_lore_artifact=true,
36   - name = "Rod of Recall", color=colors.LIGHT_BLUE, unique=true,
37   - desc = [[This rod is made entirely of voratun, infused with raw magical energies it can bend space itself.
38   -This seems to be what the troll was keeping as "treasure". You have heard of such items before, they are very useful to adventurers, allowing faster travel.]],
39   - cost = 0, quest=true,
40   - elec_proof = true,
41   -
42   - max_power = 1000, power_regen = 1,
43   - use_power = { name = "recall the user to the worldmap", power = 1000,
44   - use = function(self, who)
45   - if who:canBe("worldport") then
46   - who:setEffect(who.EFF_RECALL, 40, {})
47   - game.logPlayer(who, "Space around you starts to dissolve...")
48   - else
49   - game.logPlayer(who, "The rod emits a strange noise, glows briefly and returns to normal.")
50   - end
51   - end
52   - },
53   -}
... ...