Chaosforge Forum

DoomRL => Modding => Releases => Topic started by: Equality on April 11, 2013, 02:37

Title: Tourist mod: walk through Hell like a Boss! + Infinity module
Post by: Equality on April 11, 2013, 02:37
Tourist:
Well, from one side that is a sample how to create items. I create:

- pistol, auto-rechargable, alt-fire, alt-reload
- knife, alt-fire
- super-medpack.
- armor and boots.

From other side it is a sample how reuse any of special levels that exist in game. All names are present in code.

And for non-modders that is a good training area, where you can visit ANY special level at any difficulty. Faster gain experience, and find a lot of uniques. Of course you have at start "cheaters" equipment - but why not unequip that? Well. Anyway it is a debug-mode episode.

Pistol alt-reload teleports you to stairs, if you want. May be in future I write "massacre" for knife alt-fire ...

last changes:
- make a proper color for armor. No, it is not intended black - I want a cybernetic armor with white glow. Now it looks properly.
- added Map Scanner - thank to shark20061
- added missed Deimos Lab. Now ALL special levels here.
- added big ammo and ammopacks. Can be bugged, not tested.
- knife converted to blade, with Dragonslayer sprite and Whirlwind alt-fire.
- added proper level names (i.e. Phobos-Deimos-Hell)

finally,
- added MASSACRE for blade alt-attack. Kill all living (and non-living) beings on level. Except you.

Infinity
A long-long way. Until level number not reached max_integer or something like that. So, if you want, you can descend to level 2 000 000 000. Or at least to 32000.
Make that past discussion about Infinity Dungeon at ADoM...
Title: Re: Tourist mod: walk through Hell like a Boss! + Infinity module
Post by: Shinji_Ikari_9th on April 11, 2013, 15:39
just finished playing tourist and found myself with more then i knew what to do with.  well done.

edit- just played the newest version of tourest, and i must say that i loved the map scanner.
Title: Re: Tourist mod: walk through Hell like a Boss! + Infinity module
Post by: yaflhdztioxo on April 11, 2013, 16:40
Heh, well it was bound to happen eventually, and I suspect this mod is a GREAT resource for other modders who want to learn now to work with the engine.

I wonder if we should put this on the portal?
Title: Re: Tourist mod: walk through Hell like a Boss! + Infinity module
Post by: Evilpotatoe on April 11, 2013, 17:15
Just tried it. Great, indeed.

The super medkit is a good idea. Would you mind adding super nuke, non-homing phase device, portable invulnerability globe, zerk pack, envirosuit, light amp, & tracking map ? :)

Btw, I found myself short of ammo several times, why does this stupid blaster need reload ? it feels so weak :(
Title: Re: Tourist mod: walk through Hell like a Boss! + Infinity module
Post by: shark20061 on April 11, 2013, 19:16
Pistol alt-reload teleports you to stairs, if you want. May be in future I write "massacre" for knife alt-fire ...

Code: [Select]
OnAltFire = function (self, firer)
  if not firer.flags[BF_INV] then
    firer.flags[BF_INV] = true
    level:nuke()
    firer.flags[BF_INV] = false
  else
    level:nuke()
  end
  return true
end,


Just tried it. Great, indeed.

The super medkit is a good idea. Would you mind adding super nuke, non-homing phase device, portable invulnerability globe, zerk pack, envirosuit, light amp, & tracking map ? :)

