I experimented with the string Pufftype's Bulletpuff actor and replaced Bulletpuff with a poison projectile. Works pretty well with weapons. Unfortunately, monster attacks don't have the same capability. I'm sure I can make all kinds of status effects by corrupting the powerups for teh string Pufftype, but I also want instant-like poison bullets too.
Example: A_CustomBulletAttack (float horz_spread, float vert_spread, int numbullets, int damageperbullet, string pufftype="Poison_Projectile" [, float range [, int flags]]) vvv Doesn't apply the same to monster attacks.
Oh shit! It cakin' works. Blue Shadow, I will put your name in the credits of my dumb doom2 monsterplayers project. I guess some effects for monster attacks need a on/off switch of some sort.
The projectile actor in A_CustomBulletAttack's string Pufftype value really needs a Damagetype of value Poison (for monsters to fire poisonous bullets). The damage done relies on the int damageperbullet value of A_CustomBulletAttack statement and the countdown before expiration relies on the duration value of the PoisonDamage value[, duration[, period]] actor property. The value of the PoisonDamage does not apply to bullets b/c it specifically states that value is for projectiles only as noted within the wiki.
PoisonDamage value[, duration[, period]] Gives a projectile poison damage. Poison damage isn't inflicted all at once but affects the victim for a certain amount of time. The value specified here defines the time the poisoning effect lasts. Remember, poison damage only affects players if only value is specified. Otherwise, it also affects enemies. Poison damage is inflicted every period tics (the default value of 0 means once per second). If a non-zero duration is given, it is used for the total length of the poisoning, otherwise the length depends on the value. See also ADDITIVEPOISONDAMAGE and ADDITIVEPOISONDURATION. (New from 2.5.0)
//http://www.zdoom.org/wiki/Damage_types ACTOR Pistol_Projectile_MONSTERONLY : Weapon { Game Doom Radius 2 Height 2 Speed 100 //Damage 5 DamageType "Poison" PoisonDamage 5,10,0 // PoisionDamage (damage, time [seconds], seconds to kick in damage [zero also equals kicking damage for each second passed]) Obituary "%o did not feel better with those shots." Projectile //+NOBLOCKMAP //+SEEKERMISSILE +ADDITIVEPOISONDAMAGE +ADDITIVEPOISONDURATION +RANDOMIZE +ROCKETTRAIL // Added In SeeSound "demon/melee" DeathSound "weapons/plasmax" RenderStyle None
States { Spawn: //PINV ABCD 3 Bright //IFOG DC 1 Bright A_NoBlocking // Added In IFOG D 0 A_PlaySound ("weapons/plasmax",4,1.0,0,ATTN_NORM) IFOG D 1 Bright A_NoBlocking // Added In IFOG C 1 Bright //A_CustomMissile("Poison_Seeker_Projectile",1,0,0,CMF_AIMOFFSET|CMF_AIMDIRECTION,270) //Loop Death: //TFOG FEDCA 4 Bright A_SpawnItem("BossCubeTurrantPanch_Projectile_Jam",1,0,0) IFOG AAA 1 Bright Stop } }
ACTOR Pistol_Projectile_MONSTERONLY : Weapon { Game Doom Radius 2 Height 2 Speed 100 //Damage 5 DamageType "Poison" PoisonDamage 5,10,0 // PoisionDamage (damage, time [seconds], seconds to kick in damage [zero also equals kicking damage for each second passed]) Obituary "%o did not feel better with those shots." Projectile //+NOBLOCKMAP //+SEEKERMISSILE +ADDITIVEPOISONDAMAGE +ADDITIVEPOISONDURATION +RANDOMIZE +ROCKETTRAIL // Added In SeeSound "demon/melee" DeathSound "weapons/plasmax" RenderStyle None
States { Spawn: //PINV ABCD 3 Bright //IFOG DC 1 Bright A_NoBlocking // Added In IFOG D 0 A_PlaySound ("weapons/plasmax",4,1.0,0,ATTN_NORM) IFOG D 1 Bright A_NoBlocking // Added In IFOG C 1 Bright //A_CustomMissile("Poison_Seeker_Projectile",1,0,0,CMF_AIMOFFSET|CMF_AIMDIRECTION,270) //Loop Death: //TFOG FEDCA 4 Bright A_SpawnItem("BossCubeTurrantPanch_Projectile_Jam",1,0,0) IFOG AAA 1 Bright Stop } }