Opened 14 years ago
Last modified 12 years ago
#219 assigned bug
IF_SPREAD has problems
Reported by: | tehtmi | Owned by: | epyon |
---|---|---|---|
Priority: | minor | Milestone: | 0.9.9.8 |
Component: | engine | Version: | 0.9.9.3 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
Especially now that IF_SPREAD is used by the tristar blaster, some issues should be cleaned up.
Problem: The shotcost is multiplied by weapon's shots property, but the actual number of shots fired always 3. (So 3 shots can fired from a tristar blaster with 5 cells loaded.)
Suggested solution: Make the shotcost of the IF_SPREAD be a shotcost per triple shot; allow IF_SPREAD weapons with multiple shots to fire multiple bursts.
Alternate solution: Restrict the number of IF_SPREAD shots fired based on available ammo.
Problem: ToHit? and ToDamAll? bonuses aren't added to IF_SPREAD projectiles.
Suggested solution: There should be no issue adding the damage bonus. For the hit bonus, this may be intentional. If it is not, it could be denied to mancubi by changing their hit bonus to melee only or giving their weapon a hit penalty.
Problem: IF_SPREAD allows enemies to dodge the player. Even if this behavior is intentional, it doesn't seem that new enemies have LastPos? correctly set when they are newly dropped in the level which can cause irregularities.
Suggested solution: The LastPos? fix should probably be done regardless. Since the mancubus missile already has a 100% miss chance, it may make sense to replace the IF_SPREAD special case with a special case in the dodging code that ignores the 95% cap when the base miss chance is 100%.
Change History (6)
comment:1 Changed 14 years ago by tehtmi
- Type changed from task to bug
comment:2 Changed 14 years ago by epyon
- Milestone changed from 0.9.9.4 to 0.9.9.5
comment:3 Changed 13 years ago by epyon
- Milestone changed from 0.9.9.5 to 0.9.9.6
comment:4 Changed 13 years ago by epyon
- Milestone changed from 0.9.9.6 to 0.9.9.7
comment:5 Changed 13 years ago by tehtmi
comment:6 Changed 12 years ago by epyon
- Milestone changed from 0.9.9.7 to 0.9.9.8
- Status changed from new to assigned
Another IF_SPREAD problem: The secondary projectiles don't do bounds-checking on their target tiles, so if the target is on the edge of the map (particularly the top or bottom), the game will give an access violation.