Monstrous Megapack (monsters/items/rooms) 1.2.2 released

Discussion in 'Mod Releases' started by bluehinter, Mar 3, 2013.

  1. lccorp2

    lccorp2 Member

    Does craftoutput="1" actually work on food and drink? Hm.
     
  2. bluehinter

    bluehinter Member

    Are you suggesting I combine my previous mods, Drama Queen and Bowiemancy, with this mod to create one big mod, or something else?

    I have been debating about whether or not to package Drama Queen along with this mod. but I think a lot of that will depend on whether or not I can get the fruit machine dungeon objects to work properly, which would then mean I could proceed with my gambling-themed High Roller skill set, and if I'm adding one skill set, I might as well add multiple ones.
     
    Kazeto and Vitellozzo like this.
  3. Bohandas

    Bohandas Member

    Do both. Release a combined version and an uncombined version.
     
    Kazeto likes this.
  4. FaxCelestis

    FaxCelestis Will Mod for Digglebucks

    As someone who's done that, it is so much work.
     
    Kazeto and Vitellozzo like this.
  5. Vitellozzo

    Vitellozzo Member

    Yep. No real advantage, but downloading "big pack mods" is always a joy for players, like things as FaxPax and Roguish Renovation.
    But, as I said, just saying. I'm not complaining about anything.
     
    Kazeto and pokyhoky12 like this.
  6. pokyhoky12

    pokyhoky12 Member

    Since it sounds like you have skill mods already made I think it would be perfect to have them incorporated into your megapack. As a player I prefer the skills in the megapack.
     
    Kazeto and Vitellozzo like this.
  7. bluehinter

    bluehinter Member

    Okay, I've made a few simple rooms to test my skills, and nothing has crashed yet, so now I'm going to try to move on to the harder stuff like creating Kobro Eggs and the Fruit Machine room.

    I'm looking at the "Dwarven Mail System" in the first expansion pack as my example, and my first question is, can I make something that functions as a lever but looks like something else? (ie: a slot machine)

    In the "Dwarven Mail System" example, it simply lists
    <element x="5" y="6" type="lever" can_push="0" id="lever0"/>

    Is there any way to specify a pngSprite, like you can for a customblocker?

    I'm guessing not, but I want to make sure before I proceed any further, because it will determine how I create the artwork for the fruit machine itself.
    If I can't, I'll mean I have to place the lever on the right, and then the fruit machine as a custom blocker on the left, however this means that the player will have to be centered on the lever to use it, which also means my fruit machine "activated" animation will also have to be adjusted, so that it appears to hover over the custom blocker machine rather than the lever itself.
     
  8. Bohandas

    Bohandas Member

    you can do it with a custombreakable and some scripts that switch it back and forth with another custom breakable when it gets hit.
     
  9. bluehinter

    bluehinter Member

    Clever, but I don't think that would work for what I'm going for. (I don't want players to be able to activate a fruit machine by pelting it with a softball from across the room for example.)
     
  10. Bohandas

    Bohandas Member

    You might also be able to just place another blocker on top of the lever and then set them both to canpush="0" so that it won't be pushed off and neither will the lever.

    EDIT:
    Whether the correct one shows up on top will probably depend on what order you define them in but I'm not sure.
     
    Last edited: Sep 20, 2013
  11. lccorp2

    lccorp2 Member

    Room contents are dumped on top of each other in sequence. An object A that is defined below another object B in rooms.xml will appear on top of B.
     
  12. bluehinter

    bluehinter Member

    Hmm... that could work, though it'd all depend on whether or not you can still activate the lever even though it's hiding beneath the Fruit Machine. (I have run into plenty of problems with portals, teleporters, and items on the floor becoming inaccessible after spawning beneath a monolith or eyeball shrine)

    Now that I think about it, since the existing levers in the game all pull left/right instead of up/down, the simplest solution would be to change the orientation of my slots so that they face sideways. This will make the art much trickier, but since dungeon sprites can be taller than they are wide, I can place the Fruit Macine blocker one square lower than the lever, and adjust the height so that it looks like one solid object instead of two.


    Mini Update: I decided to work on the Pac Man room, which is far less difficult, but annoying because I had to manually place 120 single zorkmid pieces and 63 custom blockers using x, y coordinates. I was originally planning on just placing some pallet-shifted Wights in the center of the room, but since they only showed up in expansion pack one, I decided to bite the bullet and create a new monster instead:
    [​IMG]
    #5 Goop
    Goops are slimy blobs of ectoplasm that leave behind sticky slime trails when they move. (which causes a minor :nimbleness: debuff to the player if he/she steps in it) Like their more famous big brother from the Steve McQueen movie, they primarily do asphyxiative damage, and are vulnerable to hyperborean and blasting damage.

    As you can tell, they bear more than a slight resemblance to the ghosts from Pac Man, but should be distinct enough that it'll come as a surprise when the player enters the special room on level 4 and spots a Red, Cyan, Pink, and Orange one lurking in the center of the maze.
     
    Vitellozzo likes this.
  13. bluehinter

    bluehinter Member

    Hmmm... Does anyone know a reliable way of placing a single zorkmid on the floor, either by script or spell?
    I had hoped to litter my Pac Man themed room with single gold coins, but if I use
    <loot type="zorkmids" x="2" y="2" amount="1"/> this happens:
    [​IMG]
    The only other thing I can think of is to create a bunch of individually IDed custom engravings that look like a gold coin (minus the glints), and then have a bunch of scripts that will remove the engraving if the player steps on it:
    <script>
    <condition condition_type="at" id="player" x="14" y="16" />
    <action on="success" action_type="remove" id="fakegold111" />
    </script>

    but that's going pretty far for what started out as a silly joke.
     
    Vitellozzo likes this.
  14. bluehinter

    bluehinter Member

    Also, while I'm picking everybody's brains, what I really wanted to do for the Goops is give them a slime trail that degrades into a lesser strength version every subsequent turn (which also has a reduced probability of triggering Mucus Hold on the player). So high level Goops can lay down a Disgusting Slime trail, which becomes Heavy Slime on the next turn, then Medium Slime, then Weak Slime, then Dry Slime.

    Unfortunately, for the life of me, I can not get this part to work. Getting the Goops to lay down slime trails at all was a nightmare itself, since the triggering only seems to work properly as a "self" spell (I tried using templates, and couldn't get it to work), and even with affectscaster="0", it still shows them as receiving the mucus hold debuff from standing on their own trails, even if they don't receive the negative effect.

    Any ideas? Here's the current code I'm using for Mucus Hold, Weak Slime and Medium Slime as examples:
    <spell name="Mucus Hold" type="target" icon="sprites/spells/mucus_held_32.png">
    <effect type="paralyze" amount="5" turns="1" affectscaster="0" />
    <buff useTimer="1" time="4" allowstacking="0" stacksize="1" icon="sprites/spells/mucus_held_64.png" smallicon="sprites/spells/mucus_held_32.png" bad="1" self="0">
    <primarybuff id="2" amount="-1"/> <!-- Nimbleness -->
    </buff>
    <description text="Your feet are stuck to the floor. In pretty much the grossest way imaginable!"/>
    <anim sprite="sprites/sfx/mucus_hold/mucus_hold" frames="6" centerEffect="0" sfx="dmg_putrefying"/>
    </spell>

    <spell name="Weak Slime" type="targetfloor"
    mine="1"
    mineTimer="4"
    mineradius="1"
    mineSpriteDrawOrder="0"
    minePermanent="1"
    minespritePNGSeries="sprites/sfx/weak_slime_trail/weak_slime_trail"
    mineSpritePNGFirst="0"
    mineSpritePNGNum="2"
    mineSpritePNGRate="100" >
    <description text="Partially congealed mucus. I still wouldn't recommend touching it."/>
    <effect type="damage" Putrefying="2" affectscaster="0" />
    <effect type="trigger" spell="Mucus Hold" percentage="15" affectscaster="0" />
    <anim sprite="sprites/sfx/mucus_trail/mucus_trail" frames="4" sfx="dmg_putrefying" centerEffect="0"/>
    <ai hint="mine"/>
    </spell>

    <spell name="Medium Slime" type="targetfloor"
    mine="1"
    mineTimer="4"
    mineradius="1"
    mineSpriteDrawOrder="0"
    minePermanent="1"
    minespritePNGSeries="sprites/sfx/med_slime_trail/med_slime_trail"
    mineSpritePNGFirst="0"
    mineSpritePNGNum="2"
    mineSpritePNGRate="100" >
    <description text="A trail of sticky mucus. You feel dirty just looking at it."/>
    <effect type="damage" Putrefying="4" affectscaster="0" />
    <effect type="trigger" spell="Mucus Hold" percentage="30" affectscaster="0" />
    <anim sprite="sprites/sfx/mucus_trail/mucus_trail" frames="4" sfx="dmg_putrefying" centerEffect="0"/>
    <ai hint="mine"/>
    </spell>

    <spell name="Weak Slime Trail" type="self">
    <buff useTimer="1" time="4" allowstacking="0" stacksize="1" icon="sprites/spells/slime_trail64.png" smallicon="sprites/spells/slime_trail32.png" bad="0" self="1">
    <primarybuff id="2" amount="1"/> <!-- nim -->
    </buff>
    <effect type="trigger" spell="Weak Slime" amount="0" affectscaster="0"/>
    <effect type="trigger" spell="Weak Slime" amount="1" affectscaster="0"/>
    <effect type="trigger" spell="Weak Slime" amount="2" affectscaster="0"/>
    <effect type="trigger" spell="Weak Slime" amount="3" affectscaster="0"/>
    <anim sprite="sprites/sfx/mucus_hold/mucus_hold" frames="6" centerEffect="0"/>
    <description text="Gross! This creature is leaving behind a trail of sticky slime!"/>
    <ai hint="mine"/>
    </spell>

    <spell name="Medium Slime Trail" type="self">
    <buff useTimer="1" time="4" allowstacking="0" stacksize="1" icon="sprites/spells/slime_trail64.png" smallicon="sprites/spells/slime_trail32.png" bad="0" self="1">
    <primarybuff id="2" amount="1"/> <!-- nim -->
    </buff>
    <effect type="trigger" spell="Medium Slime" amount="0" affectscaster="0"/>
    <effect type="trigger" spell="Medium Slime" amount="1" affectscaster="0"/>
    <effect type="trigger" spell="Medium Slime" amount="2" affectscaster="0"/>
    <effect type="trigger" spell="Medium Slime" amount="3" affectscaster="0"/>
    <anim sprite="sprites/sfx/mucus_hold/mucus_hold" frames="6" centerEffect="0"/>
    <description text="Gross! This creature is leaving behind a trail of sticky slime!"/>
    <ai hint="mine"/>
    </spell>
     
  15. lccorp2

    lccorp2 Member

    Bluehinter, that can't be done at the moment. For things to change, you'd need a trigger - and a trigger needs a target in order to work, which is why the gas canister from Rogue Scientist is a monster.
     
  16. Vitellozzo

    Vitellozzo Member

    GENIOUS!
     
  17. bluehinter

    bluehinter Member

    Ah well... At least it's good to know I was attempting the impossible rather than simply sucking at XML.

    Here's another question:
    I've created a Temple of Doom style mine cart room (hopefully the first of several) where once the lever is pulled, the mine cart is propelled down the track doing crushing damage to anything in its path.

    [​IMG]

    EDIT: I was originally wondering how to make the mine cart move along the track, since physically moving the minecart object happened too quickly to be caught with the naked eye. The solution was to create a large 288x160px animation exactly the size of my track area and center it at the exact middle of the lava field (though I found out the hard way that your animation field needs to be an odd number of 32px squares high as well as across to center correctly)

    It works like a dream, and my concerns about having the spell target being outside of the player's view radius were unfounded. You can still see it, it's just slightly greyed out.
     
    Last edited: Sep 28, 2013
    Vitellozzo likes this.
  18. bluehinter

    bluehinter Member

    I had some time to kill while sketching on cocktail napkins last night, and I've thought up a bunch of new rooms, and decided to add a few more enemies (with comparatively simple artwork) to the game.

    [​IMG]
    #6 Roamer
    A floating boxy robot that patrols the dungeon, vaporizing all imperfections. Vulnerable to existential damage.
    I'm planning on giving it a high spell percentage, which will hopefully make it move around relatively infrequently, but with a preference for blasting the player with ranged spells. I'm also toying with the idea of giving it an attack that occasionally targets ally monsters (maybe a 1 in 6 chance). So it's ranged attacks may be fairly annoying, but it might be worth leaving it alive for a while if there are a bunch of other monsters in the room and you've got a bit of cover.


    #7 The Shapeless Ones

    A floating Lovecraftian cloud of disembodied eyes and mouths. I haven't worked out the art yet, but I think it will be fairly easy if I just create a bunch of separate elements and then move them around in photoshop to make it look like they're rotating. I haven't decided on a gimmick yet, but I'm thinking some sort of insanity attack.


    I've also got some cunning plans for creating a couple of special Event Rooms, which would essentially be optional midbosses (though there's no way to guarantee a 100% show rate on their assigned level.) I'm almost positive I can pull off a Mad Computer room for the Moonbase level, and I think I've got the workings of an XOR gate that will let me create a giant octopus for the Marble or Wood/Ship level, and a teleporting demon thing for one of the other levels. Ideally, if this works, I'd like to come up with at least one event room for every level except 10 and 15, since fighting Dredmor is a battle by itself, and it would really suck to get cornered by him in a special room that was also trying to kill you.
     
    Vitellozzo likes this.
  19. lccorp2

    lccorp2 Member

    It would be best to leave all your midbosses optional. I do that for Fiersome, Terrable and Lady Svetlana (the last of which is harder than Dredmor and Digula) already, so that should not be a problem. Give ample warning so that there is no way the player can accidentally trigger the boss.
     
    Vitellozzo likes this.
  20. bluehinter

    bluehinter Member

    Definitely. All of my midbosses are going to have some sort of "activated by player" element, and be composed entirely of room scripts and custom blockers/breakables (with possibly a few specially confined terrain="1" monsters) so they effectively can't leave the room they spawn in. To escape from a mid boss, all the player has to do is walk out the nearest door. One plus side of doing things this way is that my bosses can be comparatively ginormous, and won't be defeated in your typical "hit it until it's dead" manner.

    For example, the first boss room I'm going to be working on is the Mad Computer room, which is circular with a big reel-to-reel computer sitting in the middle between a couple of tesla coil. Rather than fighting the computer directly, the player will end up playing a variation of the old mastermind game using 3 color-coded switches around the outside of the room, which must be triggered in the correct order before pulling a 4th "guess" lever to shut the computer down. (an incorrect guess will summon three Unfriendly AIs) While this is going on, the computer in the center will occasionally fire a pair of lightning bolt missiles at the player from it's two tesla coils. Getting hit will do moderate voltaic damage, but there are a number of barriers around the room that the player can take cover behind while running from switch to switch, and I'm going to try to add a "charging" animation a turn before each firing, so the player knows when it's safe to come out from hiding or not.

    The only time he'll really be exposed is when running back to the guess lever in the middle of the room, and since there are only 6 possible combinations from the 3 switches, and the lights on the computer will let you know if you've made a correct guess, it shouldn't take clever players too many circuits to come up with the correct solution.
     
    Last edited: Sep 28, 2013
    Vitellozzo likes this.