Commit graph

35 commits

Author SHA1 Message Date
Christoph Oelckers
0770c0022c - cleaned up use of the random function in script files.
Many uses of random() & value have been turned into random(0, value).
This is not only more efficient, it also ensures better random distribution because the parameter-less variant only returns values between 0 and 255.
2018-12-21 12:40:05 +01:00
Christoph Oelckers
5e4b366724 Removed all native components from AInventory. 2018-12-04 18:06:09 +01:00
Christoph Oelckers
99a87f62b6 - The 'A' prefix has no meaning in class names on the script side - even in comments. 2018-12-04 00:23:52 +01:00
Christoph Oelckers
cce1bad042 - testing and cleanup of scripted morph code. 2018-11-24 08:39:35 +01:00
Christoph Oelckers
6e8dbb590d - fixed: PowerMorph.EndEffect should not tinker around with morph duration.
There was a clear attempt here to let the item keep control of the remaining morph time, but since the item would have gotten destroyed right afterward it just shot itself in the foot badly by doing so.
Just leaving the remaining work to the main unmorphing check in the PlayerThink code by doing nothing will avoid the bad situation where a player gets stuck in its morphed form.
2018-02-28 20:15:44 +01:00
alexey.lysiuk
99d89f0730 Fixed position of Targeter's markers during wearing out
https://forum.zdoom.org/viewtopic.php?t=56811
2017-06-09 15:08:01 +03:00
Rachael Alexanderson
625fc73f28 - Missed a few CF_POWERBUDDHA references. 2017-05-16 04:13:25 -04:00
Major Cooke
795f8f0578 - Added a separate cheat flag to handle buddha powerups. Currently, Buddha powerups could interfere and disable the actual player cheat unintentionally, when the player may not want their actual cheat to be turned off.
- Set some overlooked 1000000 damage points to TELEFRAG_DAMAGE inside the falling damage code.
2017-05-14 17:22:46 +02:00
Major Cooke
49e4c8968f - Fixed: Powerups failed to expire when the EffectTics was set directly to 0 since the variable is always subtracted first before the check. 2017-05-14 17:21:48 +02:00
Christoph Oelckers
3ccd4aa0d1 - fixed: The powerup icons did not blink when expiring. 2017-04-21 18:08:30 +02:00
Christoph Oelckers
cde450dd8a - some enhancements for PowerReflection. 2017-04-14 16:51:11 +02:00
Christoph Oelckers
b17b8d32ad completely redid the active powerup drawer for the HUD
- replaced Inventory.DrawPowerup with a GetPowerupIcon method so that the calling code can handle the drawing and apply its own rules. This was a major design flaw of allowing the inventory items to handle the drawing themselves, because they were unable to adjust to different HUD frontends. Note that any mod that overrides DrawPowerup will not draw any icon that expects to be handled that way!
- the alternative HUD now has its own, separate drawer that obeys the AltHUD's rules, and not the ones of the normal fullscreen HUD.
- the standard drawer has been scriptified as a virtual function.
- Both drawers now handle positioning of the icon inside its assigned box themselves instead of trusting the powerup item to do it correctly.
- DTA_HUDRules and Screen.DrawHUDTexture are to be considered deprecated because both do not integrate into the redesigned HUD code.
2017-03-24 22:58:16 +01:00
Christoph Oelckers
2c789a2d75 - looks like the last commit missed a few files. 2017-03-19 11:35:24 +01:00
Christoph Oelckers
b3ba5bfe2c - allow 'const' on class functions. This is preferable to 'clearscope' so that the UI code can call getter functions without having to declare things as 'clearscope'.
Clearscope is a dangerous context and should be limited to the minimum extent possible and preferably be blocked in user code.
This may still need some work on const functions but better have it in now.
2017-03-04 12:07:45 +01:00
ZZYZX
723f9770a4 Merge remote-tracking branch 'gz/master' into gz_master2 2017-03-03 23:33:02 +02:00
Christoph Oelckers
e6b31dde27 - added some flexibility to some Skulltag powerups.
- handle these powerups by actual item checks instead of cheat flags. (The same should also be done for the Frightener and Buddha but those are a bit more complex because they are also real cheats.)
2017-02-26 16:23:22 +01:00
Christoph Oelckers
c7668952d9 - set sensible defaults for PowerReflection. 2017-02-26 15:50:03 +01:00
Christoph Oelckers
8b2a5c75a1 - added an old submission for PowerReflection, although it had to be seriously reworked and improved. 2017-02-26 15:47:37 +01:00
Christoph Oelckers
e2d5a708f8 - added an amount parameter to the 'drop' CCMD. 2017-02-23 20:18:02 +01:00
ZZYZX
fb9b8c8870 Re-enabled clearscope for methods; made isBlinking() clearscope 2017-02-18 07:51:41 +02:00
ZZYZX
dbc595f886 Marked DrawPowerup as ui, still compiles and somewhat works :D 2017-02-18 07:30:20 +02:00
Christoph Oelckers
b3d7980b90 - fixed: PowerProtection clamped its damage minimum to 1, but should do it to 0. 2017-02-15 21:20:11 +01:00
Christoph Oelckers
534b2ebbfb - scriptified the remains of APowerup.
- ensure that actor defaults contain a valid virtual table and class pointer so that they can actually use virtual and class-dependent method functions. This is needed for retrieving script variables from them.
2017-01-18 10:33:03 +01:00
Christoph Oelckers
232b64d332 - eliminated the native PowerupGiver class.
- scriptified the respawn invulnerability code into a virtual OnRespawn function for PlayerPawn so that custom effects can be implemented.
2017-01-18 00:11:04 +01:00
Christoph Oelckers
98f9219334 - scriptified the remaining functions in a_artifacts.cpp.
- added some helpers to set scripted member variables through the native property parser.

