//------------------------------------------------ // SDK Example Content // Slimy Lobber // // Compare the entries in this def file to those of the monster_slimy_transfer // (def/ai/monster_slimy_transfer.def) as an example of how to implement new // monsters and monster attacks using only existing AI code. // // aweldon Nov 05 //------------------------------------------------ model model_monster_slimy_lobber { inherit model_monster_slimy_transfer // Use Slimy Transfer mesh and anims as base. // Lobbing anim ----------------------------------------------------------------------------------------- anim lob models/monsters/slimy_transfer/attack01.md5anim // Use existing melee anim { frame 1,13,27,36,57 sound snd_flesh // Use pre-existing sounds frame 19 ai_attack melee r_wrist // Throw at appropriate frame frame 19 fx fx_lob r_wrist } } entityDef damage_lobber_grenade { // These values are copied from the monster_gunner .def file and seem to work ok. "inherit" "damage_monster_base" "knockback" "0" "damage" "60" "push" "10000" "tv_scale" "0.7" "tv_time" "4200" } entityDef damage_lobber_grenade_splash { // These values are copied from the monster_gunner .def file and seem to work ok. "inherit" "damage_monster_base" "knockback" "0" "damage" "80" "radius" "200" "push" "10000" "tv_scale" "0.7" "tv_time" "4200" } entityDef projectile_lobber_bit { "inherit" "projectile_gunner_grenade" // inherit defaults from the Gunner grenade "fuse" "3" //shorten the fuse "detonate_on_actor" "1" // Explode when hitting directly "model" "models/gibs/head_pork.lwo" // New 'grenade' model (brraaaaaaainnnnns...) "fx_fly" "effects/impact/impact_flesh.fx" // When flying, play the impact effect. Admittedly not the best effect for this purpose. "fx_detonate" "effects/monsters/gib.fx" // Use the splatty gib effect for 'explosions' "fx_impact" "effects/monsters/gib.fx" // Use the splatty gib effect for 'explosions' "def_splash_damage" "damage_lobber_grenade_splash" // Use damage def specified above "def_damage" "damage_lobber_grenade" // Use damage def specified above "speed" "500" // Adjust speed "angular_velocity" "0 -900 200" // Give a nudge up and towards center. "bounce" "15" // Make with the bouncing "contact_friction" "1" // Reduced friction for better bounce behavior "delay_splash" "0" // Splash damage effects are instantaneous "snd_ricochet" "failedtransfer_flesh" // Fleshy sound on bounce } // New EntityDef entityDef monster_slimy_lobber { "inherit" "monster_slimy_transfer" // Inherit from the Slimy Transfer // --------------------------------- Actions ------------------------------------ "action_meleeAttack" "1" // Leave this enabled, we'll replace it with our lobbing attack "action_meleeAttack_anim" "lob" // 'New' anim on melee attack "action_meleeAttack_minrange" "80" // Minimum distance (in units) for attack. "action_meleeAttack_maxrange" "512" // Maximum distance (in units) for attack. "action_meleeAttack_blendFrames" "6" // Blend frames on attack "action_meleeAttack_rate" ".5" // Rate of attack "action_vomitAttack" "1" // Keep the vomit attack enabled "action_vomitAttack_minrange" "0" // Minimum distance (in units) for attack. "action_vomitAttack_maxrange" "128" // Maximum distance (in units) for attack. // --------------------------------- Body ------------------------------------ "model" "model_monster_slimy_lobber" // Use our new ModelDef from above // --------------------------------- Combat ---------------------------------- "health" "75" // Beef these guys up a bit "painThreshold" "40" // Can take more damage before playing pain anims "def_attack_melee" "projectile_lobber_bit" // Change melee attack to our new projectile "fx_lob" "effects/impact/impact_flesh.fx" // Effect to play when lobbing (added on frame commands above) }