Files
loop/src/Dodge/Item/Weapon/Bullet.hs
T
2022-03-22 21:45:08 +00:00

72 lines
1.8 KiB
Haskell

module Dodge.Item.Weapon.Bullet
( basicBullet
, incBullet
, staticBullet
, conBullet
, bounceBullet
, ltBullet
, hvBullet
) where
import Dodge.Data
import Dodge.WorldEvent.HitEffect
import Dodge.WorldEvent.SpawnParticle
import Dodge.Particle.Bullet.HitEffect
import Geometry.Data
basicBullet :: AmmoType
basicBullet = BulletAmmo
{ _amString = "BASIC"
, _amBulEff = destroyOnImpact bulHitCr bulHitWall
, _amBulWth = 2
, _amBulVel = V2 50 0
, _amBulTraj = BasicBulletTrajectory
}
incBullet :: AmmoType
incBullet = BulletAmmo
{ _amString = "INCENDIARY"
, _amBulEff = destroyOnImpact bulIncCr bulIncWall
, _amBulWth = 2
, _amBulVel = V2 50 0
, _amBulTraj = BasicBulletTrajectory
}
staticBullet :: AmmoType
staticBullet = BulletAmmo
{ _amString = "STATIC"
, _amBulEff = bulletDestroySpawn aStaticBall
, _amBulWth = 2
, _amBulVel = V2 50 0
, _amBulTraj = BasicBulletTrajectory
}
conBullet :: AmmoType
conBullet = BulletAmmo
{ _amString = "CONCUSSIVE"
, _amBulEff = destroyOnImpact bulConCr bulConWall
, _amBulWth = 2
, _amBulVel = V2 50 0
, _amBulTraj = BasicBulletTrajectory
}
bounceBullet :: AmmoType
bounceBullet = BulletAmmo
{ _amString = "BOUNCING"
, _amBulEff = destroyOnImpact bulHitCr bulBounceWall
, _amBulWth = 2
, _amBulVel = V2 50 0
, _amBulTraj = BasicBulletTrajectory
}
ltBullet :: AmmoType
ltBullet = BulletAmmo
{ _amString = "LTBULLET"
, _amBulEff = destroyOnImpact bulHitCr bulHitWall
, _amBulWth = 2
, _amBulVel = V2 40 0
, _amBulTraj = BasicBulletTrajectory
}
hvBullet :: AmmoType
hvBullet = BulletAmmo
{ _amString = "HVBULLET"
, _amBulEff = penWalls hvBulHitCr hvBulHitWall
, _amBulWth = 6
, _amBulVel = V2 80 0
, _amBulTraj = BasicBulletTrajectory
}