Unfortunately some classes, e.g. PowerMorph, MorphProjectile and the powerup contain some that cannot be handled through the 'property' definition on the script side so they need to be done from the native side.
2017-01-17 20:30:17 +01:00
Christoph Oelckers
75d3f42d4f - scriptified APowerup. 2017-01-17 17:34:07 +01:00
Christoph Oelckers
8f6571241d - scriptified AÜpwerInvulnerable. 2017-01-16 23:45:25 +01:00
Christoph Oelckers
6990a46daf - scriptified PowerStrength.
This revealed an interesting bug: When the berserk fadout formula was changed in 2005 the result was essentially broken, resulting in values around 7000 - it only worked by happenstance because the lower 8 bits of the resulting values just happened to work to some degree and never overflowed. But the resulting fade was far too weak and a slightly different handling of the color composition code for the VM made it break down entirely.
This restores the pre-2005 formula but weakened intensity which now comes a lot closer to how it is supposed to look.
2017-01-16 22:27:49 +01:00
Christoph Oelckers
d3ab691afb - scriptified APowerInvisibility.
- changed AlterWeaponSprite so that it doesn't expose renderer internals to the script code.
2017-01-16 20:34:12 +01:00
Christoph Oelckers
616f954153 - scriptified PowerIronFeet and PowerMask. 2017-01-16 19:04:03 +01:00
Christoph Oelckers
d207b571d9 - scriptified PowerLightAmp and PowerTorch.
- allow calling qualified super methods so skipping some levels is possible.
2017-01-16 00:46:15 +01:00
Christoph Oelckers
d2d6e5d486 - scriptified PowerFlight and PowerWeaponLevel2. 2017-01-15 23:21:38 +01:00
Christoph Oelckers
4837e1e770 - partially scriptified APowerSpeed. 2017-01-15 20:58:52 +01:00
Christoph Oelckers
7503937a84 - scriptified PowerTargeter. 2017-01-15 19:44:43 +01:00
Christoph Oelckers
a597979738 - scriptified ammo.
- moved inventory stuff into its own directory.
2017-01-14 21:27:31 +01:00
Renamed from wadsrc/static/zscript/shared/powerups.txt (Browse further)