diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index b88e98e47db41cd56cca60a09a9e0c49d4e974e0..92b3ab9cda3d60232241cd429d76de2b1e423ebd 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -1207,16 +1207,10 @@ function _M:setupCommands() end end, [{"_g","ctrl"}] = function() if config.settings.cheat then -- self:registerDialog(require("mod.dialogs.DownloadCharball").new()) --- local f, err = loadfile("/data/general/events/cultists.lua") --- print(f, err) --- setfenv(f, setmetatable({level=self.level, zone=self.zone}, {__index=_G})) --- print(pcall(f)) - - local o = game.zone:makeEntity(game.level, "object", {type="weapon", random_object=true}, nil, true) - o:identify(true) - game.zone:addEntity(game.level, o, "object", game.player.x,game.player.y) - - + local f, err = loadfile("/data/general/events/cultists.lua") + print(f, err) + setfenv(f, setmetatable({level=self.level, zone=self.zone}, {__index=_G})) + print(pcall(f)) end end, [{"_f","ctrl"}] = function() if config.settings.cheat then self.player.quests["love-melinda"] = nil diff --git a/game/modules/tome/class/interface/Combat.lua b/game/modules/tome/class/interface/Combat.lua index 6d53d2c3f5292c230451490fd9d37870ec7988f4..e50d082836a1193b420ea8e0a2e83f6376ce32fc 100644 --- a/game/modules/tome/class/interface/Combat.lua +++ b/game/modules/tome/class/interface/Combat.lua @@ -1230,9 +1230,11 @@ end function _M:spellFriendlyFire() local chance = (self:getLck() - 50) * 0.2 if self:isTalentActive(self.T_SPELLCRAFT) then chance = chance + self:getTalentLevelRaw(self.T_SPELLCRAFT) * 20 end + chance = chance + (self.combat_spell_friendlyfire or 0) + chance = 100 - chance print("[SPELL] friendly fire chance", chance) - return chance + return util.bound(chance, 0, 100) end --- Gets mindpower diff --git a/game/modules/tome/data/general/events/cultists.lua b/game/modules/tome/data/general/events/cultists.lua index 61a2e73f3b5eb2f34e8aa81d0c55099aba9cc3b1..c6610fcc222be091e15dde30e590b23699d9fc18 100644 --- a/game/modules/tome/data/general/events/cultists.lua +++ b/game/modules/tome/data/general/events/cultists.lua @@ -17,6 +17,9 @@ -- Nicolas Casalini "DarkGod" -- darkgod@te4.org +-- Unique +if game.state:doneEvent(event_id) then return end + local list = {} local function check(x, y) @@ -106,6 +109,8 @@ for i, p in ipairs(list) do g:removeAllMOs() game.level.map:updateMap(self.monolith_x, self.monolith_y) if not game.level.turn_counter then + game.level.event_cultists.queen_x = self.monolith_x + game.level.event_cultists.queen_y = self.monolith_y game.level.turn_counter = 10 * 150 game.level.max_turn_counter = 10 * 150 require("engine.ui.Dialog"):simplePopup("Cultist", "The cultist soul seems to be absorbed by the strange stone he was guarding. You feel like something is about to happen...") @@ -130,6 +135,64 @@ game.zone.on_turn = function() if game.level.turn_counter < 0 then game.level.turn_counter = nil + local m = mod.class.NPC.new{ + type = "demon", subtype = "major", + display = 'U', + name = "Shasshhiy'Kaish", color=colors.VIOLET, unique = true, +-- resolvers.nice_tile{image="invis.png", add_mos = {{image="npc/demon_major_shasshhiy_kaish.png", display_h=2, display_y=-1}}}, + desc = [[This demon would be very attractive if not for the hovering crown of flames, the three tails and sharp claws. As you watch her you can almost feel pain.]], + killer_message = "and used for her perverted desires", + level_range = {25, nil}, exp_worth = 2, + female = 1, + faction = "fearscape", + rank = 4, + size_category = 4, + max_life = 250, life_rating = 27, fixed_rating = true, + infravision = 10, + stats = { str=25, dex=25, cun=32, mag=26, con=14 }, + move_others=true, + + instakill_immune = 1, + stun_immune = 0.5, + blind_immune = 0.5, + combat_armor = 0, combat_def = 0, + + open_door = true, + + autolevel = "warriormage", + ai = "tactical", ai_state = { talent_in=2, ai_move="move_astar", }, + ai_tactic = resolvers.tactic"melee", + resolvers.inscriptions(3, "rune"), + + body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, + + combat = { dam=resolvers.levelup(resolvers.mbonus(86, 20), 1, 1.4), atk=50, apr=30, dammod={str=1.1} }, + + resolvers.drops{chance=100, nb=5, {tome_drops="boss"} }, + + resolvers.talents{ + [Talents.T_METEOR_RAIN]={base=4, every=5, max=7}, + [Talents.T_INNER_DEMONS]={base=4, every=5, max=7}, + [Talents.T_FLAME_OF_URH_ROK]={base=5, every=5, max=8}, + [Talents.T_PACIFICATION_HEX]={base=5, every=5, max=8}, + [Talents.T_BURNING_HEX]={base=5, every=5, max=8}, + [Talents.T_BLOOD_LOCK]={base=5, every=5, max=8}, + [Talents.T_SPELLCRAFT]=5, + }, + resolvers.sustains_at_birth(), + + inc_damage = {all=90}, + } + m:resolve() m:resolve(nil, true) + + local x, y = util.findFreeGrid(game.level.event_cultists.queen_x-1, game.level.event_cultists.queen_y, 10, true, {[engine.Map.ACTOR]=true}) + if x then + m.inc_damage.all = m.inc_damage.all - 10 * (game.level.event_cultists.kill) + m.max_life = m.max_life * (14 - game.level.event_cultists.kill) / 14 + + game.zone:addEntity(game.level, m, "actor", x, y) + require("engine.ui.Dialog"):simplePopup("Cultist", "A terrible shout thunders across the level: 'Come my darling, come, I will be ssssooo *nice* to you!'") + end elseif game.level.turn_counter == 10 * 130 or game.level.turn_counter == 10 * 110 or game.level.turn_counter == 10 * 90 or diff --git a/game/modules/tome/data/general/events/drake-cave.lua b/game/modules/tome/data/general/events/drake-cave.lua index c973b0e66a7acde9402f83fdb6961d09cc888e8f..df01aedb090ca48170c12a1ec4e232db4d8ae2fd 100644 --- a/game/modules/tome/data/general/events/drake-cave.lua +++ b/game/modules/tome/data/general/events/drake-cave.lua @@ -66,7 +66,7 @@ local changer = function(id, kind) object = { class = "engine.generator.object.Random", filters = {{type="gem"}}, - nb_object = {15, 25}, + nb_object = {25, 35}, }, trap = { class = "engine.generator.trap.Random", diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_01.png new file mode 100644 index 0000000000000000000000000000000000000000..e988d683016e2d35164ae0df3336f51e3f3b7a8a Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_01.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_02.png new file mode 100644 index 0000000000000000000000000000000000000000..474323e775481e375ad6824a714885a2260083ff Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_02.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_03.png b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_03.png new file mode 100644 index 0000000000000000000000000000000000000000..1a49fc9be20c00dbc779aaed3427ae980f7551eb Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_03.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_04.png b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_04.png new file mode 100644 index 0000000000000000000000000000000000000000..80eb58fcb13be7756f438433ac663059f321997f Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_04.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_05.png b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_05.png new file mode 100644 index 0000000000000000000000000000000000000000..63b06c7850162e7b9be359fb854ad21824a6e6af Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_05.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_06.png b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_06.png new file mode 100644 index 0000000000000000000000000000000000000000..450c7e774b5bb0992a2928426871135d1f4ece62 Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_06.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_07.png b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_07.png new file mode 100644 index 0000000000000000000000000000000000000000..4b1132869ead7330dad6bbd8ac3084f39cdda744 Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_07.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_08.png b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_08.png new file mode 100644 index 0000000000000000000000000000000000000000..4f49a6306e5c0ee080e29766de0f31f37c334752 Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/bluish_moonstone_08.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_01.png new file mode 100644 index 0000000000000000000000000000000000000000..0c2e022408403a3aca4f6713783c7d9de16fdba8 Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_01.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_02.png new file mode 100644 index 0000000000000000000000000000000000000000..1ce0480c4de11e72d505b0297111dace860936dd Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_02.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_03.png b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_03.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2e73c7d048c20bdeb38a58c666e4c85b4bbacd Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_03.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_04.png b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_04.png new file mode 100644 index 0000000000000000000000000000000000000000..a8b8f6f4ac1159677dbe90af234a858299701449 Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_04.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_05.png b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_05.png new file mode 100644 index 0000000000000000000000000000000000000000..7ad30bfd582c4d07bc312bc73277994f24d62cf2 Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_05.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_06.png b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_06.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae60e2fb83cf8dd52c97b793c2ba6f8cd4b75a7 Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_06.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_07.png b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_07.png new file mode 100644 index 0000000000000000000000000000000000000000..ccb44a4306d456a572b2a742da9bd8c577407c8f Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_07.png differ diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_08.png b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_08.png new file mode 100644 index 0000000000000000000000000000000000000000..c6dc72d98b2af75265e2922b75fb929fcc49e7c1 Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/darkgreen_moonstone_08.png differ