Chaosforge Forum

DoomRL => Modding => Topic started by: SPTX on May 05, 2013, 04:26

Title: How do I change default melee damage? Also, timers.
Post by: SPTX on May 05, 2013, 04:26
items.fists doesn't exist and when I look into the log of beings I don't see anything that points to a weapon for melee, I believe it's coded into the AI or something.
Anyway, here's the question :
-How do I change default melee damage (the one used by melee_ranged/former_ai monsters and the player when he has a ranged weapon equipped)
Also, how do I change its sound?

Now about timers. How do I make them?
For example, I want to make a weapon that will drop bombs on the ground that will not instantly explode, letting the player and enemies play other turns for a bit before that happens.
Title: Re: How do I change default melee damage? Also, timers.
Post by: Equality on May 06, 2013, 04:16
From wiki:
being.todam  (shortint)  This damage modifier is applied to all the being's melee attacks.

we can't change magic base 1d3, but parameter todam can.

Player deals 1d3. Each level of Brute adds +3 player.todam.

Former human melee: 1d3 -1
imp melee: 1d3 +2
demon melee: 1d3 +5
and so on.

being.soundmelee  (word)  This is the being's .melee sound.

For converting some sound file to word number use core.resolve_sound_id (look into "Elevator of dimensions" code)
Title: Re: How do I change default melee damage? Also, timers.
Post by: SPTX on May 06, 2013, 11:50
Oh, I hadn't noticed that monsters also had 1d3 as a base and were just applied the todam. Well, thanks, that's certainly unlocks me for one big part.
Title: Re: How do I change default melee damage? Also, timers.
Post by: yaflhdztioxo on May 06, 2013, 16:58
Timers, like the ones I use in Skulltag and Elevator to generate explosions, are NOT DoomRL constructs.  They are queues I spin up and manage myself.

Inserting new events into my event queues is done whenever I feel like it.  I usually manage my event queue with the OnTick hook.  It exists for Level, Module, Challenge, and Core (Lev and Mod being the two you're most likely to use).  That 'timer' runs once every tick (once every 0.1 seconds) which is usually good enough for my needs.  Other things that could be abused to make timers include affects (which is action based instead of tick based but which is much harder to make work) and a being's OnAction (also action based but since it is tied to a being it really only makes sense to time things here in a manner akin to cooldown).  Unfortunately the PLAYER does NOT trigger OnAction hooks, a shame since that would be a perfect answer to a lot of non-absolute timing schemes.  Were the player OnAction hook working I'd move most of the Skulltag effects to that timing system in a heartbeat.
Title: Re: How do I change default melee damage? Also, timers.
Post by: SPTX on May 06, 2013, 17:35
I was afraid I would have to use OnTick.
Well, I guess a proper way to implement timed functions is a fine request for the modding wishlist
Title: Re: How do I change default melee damage? Also, timers.
Post by: SPTX on May 08, 2013, 04:05
I can't get the weapons sounds working.

I copied straight from elevator into my main.lua :
Code: [Select]
core.declare("FixAllSounds")
FixAllSounds = function() end

function mymod.OnEnter()
FixAllSounds() end

and then into my items.lua
Code: [Select]
local FixSounds = function()
items["meleeweapon"].sound_attack = core.resolve_sound_id("lostsoul.melee")
end
FixAllSounds = core.create_seq_function(FixSounds, FixAllSounds)
Aaaaand... it's not working.

Am I missing something there?
I also tried a very similar method from metal gear rl and no chance either. I just don't get it.
Title: Re: How do I change default melee damage? Also, timers.
Post by: yaflhdztioxo on May 08, 2013, 18:29
To be honest I have no idea which of the sound hacks is currently working.  The sound engine is a weakness in DoomRL and I've had to do different things across different versions.

The only thing that I know works for certain is naming your sound after the property you want to bind it to.  That requires no assigning or specialized Lua code whatsoever.
Title: Re: How do I change default melee damage? Also, timers.
Post by: SPTX on May 09, 2013, 01:55
The problem with that is that I don't use custom sounds, as you can see.
Title: Re: How do I change default melee damage? Also, timers.
Post by: yaflhdztioxo on May 09, 2013, 05:19
Copy, paste, rename.

Or you can try experimenting and see if something else works...
Title: Re: How do I change default melee damage? Also, timers.
Post by: SPTX on May 09, 2013, 07:50
I just tried this as well and it doesn't work...
All I seem to have left is trying to change my weapons into ranged weapons and trick them to work like melee weapons... But that's really dodgy and I am not even sure I'll be able to bind these melee sounds to the missiles.