Hey everyone! I want to make a mod for Alice and I'm hoping someone here can point me in the right direction. For those unfamiliar, it uses the idTech3 engine. Although I'm not sure how modified it is, but it shouldn't be too different.
I want to do a few things, but the biggest thing I want to do is introduce a weapon upgrade system. You can find duplicate weapons throughout the levels, but all they do is refill your (universal) ammo if you already have them. There's one weapon in particular that you're forced to pick up, yet there's several of them in the game. It bothers me enough that I have to give meaning to it! Lol Also it would be nice to have some kind of collectable in the game, as there's no point system or anything of the sort.
To start, there is already an upgrade system for one particular weapon, so I'm hoping that will simplify things. It's not what I want, but at the very least the game does keep track of how many you've gotten of something. It's called demon dice, and when you throw them there's a chance of summoning a demon, with each additional die giving you a chance of summoning a better demon, up to three dice (although there are four in the game). What I want to do is have a multiplier applied to weapon damage based on how many you've collected of that particular weapon, and an additional universal multiplier based on how many weapons of any kind of been picked up in total, to keep the weapons balanced throughout the game.
From what I can tell, the scripts that contain the values for for each weapon's attack power are tied to whatever model is colliding with the enemy (for example projectile weapons have a unique projectile model), and can be found in the pk compressed folders as .tik files. However, I believe the methods for saving and actually dealing damage are in the executable. Which leads me to my question...How can I see these methods, and how can I make a patch that alters them? Can I make an executable that launches the game and can override the appropriate methods (applying appropriate multipliers when dealing damage, adding to the number of pickups when a weapon is picked up, saving those numbers with the rest of the game data, etc)? I'm a beginner at reverse engineering so I have no idea if this is even feasible.. Anyway any help, advice, or guidance would be greatly appreciated!
