;data start ;Specify what letter denotes a particular ammo count. (define ammocodes ".*BSGRLUCF") ;0 1 2 3 4 5 6 7 8 9 ;none gauntlet Bullets Shells Grenades Rockets Lightning Uranium-slugs Cell F*cking-ammo (define damages '( (DNON (radius 0) (damage 0) (knockback 1.0) (effect 0) (evhit EV_NONE) (evmiss EV_NONE)) (DGAU (radius 0) (damage 50) (knockback 1.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_NONE)) (DBUL (radius 0) (damage 10) (knockback 1.0) (effect 0) (evhit EV_BULLET_HIT_FLESH) (evmiss EV_BULLET_HIT_WALL)) (DSHO (radius 0) (damage 7) (knockback 1.0) (effect 0) ; (evhit EV_BULLET_HIT_FLESH) (evmiss EV_BULLET_HIT_WALL)) (evhit EV_SHOTGUN) (evmiss EV_SHOTGUN)) (DGRE (radius 0) (damage 100) (knockback 1.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (SGRE (radius 150) (damage 100) (knockback 1.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (DROC (radius 0) (damage 100) (knockback 1.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (SROC (radius 120) (damage 100) (knockback 1.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (DLIG (radius 0) (damage 10) (knockback 1.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (DRAI (radius 0) (damage 100) (knockback 1.0) (effect 0) (evhit EV_RAILTRAIL) (evmiss EV_RAILTRAIL)) (DPLA (radius 0) (damage 20) (knockback 1.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (SPLA (radius 20) (damage 15) (knockback 1.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (DBFG (radius 0) (damage 100) (knockback 1.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (SBFG (radius 120) (damage 100) (knockback 1.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (DFBG (radius 0) (damage 300) (knockback 3.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (SFBG (radius 1200) (damage 200) (knockback 2.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (DRA2 (radius 0) (damage 45) (knockback 1000.0) (effect 0) (evhit EV_RAILTRAIL) (evmiss EV_RAILTRAIL)) (DBM1 (radius 0) (damage 0) (knockback 1.0) (effect 0) (evhit EV_RAILTRAIL) (evmiss EV_RAILTRAIL)) (DGRP (radius 0) (damage 0) (knockback 1.0) (effect DFX_GRAPPLE) (evhit EV_NONE) (evmiss EV_NONE)) (DJET (radius 0) (damage 0) (knockback 1.0) (effect DFX_JET) (evhit EV_NONE) (evmiss EV_NONE)) (SMAG (radius 200) (damage 0) (knockback -66.7) (effect 0) ; (SMAG (radius 0) (damage 0) (knockback -100.0) (effect 0) (evhit EV_NONE) (evmiss EV_NONE)) ; (evhit EV_RAILTRAIL) (evmiss EV_RAILTRAIL)) (DSNI (radius 0) (damage 1) (knockback 1.0) (effect DFX_CHARGED) (evhit EV_BULLET_HIT_FLESH) (evmiss EV_BULLET_HIT_WALL)) (SPOG (radius 16) (damage 0) (knockback 100.0) (effect 0) (evhit EV_MISSILE_HIT) (evmiss EV_MISSILE_MISS)) (EALM (radius 0) (damage 0) (knockback 0.0) (effect DFX_ALARM) (evhit EV_NONE) (evmiss EV_NONE)) (DSUI (radius 0) (damage 100000) (knockback 0.0) (effect 0) (evhit EV_NONE) (evmiss EV_NONE)) (DFAL (radius 0) (damage 0) (knockback 0.0) (effect 0) (evhit EV_NONE) (evmiss EV_NONE)) (DCRU (radius 0) (damage 100000) (knockback 0.0) (effect 0) (evhit EV_NONE) (evmiss EV_NONE)) (DH2O ()) (DSLI ()) (DLAV ()) (DLAS ()) (DHUR ()) ) ) ;bounce = -1 for stick-to-wall. (define projectiles '( (pnone (speed -1) (trajectory TR_STATIONARY) (pellets 0) (range 0) (spread 0) (impact PNON) (splash PNON) (base_model WP_NONE) (bounce 0) ) (pgauntlet (speed -1) (trajectory TR_STATIONARY) (pellets 1) ; (range 1000) (range 10) (spread 0) (impact DGAU) (splash PNON) (base_model WP_GAUNTLET) (bounce 0) ) (pmachinegun (speed -1) (cost "B1") (trajectory TR_STATIONARY) (pellets 1) (range *) (spread 50) (impact DBUL) (splash PNON) (base_model WP_MACHINEGUN) (bounce 0) ) (pshotgun (speed -1) (cost "S1") (trajectory TR_STATIONARY) (pellets 11) (range *) (spread 700) (impact DSHO) (splash PNON) (base_model WP_SHOTGUN) (bounce 0) ) (pgrenade (speed 700) (cost "G1") (trajectory TR_GRAVITY) (pellets 1) (range 3000) (spread 0) (impact DGRE) (splash SGRE) (base_model WP_GRENADE_LAUNCHER) (bounce 0.65) (health 10) ) (procket (speed 900) (cost "R1") (trajectory TR_LINEAR) (pellets 1) (range 10000) (spread 0) (impact DROC) (splash SROC) (base_model WP_ROCKET_LAUNCHER) (bounce 0) ) (plightning (speed -1) (cost "L1") (trajectory TR_STATIONARY) (pellets 1) (range 768) (spread 0) (impact DLIG) (splash PNON) (base_model WP_LIGHTNING) (bounce 0) ) (prailslug (speed -1) (cost "U1") (trajectory TR_STATIONARY) (pellets 1) (range *) (spread 0) (impact DRAI) (splash DNON) (base_model WP_RAILGUN) (pierce 3) (bounce 0) ) (prailsnail (speed -1) (cost "U1") (trajectory TR_STATIONARY) (pellets 1) (range *) (spread 0) (impact DRA2) (splash PNON) (base_model WP_RAILGUN) (bounce 0) ) (pplasma (speed 2000) (cost "C1") (trajectory TR_LINEAR) (pellets 1) (range 10000) (spread 0) (impact DPLA) (splash SPLA) (base_model WP_PLASMAGUN) (bounce 0) ) (pbfg (speed 2000) (cost "F1") (trajectory TR_LINEAR) (pellets 1) (range 10000) (spread 0) (impact DBFG) (splash SBFG) (base_model WP_BFG) (bounce 0) ) (hook (speed 800) (trajectory TR_LINEAR) (pellets 1) (range 10000) (spread 0) (impact DGRP) (splash DNON) (base_model WP_GRAPPLING_HOOK) (bounce 0) ) (pjet (speed 0) (trajectory TR_STATIONARY) (cost "") (range 10000) (pellets 1) (spread 0) (impact DJET) (splash DNON) (base_model WP_GAUNTLET) (bounce 0) ) (pgren-proximity:rain (speed 400) (dirtype DIR_AUTO) (trajectory TR_GRAVITY) (cost "G1") (pellets 100) (range 60000) (spread 20000) (impact DGRE) (splash SGRE) (bounce 0.1) (base_model WP_GRENADE_LAUNCHER) (transit pgren-proximity:fire) (health 10) ) (procket-rain-prox (speed 800) (trajectory TR_LINEAR) (cost "R2G20") (range 1000) (pellets 1) (spread 0) (impact DNON) (splash DNON) (base_model WP_ROCKET_LAUNCHER) (bounce 0) (death_proj pgren-proximity:rain) ) (pturretslug (speed -1) (cost "U1") (dirtype DIRTYPE_AUTO) (range *) (pellets 1) (spread 0) (impact DRAI) (splash DNON) (base_model WP_RAILGUN) ) (pgren-turret:die (speed 0) (cost "G2U4") (trajectory TR_GRAVITY) (range 3000) (pellets 1) (spread 0) (impact DROC) (splash SROC) (base_model WP_GRENADE_LAUNCHER) (health 10) ) (pgren-turret:fire (speed 0) (cost "G2U4") (trajectory TR_INTERPOLATE) (dirtype DIRTYPE_DOWN) (range 60000) (pellets 1) (spread 0) (impact DROC) (splash SROC) (base_model WP_GRENADE_LAUNCHER) (transit pgren-turret:die) (spam sturretgren) (health 10) ) (pgren-turret:settle (speed 120) (range 1500) (cost "G2U4") (trajectory TR_LINEAR) (dirtype DIRTYPE_UP) (pellets 1) (spread 0) (impact DROC) (splash DROC) (base_model WP_GRENADE_LAUNCHER) (bounce 0.5) (transit pgren-turret:fire) (health 10) ) (pgren-turret:drop (speed 400) ;really charged. (cost "G2U4") (trajectory TR_GRAVITY) (pellets 1) (range 3000) (spread 0) (impact DROC) (splash SROC) (base_model WP_GRENADE_LAUNCHER) (bounce 0.5) (transit pgren-turret:settle) (health 10) ) (pgren-proximity:die (speed 0) (trajectory TR_GRAVITY) (cost "G1") (pellets 1) (range 0) ;immediate. (spread 0) (base_model WP_GRENADE_LAUNCHER) (impact DGRE) (splash SGRE) (health 10) ) (pgren-proximity:fire (speed 0) (trajectory TR_GRAVITY) (cost "G1") (pellets 1) (range 60000) (spread 0) (impact DGRE) (splash SGRE) (bounce 0.25) (base_model WP_GRENADE_LAUNCHER) (spam smine-proximity) (transit pgren-proximity:die) (health 10) ) (pgren-proximity:drop (speed 400) (trajectory TR_GRAVITY) (cost "G1") (pellets 1) (range 3000) (spread 0) (impact DGRE) (splash SGRE) (bounce 0.5) (base_model WP_GRENADE_LAUNCHER) (transit pgren-proximity:fire) (health 10) ) (procket-homing (speed 800) (trajectory TR_LINEAR) (cost "R2C4") (pellets 1) (range 8000) (spread 0) (impact DPLA) (splash DROC) (base_model WP_ROCKET_LAUNCHER) (spam spam-home1) ) (procket-relentless (speed 300) (trajectory TR_LINEAR) (cost "R2C4") (pellets 1) (range 10000) (spread 0) (impact DPLA) (splash DPLA) (base_model WP_BFG) (spam spam-home-uberlame) ) (pgren-cluster:die (speed 500) (cost "G1") (trajectory TR_GRAVITY) (pellets 4) ; (range 3000) ; (spread 80) (range 1000) (spread 16) (impact DGRE) (splash SGRE) (base_model WP_GRENADE_LAUNCHER) (bounce 0) ) (pgren-cluster:drop (speed 700) (cost "G7") (trajectory TR_GRAVITY) (pellets 1) (range 3000) (spread 0) (impact DGRE) (splash DGRE) (base_model WP_GRENADE_LAUNCHER) (bounce 0.5) (death_proj pgren-cluster:die) (health 10) ) (pcluster-grenade-rocket (speed 500) (dirtype DIRTYPE_UP) (trajectory TR_LINEAR) (cost "R2G4") (pellets 1) (range 8000) (spread 0) (impact DROC) (splash DNON) (base_model WP_ROCKET_LAUNCHER) (death_proj pgren-cluster:die) ) (pspam-grenade (speed 120) (cost "G1") (trajectory TR_GRAVITY) (pellets 2) (range 3000) (spread 2000) (impact DGRE) (splash SGRE) (base_model WP_GRENADE_LAUNCHER) (bounce 0) ) (procket-gren-spam (speed 800) (trajectory TR_LINEAR) (cost "R4G12") (pellets 1) (range 6000) (spread 0) (impact DROC) (splash DNON) (base_model WP_ROCKET_LAUNCHER) (spam spam-rocket-gren1) ) (pgren-magnotron:die (speed 0) (cost "G2") (trajectory TR_GRAVITY) (range 20) (pellets 1) (spread 0) (impact DPLA) (splash SPLA) (base_model WP_GRENADE_LAUNCHER) ) (pgren-magnotron:fire (speed 0) (cost "G2") (trajectory TR_STATIONARY) (dirtype DIRTYPE_UP) (range 3000) (pellets 1) (spread 0) (impact DPLA) (splash SPLA) (base_model WP_GRENADE_LAUNCHER) (transit pgren-magnotron:die) (spam smagnotron) (health 10) ) (pgren-magnotron:drop (speed 400) ;should be charged. (cost "G2") (trajectory TR_GRAVITY) (pellets 1) (range 1000) (spread 0) (impact DPLA) (splash DPLA) (base_model WP_GRENADE_LAUNCHER) (bounce 0.25) (transit pgren-magnotron:fire) (health 10) ) (pmagnopull (speed -1) (trajectory TR_STATIONARY) (pellets 1) (range *) (spread 0) (impact SMAG) ; (impact DNON) (splash DNON) ; (splash SMAG) (base_model WP_GAUNTLET) (bounce 0) ) (ppogo (speed -1) (cost "") (trajectory TR_STATIONARY) (pellets 1) (range 72) (spread 0) (impact SPOG) (splash SPOG) (base_model WP_RAILGUN) (bounce 0) ) (prailbeam (speed -1) (trajectory TR_STATIONARY) (pellets 1) (range *) (spread 0) (impact DBM1) (splash DNON) (base_model WP_RAILGUN) (bounce 0) ) (palarm:die (speed 0) (trajectory TR_STATIONARY) (pellets 1) (range 0) ;immediate. (spread 0) (base_model WP_GRENADE_LAUNCHER) (impact DGRE) (splash SGRE) (health 10) ) (palarm:search (speed 0) (trajectory TR_GRAVITY) (pellets 1) (range 60000) (spread 0) (impact DGRE) (splash SGRE) (bounce -1) (base_model WP_GRENADE_LAUNCHER) (spam salarm) (transit palarm:die) (health 10) ) (palarm:fire (speed 800) (trajectory TR_LINEAR) (pellets 1) (range 100) (impact DNON) (splash DNON) (base_model WP_GRENADE_LAUNCHER) (bounce -1) (transit palarm:search) ) (palarm (speed 1) (trajectory TR_LINEAR) (pellets 1) (range 1) (impact DNON) (splash EALM) ) ) ) (define spams '( (nospam (dirtype 0) ;0 = up, 1 = forward, -1 = backward, 2 = down (period 131072) (projectile pnone) ) (spam-rocket-gren1 (dirtype DIRTYPE_UP) (period 400) (target TARGET_ALWAYS) (delay 0) (projectile pspam-grenade) ) (sturretgren (dirtype DIRTYPE_AUTO) (period 400) (target TARGET_ENEMY_MEMBER) (dist 1000) (angle *) (omega *) (delay 100) (reload 3000) (shots 4) (projectile pturretslug) ) (dirtype DIRTYPE_AUTO) (period 20) (target TARGET_ENEMY_MEMBER) (dist 200) (angle *) (omega *) (delay 0) (reload 0) (simult 64) (projectile pmagnopull) ) (spam-home1 (dirtype DIRTYPE_FORWARD) (period 200) (target TARGET_ENEMY_MEMBER) (dist 1000) (angle 60) (omega 8) ) (spam-home-uberlame (dirtype DIRTYPE_FORWARD) (period 200) (target TARGET_ENEMY_MEMBER) (dist 100000) (angle *) (omega *) ) (smine-proximity2 (dirtype DIRTYPE_AUTO) (period 100) (target TARGET_ENEMY_MEMBER) (dist 2000) (reload 100) (angle *) (omega 0) (delay 100) (shots 1) (projectile procket) ;Shoot nothing once, then proceed to DYING stage. ) (smine-proximity (dirtype DIRTYPE_AUTO) (period 100) (target TARGET_ENEMY_MEMBER) (dist 100) (angle *) (omega *) (delay 200) (reload 0) (shots 1) (projectile pnone) ) (salarm (dirtype DIRTYPE_AUTO) (period 200) (target TARGET_ENEMY_MEMBER) (dist 200) (angle *) (omega *) (delay 0) (reload 200) (projectile palarm) ) ) ) (define weapons '( (phony (ortho false) (attribute 0) (ability 0) (view 0) (modes (1 ()) (2 ()) ) ) (gauntlet (model WP_GAUNTLET) (ortho false) (attribute 0) (ability 0) (view 0) (modes ; (1 (spinup 0) (recoil -400) (reload 400) (projectile pgauntlet)) (1 (spinup 0) (recoil -400) (reload 0) (projectile pgauntlet)) (2 ()) ) ) (machinegun (model WP_MACHINEGUN) (ortho false) (attribute 0) (ability 0) (view 0) (modes (1 (spinup 0) (recoil 100) (reload 0) (projectile pmachinegun)) (2 ()) (3 (spinup 400) (recoil 100) (reload 400) (projectile prailslug)) ) ) (shotgun (model WP_SHOTGUN) (ortho false) (attribute 0) (ability 0) (view 0) (modes (1 (spinup 0) (recoil 1000) (reload 0) (projectile pshotgun)) (2 (spinup 0) (recoil 1000) (reload 0) (projectile pshotgun1)) (3 ()) ) ) (grenadelauncher (model WP_GRENADE_LAUNCHER) (ortho false) (attribute 0) (ability 0) (view 0) (modes (1 (spinup 0) (recoil 800) (reload 0) (projectile pgrenade)) (2 (spinup 0) (recoil 800) (reload 0) (projectile pgren-cluster:drop)) (3 (spinup 0) (recoil 800) (reload 0) (projectile pgren-proximity:drop)) ) ) (rocketlauncher (model WP_ROCKET_LAUNCHER) (ortho false) (attribute 0) (ability 0) (view 0) (modes (1 (spinup 0) (recoil 800) (reload 0) (projectile procket)) (2 (spinup 0) (recoil 800) (reload 0) (projectile pcluster-grenade-rocket)) (3 (spinup 0) (recoil 0) (reload 200) (projectile ppogo)) ) ) (lightninggun (model WP_LIGHTNING) (ortho false) (attribute 0) (ability 0) (view 0) (modes (1 (spinup 0) (recoil 50) (reload 0) (projectile plightning)) (2 (spinup 0) (recoil 0) (reload 400) (projectile pgren-turret:drop)) (3 (spinup 0) (recoil 0) (reload 1000) (projectile pgren-proximity:rain)) ) ) (railgun (model WP_RAILGUN) (ortho false) (attribute 0) (ability 0) (view 0) (modes ; (1 (spinup 0) (recoil 750) (reload 1500) (projectile prailslug)) (1 (spinup 0) (recoil 750) (reload 1500) (projectile prailslug)) (2 (spinup 0) (recoil 750) (reload 750) (projectile prailsnail)) (3 (spinup -2000) (recoil 500) (reload 0) (projectile prailslug)) ) ) (plasmagun (model WP_PLASMAGUN) (ortho false) (attribute 0) (ability 0) (view 0) (modes (1 (spinup 0) (recoil 100) (reload 0) (projectile pplasma)) (2 ()) (3 (spinup 0) (recoil 400) (reload 0) (projectile pgren-magnotron:drop)) ) ) (bfg10k (model WP_BFG) (ortho false) (attribute 0) (ability 0) (view 0) (modes (1 (spinup 0) (recoil 200) (reload 0) (projectile pbfg)) (2 (spinup 0) (recoil 400) (reload 0) (projectile procket-homing)) (3 (spinup 0) (recoil 400) (reload 0) (projectile procket-relentless)) ) ) ;;hrm... (grapplinghook (model WP_GRAPPLING_HOOK) (ortho false) (attribute 0) (ability AB_HOOK) (view 0) (modes (1 (spinup 0) (recoil 0) (reload -200) (projectile hook)) (2 ()) (3 (spinup 0) (recoil 0) (reload -200) (projectile pjet)) ) ) ;;hrm... ; (jet ; (ortho false) ; (attribute 0) ; (ability AB_JET) ; (view 0) ; (modes ; (1 ()) ; (2 ()) ; ) ; ) ) ) (define classes '( (Spectator (model "orbb") (health 0) (armor 0) (speed 300) (attribute 0) (ability 0) (view VIEW_NAME VIEW_TRUE VIEW_HEALTH VIEW_ARMOR) (arsenal 0) (ammo 0) ) (Recon (model "slash") (health 100) (armor 100) (speed 270) (attribute 0) (ability AB_DECOY AB_HOOK AB_JET) (view VIEW_NAME VIEW_TRUE) (arsenal gauntlet machinegun) (ammo 0 0 0 0 0 0 0 0 0) ) (Medic (model "hunter") (health 100) (armor 100) (speed 270) (attribute ATTR_AUTODOC ATTR_BIOSPHERE ATTR_NOACID ATTR_NOHEADHOST) (ability AB_DECOY AB_DEPOT_MEDICAL) (view VIEW_NAME VIEW_HEALTH) (arsenal gauntlet machinegun shotgun) (ammo 0 0 0 0 0 0 0 0 0) ) (Engineer (model "sarge") (health 100) (armor 125) (speed 270) (attribute 0) (ability AB_DECOY AB_DEPOT_SUPPLY AB_HOOK AB_ALARM AB_SENTRY) (view VIEW_NAME VIEW_ARMOR) (arsenal gauntlet machinegun shotgun) (ammo 0 0 0 0 0 0 0 0 0) ) (Marine (model "ranger") (health 100) (armor 150) (speed 270) (attribute ATTR_ARMOR2) (ability AB_DECOY AB_HOOK) (view VIEW_NAME) (arsenal gauntlet machinegun rocketlauncher) (ammo 0 0 0 0 0 0 0 0 0) ) (Cyborg (model "tankjr") (health 100) (armor 225) (speed 270) (attribute ATTR_ARMOR2) (ability AB_DECOY AB_PLASMABOMB) (view VIEW_NAME) (arsenal gauntlet machinegun grenadelauncher lightning) (ammo 0 0 0 0 0 0 0 0 0) ) (Arsonist (model "visor") (health 100) (armor 175) (speed 270) (attribute ATTR_NOFIRE) (ability AB_DECOY) (view VIEW_NAME) (arsenal gauntlet machinegun plasmagun) (ammo 0 0 0 0 0 0 0 0 0) ) (Gunner (model "major") (health 100) (armor 225) (speed 270) (attribute 0) (ability AB_DECOY AB_ALARM AB_LASER) (view VIEW_NAME) (arsenal gauntlet machinegun bfg10k) (ammo 0 0 0 0 0 0 0 0 0) ) (Sniper (model "bitterman") (health 100) (armor 125) (speed 270) (attribute 0) (ability AB_DECOY) (view VIEW_NAME) (arsenal gauntlet machinegun railgun) (ammo 0 0 0 0 0 0 0 0 0) ) (Assassin (model "razor") (health 100) (armor 100) (speed 270) (attribute 0) (ability AB_DECOY AB_CLOAK AB_DISGUISE AB_CAMERA) (view VIEW_NAME) (arsenal gauntlet machinegun) (ammo 0 0 0 0 0 0 0 0 0) ) (Mercenary (model "xaero") (health 100) (armor 150) (speed 270) (attribute 0) (ability AB_DECOY) (view VIEW_NAME) (arsenal gauntlet rocketlauncher) (ammo 0 0 0 0 0 0 0 0 0) ) ) ) ;Charged railgun. Limited from 0ms to 2000ms charge, damage from 0 to 125. ;damage = time * 125 / 2000 (define (railgun:3 chargetime) (if (> chargetime 2000) (set! chargetime 2000)) `(damage ,(/ (* chargetime 125) 2000))) (define (DSNI chargetime) (if (> chargetime 2000) (set! chargetime 2000)) `(damage ,(/ (* chargetime 125) 2000))) ;data end