BasicBouncer
when inherited from will create a projectile that can receive projectile team colors and that can bounce on floors, ceilings, walls, and water floors as well.
Unlike normal projectiles, if your projectile must bounce but goes over 60 speed
, you cannot use BasicFastProjectile
or FastProjectile
inherited actors, because they cannot bounce. Your projectile will just have to be subject to phasing through people at odd angles.
<aside> 🚨 Wait! Stop! Before you copy this actor's definition into your mod, remember the following things:
actor BasicBouncer : BasicProjectile
{
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+CANBOUNCEWATER
}
These are user variables that can be added to the actor for various effects. You do not need to give them a value, they just must be defined.
var int user_NoTranslation
- Disables projectile team colors on this actor
var int user_TranslateWhiteColors
- Allows projectile team colors to recolor white.
var int user_TranslateBlackColors
- Allows projectile team colors to recolor black.
var int user_PierceRipper
- Makes it so that this actor only does damage once to another actor. The actor being damaged must have +USEDAMAGEEVENTSCRIPT
, like players already do.
A_GiveInventory("PierceRipperLimit", x)
in the Spawn
state of the actor.var int user_DamageKill
- Makes it so that this actor only does damage once before entering Death
state. The actor that is being damaged must have +USEDAMAGEEVENTSCRIPT
, like players already do. The actor with this flag must also have reactiontime
set.
reactiontime
value. A projectile with reactiontime 3
will only be able to damage 3 times to any players before dying.var int user_noOwnerDamage
- If the actor has the +SHOOTABLE
actor flag, the +USEDAMAGEEVENTSCRIPT
actor flag, and a health
value, this property will prevent the owner of the actor as well as their teammates from dealing damage to it.
Here is a simplified version of the Triple Blade projectile from MM8BDM. Note that it is using user_PierceRipper
with a finetuned limit, so it will only be able to damage the same person 3 times, totaling for 15 damage.
actor SimpleTripleBlade : BasicBouncer
{
+RIPPER
+DONTBLAST
-BOUNCEONWALLS
bouncecount 2
Obituary "$OB_TRIPLEBLADE"
damagetype "TripleBlade"
Radius 16
Height 5
Damage (5)
Speed 30
var int user_PierceRipper;
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveInventory("PierceRipperLimit", 3)
TBL1 E 1
wait
Death:
TNT1 A 0
stop
}
}