Btw, I found myself short of ammo several times, why does this stupid blaster need reload ? it feels so weak :(

Since we have a testing thing going on, I'll supply my favorite debug items:

PDA - Full map visibility
Code: [Select]
register_item "automap" {
name = "PDA",
weight = 0,
sprite = items.map.sprite,
type = ITEMTYPE_PACK,
desc = "A handheld device that contains a built in scanner system.  Just activate it to reveal the level.",
OnUseCheck = function (self, user)
level.light[LFEXPLORED] = true
level.flags[LF_ITEMSVISIBLE] = true
level.flags[LF_BEINGSVISIBLE] = true
return false
end,
OnUse = function (self, user)
--Nothing!
end,
}

player.inv:add("automap")

The all powerful Mining Laser:
Code: [Select]
register_item "mininglaser" {
name = "Mining Laser",
weight = 0,
sprite = items.plasma.sprite,
type = ITEMTYPE_RANGED,
desc = "Fires a highly focused laser that burns through anything in its path.",
damage = "7d6",
damagetype = DAMAGE_PLASMA,
psprite = items.plasma.psprite,
group = "weapon-plasma",
ammo_id = "cell",
fire = 9,
acc = 12,
ammomax = 50,
altfire = ALT_SCRIPT,
altfirename = "Rapid Mode",
altreload = RELOAD_NONE,
missile = {
sprite = SPRITE_FIREBALL,
color = GREEN,
delay = 20,
miss_base = 0,
miss_dist = 0,
flags = {MF_RAY, MF_HARD},
sound_id = "plasma",
},
flags = {IF_NOAMMO, IF_FARHIT, IF_UNSEENHIT, IF_DESTRUCTIVE},
OnFire = function (self, firer)
self.shots = 0
return true
end,
OnAltFire = function (self, firer)
self.shots = 4
return true
end,
OnFired = function (self, firer)
self.shots = 0
end,
}

player.inv:add("mininglaser")

Portable Invulnerability (Toggle):
Code: [Select]
register_item "inv_toggle" {
name = "Super Shield",
weight = 0,
sprite = items.smed.sprite,
type = ITEMTYPE_PACK,
desc = "Enables and Disables a super shield, making you invulnerable or removing invulnerability.",
OnUseCheck = function (self, user)
if (player.flags[BF_INV] == false) then
ui.msg("The shield is now ON!")
player.flags[BF_INV] = true
else
ui.msg("The shield is now OFF!")
player.flags[BF_INV] = false
end
return false
end,
OnUse = function (self, user)
-- HA! Nothing here, all happens in use check to make it not use any time!
end
}

player.inv:add(inv_toggle)

Super Nuke:
Code: [Select]
register_item "supernuke" {
name = "Nuke Detonator",
weight = 0,
sprite = items.nuke.sprite,
type = ITEMTYPE_PACK,
desc = "When you just feel the need to blow up every last monster on the level...",
OnUseCheck = function (self, user)
ui.msg("You push the nuke button!")
player.nuketime = 100
return false
end,
OnUse = function (self, user)
--Nothing again!
end
}

player.inv:add("supernuke")

The rest will be exercises for the readers!  (The basic framework for the rest is either in the module or in this post.)
Title: Re: Tourist mod: walk through Hell like a Boss! + Infinity module
Post by: Equality on April 11, 2013, 22:50
well.

1. Why this cheaters armor not 100% resist all and has durability?

Because for debug purpoces I want to see when I hurt. Well, if you want, change code and customize it.

2. Why this cheaters pistol not 100d100 and no-ammo?

Because I need some not so powerful for getting corpses sometimes. For checking situation with arch-viles. And if you need more ammo, you can B-mod it in game. Depleting ammo is a signal for player that situation becomes hot. Great when work with custom design and test it.

No-no, no super-nuke. I'm a greedy munchkin, I want to get anything valuable. And "Massacre" not equivalent "Nuke and survive" ;) Actually I suppose look for every being on level and set hp to 0. All die, drop equipment, much more safer.
Title: Re: Tourist mod: walk through Hell like a Boss! + Infinity module
Post by: White Rider on April 11, 2013, 23:33
I've always wanted some kind of mode where I can destroy everything I see without having to work my way up to it.
Thank you for this stress-reliever mode.
Title: Re: Tourist mod: walk through Hell like a Boss! + Infinity module
Post by: Equality on April 13, 2013, 09:12
Finally, added massacre for blade alt-fire.
Code: [Select]
  altfirename = "MASSACRE!",
 OnAltFire = function(self, Being)
   ui.msg("Smell of blood surrounds you...")
   for it in level:beings() do
     it:kill(false)
   end
   return true
 end
Title: Re: Tourist mod: walk through Hell like a Boss! + Infinity module
Post by: GinDiamond on May 09, 2013, 15:03
BWHAHAHAHAHAAAA! I'M DOIN IT LIKE A BOSS!!
Title: Re: Tourist mod: walk through Hell like a Boss! + Infinity module
Post by: aknight2015 on March 14, 2022, 05:29
I just found this mod and I'm loving all but one aspect. It corrupts it's own save game. I save on the stairs and when I try to continue the game tells me that the save is corrupted and deletes it. Anyway to fix this, or a workaround?
Title: Re: Tourist mod: walk through Hell like a Boss! + Infinity module
Post by: tehtmi on March 15, 2022, 18:26
When I tested it, the problem I saw is that the next time you go down stairs after loading the game it will crash. Not sure this is the same as what you're seeing (but it could be related).

I've attached a version with my fix for this, and it didn't seem to crash in the quick tests I run. If you run into more issues, it would help if you could attach a save.

(Basically, the bug is due to the way the mod was tracking which floor you were on; this wasn't saved, so after loading, it would be out of sync with the game's internal count.)