Compare commits
42 commits
Author | SHA1 | Date | |
---|---|---|---|
8fdf536f50 | |||
e4367dfae8 | |||
d7001178df | |||
4dd99b21c5 | |||
0405598a0b | |||
b0b370c9e1 | |||
fcc78e5ad3 | |||
a7f8f6db8c | |||
d1950055f8 | |||
90f3494b06 | |||
eb8940f9b9 | |||
eb4bda6d55 | |||
12456174db | |||
cfebb870a2 | |||
3924d63fcc | |||
d3e22907b5 | |||
6bfda4d419 | |||
f56b72d9b0 | |||
25727015d7 | |||
22d2c4b36b | |||
cc74146a59 | |||
01923a51af | |||
e04510fa50 | |||
bac98f2f4e | |||
3dea668df8 | |||
7dea893064 | |||
d6aab4b1be | |||
aaf15ea8cf | |||
844f53d648 | |||
e9c0ab3fc8 | |||
4cf759db42 | |||
b983d70cb4 | |||
35bbae956b | |||
4dba3af403 | |||
ed877bf2bb | |||
34d7d48967 | |||
3906dadddc | |||
f52e61dbd0 | |||
9027d19fa7 | |||
c2e9c9007b | |||
5a1728cf84 | |||
2b300e45b0 |
1809 changed files with 17088 additions and 10563 deletions
BIN
.dir.tiff
Normal file
BIN
.dir.tiff
Normal file
Binary file not shown.
49
.forgejo/workflows/pk4.yaml
Normal file
49
.forgejo/workflows/pk4.yaml
Normal file
|
@ -0,0 +1,49 @@
|
|||
name: pk4
|
||||
|
||||
on: [ push, pull_request, workflow_dispatch ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: docker
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
repository: vera/nuclide
|
||||
ref: Develop
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
ref: Develop
|
||||
path: "./${{ github.event.repository.name }}"
|
||||
|
||||
- name: apt install zip
|
||||
run: |
|
||||
apt update
|
||||
apt install -y \
|
||||
zip
|
||||
|
||||
- name: assemble pk4
|
||||
run: make dist-pak NAME=bin GAME=${{ github.event.repository.name }}
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: build-log
|
||||
path: ./build/bin-content.log
|
||||
|
||||
- uses: actions/forgejo-release@v2
|
||||
with:
|
||||
url: https://code.idtech.space
|
||||
repo: "${{ github.repository }}"
|
||||
tag: "${{ github.run_id }}"
|
||||
sha: "${{ github.sha }}"
|
||||
direction: upload
|
||||
release-dir: ./build/bin-content/${{ github.event.repository.name }}/
|
||||
token: ${{ secrets.TOKEN }}
|
||||
title: "Development Build"
|
||||
release-notes: "Auto-generated development build, override ${{ github.event.repository.name }}/package_${{ github.event.repository.name }}.pk4."
|
||||
prerelease: true
|
||||
override: ${{ vars.OVERRIDE || "false" }}
|
||||
release-notes-assistant: true
|
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
*.dat
|
||||
*.lno
|
||||
*.bsp
|
||||
*.mdl
|
|
@ -1,6 +1,6 @@
|
|||
ISC License
|
||||
|
||||
Copyright (c) 2016-2021, Marco "eukara" Hladik <marco@icculus.org>
|
||||
Copyright (c) 2016-2025, Marco "eukara" Hladik <marco@icculus.org>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
8
PAK_COPYRIGHT
Normal file
8
PAK_COPYRIGHT
Normal file
|
@ -0,0 +1,8 @@
|
|||
! This archive is part of the Rad-Therapy project !
|
||||
|
||||
Dedicated to all those curious, those who love to tinker, those who
|
||||
grew up on the same maps, mods and worlds... This is for you all!
|
||||
|
||||
All contents of this archive are put under the ISC license.
|
||||
|
||||
Do what you want, but give credit. No warranties.
|
1
PAK_NAME
Normal file
1
PAK_NAME
Normal file
|
@ -0,0 +1 @@
|
|||
package_valve.pk4
|
1
PLUGINS
Normal file
1
PLUGINS
Normal file
|
@ -0,0 +1 @@
|
|||
ffmpeg
|
1
PROJECT
Normal file
1
PROJECT
Normal file
|
@ -0,0 +1 @@
|
|||
RadTherapy
|
39
README.md
39
README.md
|
@ -1,39 +1,38 @@
|
|||
# FreeHL
|
||||
Clean-room reimplementation of Half-Life: Deathmatch and Half-Life (Experimental, this means Singleplayer is NOT complete).
|
||||
#  Rad-Therapy
|
||||
|
||||
Similar to FreeCS, this aims to recreate the feeling of the original game.
|
||||
It's designed to work with the content from the CD version of the game.
|
||||
Currently I do not aim to support the Steam version.
|
||||
|
||||
Netplay improvements, such as prediction of both player physics and weapon-logic
|
||||
are present.
|
||||
|
||||
This is 100% original code, feel free to audit however you wish.
|
||||
No proprietary SDKs have been looked at or taken apart, unlike similar projects.
|
||||
This is a port of the 1998 game 'Half-Life' to Quake(World). Powered by Nuclide and the [FTE Engine](https://www.fteqw.org/).
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Installing
|
||||
To run it, all you need is [FTEQW](https://www.fteqw.org) and [the latest release .pk3 file](https://www.frag-net.com/pkgs/package_valve.pk3), which you save into `Half-Life/valve/`. That's about it. You can install updates through the **Configuration > Updates** menu.
|
||||
## Installing/Running
|
||||
|
||||
## Building
|
||||
Clone the repository into the Nuclide-SDK and build it:
|
||||
To run it, all you need is [FTE](https://www.fteqw.org) and [the latest release .pk3 file](https://www.frag-net.com/pkgs/package_valve.pk3), which you save into `Half-Life/valve/`.
|
||||
|
||||
**That's about it.**
|
||||
|
||||
You can install updates through the **Configuration > Updates** menu.
|
||||
|
||||
As this is Quake, there is no native game code. This is CPU architecture independent.
|
||||
You only need to build from source if you plan on making changes.
|
||||
|
||||
## Building from Source
|
||||
|
||||
Clone the repository into the [Nuclide-SDK](https://code.idtech.space/vera/nuclide) and build it like so:
|
||||
|
||||
```
|
||||
$ cd nuclide
|
||||
$ git clone https://code.idtech.space/fn/valve valve
|
||||
$ SKIP_UPDATE=1 SKIP_RADIANT=1 ./build_game.sh valve
|
||||
$ make game GAME=valve
|
||||
```
|
||||
|
||||
You can also issue `make` inside `valve/src/`, but it won't build an `entities.def` file for use in Radiant (level editor family).
|
||||
|
||||
## Notes
|
||||
|
||||
The engine should automatically detect Half-Life when placed within the game directory, however you may need to pass `-halflife` just in case you have one massive directory with multiple FTE-supported games in it for example.
|
||||
|
||||
You can also launch mods like this: `fteqw -halflife -game cstrike`
|
||||
Useful for development, so you don't always have to use the **Custom Game** menu.
|
||||
|
||||
## Community
|
||||
|
||||
|
@ -59,7 +58,7 @@ We've had people ask in the oddest of places for help, please don't do that.
|
|||
## License
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2016-2024 Marco Hladik <marco@icculus.org>
|
||||
Copyright (c) 2016-2025 Marco "eukara" Cawthorne <marco@icculus.org>
|
||||
|
||||
Permission to use, copy, modify, and distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
|
|
1
cfg/skill_manifest.cfg
Normal file
1
cfg/skill_manifest.cfg
Normal file
|
@ -0,0 +1 @@
|
|||
exec "skill_valve.cfg"
|
|
@ -196,12 +196,9 @@ set sk_plr_buckshot3 "5"
|
|||
set sk_plr_crowbar1 "10"
|
||||
set sk_plr_crowbar2 "10"
|
||||
set sk_plr_crowbar3 "10"
|
||||
set sk_plr_egon_narrow1 "6"
|
||||
set sk_plr_egon_narrow2 "6"
|
||||
set sk_plr_egon_narrow3 "6"
|
||||
set sk_plr_egon_wide1 "14"
|
||||
set sk_plr_egon_wide2 "14"
|
||||
set sk_plr_egon_wide3 "14"
|
||||
set sk_plr_egon1 "6"
|
||||
set sk_plr_egon2 "6"
|
||||
set sk_plr_egon3 "6"
|
||||
set sk_plr_gauss1 "20"
|
||||
set sk_plr_gauss2 "20"
|
||||
set sk_plr_gauss3 "20"
|
7
coop.config
Normal file
7
coop.config
Normal file
|
@ -0,0 +1,7 @@
|
|||
g_gametype singleplayer
|
||||
fraglimit 0
|
||||
timelimit 20
|
||||
coop 1
|
||||
sv_playerslots 16
|
||||
sv_pure 1
|
||||
map c1a0
|
6
deathmatch.config
Normal file
6
deathmatch.config
Normal file
|
@ -0,0 +1,6 @@
|
|||
g_gametype deathmatch
|
||||
fraglimit 0
|
||||
timelimit 20
|
||||
sv_playerslots 16
|
||||
sv_pure 1
|
||||
map_restart 0
|
59
decls/def/ammo.def
Normal file
59
decls/def/ammo.def
Normal file
|
@ -0,0 +1,59 @@
|
|||
#include "ammo/base.def"
|
||||
#include "ammo/buckshot.def"
|
||||
#include "ammo/357.def"
|
||||
#include "ammo/9mmAR.def"
|
||||
#include "ammo/9mmbox.def"
|
||||
#include "ammo/rpgclip.def"
|
||||
#include "ammo/ARgrenades.def"
|
||||
#include "ammo/9mmclip.def"
|
||||
#include "ammo/crossbow.def"
|
||||
#include "ammo/gaussclip.def"
|
||||
|
||||
// these have to be defined by the game.
|
||||
entityDef ammo_types {
|
||||
"ammo_none" "0"
|
||||
"ammo_9mm" "1"
|
||||
"ammo_357" "2"
|
||||
"ammo_buckshot" "3"
|
||||
"ammo_bolt" "4"
|
||||
"ammo_rocket" "5"
|
||||
"ammo_uranium" "6"
|
||||
"ammo_handgrenade" "7"
|
||||
"ammo_satchel" "8"
|
||||
"ammo_tripmine" "9"
|
||||
"ammo_snark" "10"
|
||||
"ammo_hornet" "11"
|
||||
"ammo_m203_grenade" "12"
|
||||
}
|
||||
|
||||
entityDef ammo_names {
|
||||
"ammo_none" "None"
|
||||
"ammo_9mm" "9mm Bullets"
|
||||
"ammo_357" ".357 Bullets"
|
||||
"ammo_buckshot" "Buckshot Shells"
|
||||
"ammo_bolt" "Bolts"
|
||||
"ammo_rocket" "Rockets"
|
||||
"ammo_uranium" "Uranium"
|
||||
"ammo_handgrenade" "Hand Grenades"
|
||||
"ammo_satchel" "Satchel Charge"
|
||||
"ammo_tripmine" "Tripmines"
|
||||
"ammo_snark" "Squeak Grenades"
|
||||
"ammo_hornet" "Hornets"
|
||||
"ammo_m203_grenade" "M203 Grenades"
|
||||
}
|
||||
|
||||
entityDef ammo_max {
|
||||
"ammo_none" "0"
|
||||
"ammo_9mm" "250"
|
||||
"ammo_357" "36"
|
||||
"ammo_buckshot" "125"
|
||||
"ammo_bolt" "50"
|
||||
"ammo_rocket" "5"
|
||||
"ammo_uranium" "100"
|
||||
"ammo_handgrenade" "10"
|
||||
"ammo_satchel" "5"
|
||||
"ammo_tripmine" "10"
|
||||
"ammo_snark" "10"
|
||||
"ammo_hornet" "8"
|
||||
"ammo_m203_grenade" "10"
|
||||
}
|
6
decls/def/ammo/357.def
Normal file
6
decls/def/ammo/357.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
entityDef ammo_357
|
||||
{
|
||||
"inherit" "ammo_base"
|
||||
"model" "models/w_357ammobox.mdl"
|
||||
"inv_ammo_357" "6"
|
||||
}
|
6
decls/def/ammo/9mmAR.def
Normal file
6
decls/def/ammo/9mmAR.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
entityDef ammo_9mmAR
|
||||
{
|
||||
"inherit" "ammo_base"
|
||||
"model" "models/w_9mmarclip.mdl"
|
||||
"inv_ammo_9mm" "50"
|
||||
}
|
6
decls/def/ammo/9mmbox.def
Normal file
6
decls/def/ammo/9mmbox.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
entityDef ammo_9mmbox
|
||||
{
|
||||
"inherit" "ammo_base"
|
||||
"model" "models/w_chainammo.mdl"
|
||||
"inv_ammo_9mm" "200"
|
||||
}
|
6
decls/def/ammo/9mmclip.def
Normal file
6
decls/def/ammo/9mmclip.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
entityDef ammo_9mmclip
|
||||
{
|
||||
"inherit" "ammo_base"
|
||||
"model" "models/w_9mmclip.mdl"
|
||||
"inv_ammo_9mm" "17"
|
||||
}
|
6
decls/def/ammo/ARgrenades.def
Normal file
6
decls/def/ammo/ARgrenades.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
entityDef ammo_ARgrenades
|
||||
{
|
||||
"inherit" "ammo_base"
|
||||
"model" "models/w_argrenade.mdl"
|
||||
"inv_ammo_m203_grenade" "2"
|
||||
}
|
8
decls/def/ammo/base.def
Normal file
8
decls/def/ammo/base.def
Normal file
|
@ -0,0 +1,8 @@
|
|||
entityDef ammo_base
|
||||
{
|
||||
"spawnclass" "ncItem"
|
||||
"snd_acquire" "ammo.pickup"
|
||||
"snd_respawn" "ammo.respawn"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
}
|
6
decls/def/ammo/buckshot.def
Normal file
6
decls/def/ammo/buckshot.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
entityDef ammo_buckshot
|
||||
{
|
||||
"inherit" "ammo_base"
|
||||
"model" "models/w_shotbox.mdl"
|
||||
"inv_ammo_buckshot" "12"
|
||||
}
|
6
decls/def/ammo/crossbow.def
Normal file
6
decls/def/ammo/crossbow.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
entityDef ammo_crossbow
|
||||
{
|
||||
"inherit" "ammo_base"
|
||||
"model" "models/w_crossbow_clip.mdl"
|
||||
"inv_ammo_bolt" "5"
|
||||
}
|
6
decls/def/ammo/gaussclip.def
Normal file
6
decls/def/ammo/gaussclip.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
entityDef ammo_gaussclip
|
||||
{
|
||||
"inherit" "ammo_base"
|
||||
"model" "models/w_gaussammo.mdl"
|
||||
"inv_ammo_uranium" "20"
|
||||
}
|
6
decls/def/ammo/rpgclip.def
Normal file
6
decls/def/ammo/rpgclip.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
entityDef ammo_rpgclip
|
||||
{
|
||||
"inherit" "ammo_base"
|
||||
"model" "models/w_rpgammo.mdl"
|
||||
"inv_ammo_rocket" "1"
|
||||
}
|
7
decls/def/items.def
Normal file
7
decls/def/items.def
Normal file
|
@ -0,0 +1,7 @@
|
|||
#include "items/suit.def"
|
||||
#include "items/airtank.def"
|
||||
#include "items/antidote.def"
|
||||
#include "items/battery.def"
|
||||
#include "items/healthkit.def"
|
||||
#include "items/longjump.def"
|
||||
#include "items/security.def"
|
10
decls/def/items/airtank.def
Normal file
10
decls/def/items/airtank.def
Normal file
|
@ -0,0 +1,10 @@
|
|||
entityDef item_airtank
|
||||
{
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_oxygen.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"snd_acquire" "item.airtank"
|
||||
"snd_respawn" "item.respawn"
|
||||
"requires" "item_suit"
|
||||
}
|
11
decls/def/items/antidote.def
Normal file
11
decls/def/items/antidote.def
Normal file
|
@ -0,0 +1,11 @@
|
|||
entityDef item_antidote
|
||||
{
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_antidote.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"snd_acquire" "item.antidote"
|
||||
"snd_respawn" "item.respawn"
|
||||
"requires" "item_suit"
|
||||
"inv_carry" "1"
|
||||
}
|
11
decls/def/items/battery.def
Normal file
11
decls/def/items/battery.def
Normal file
|
@ -0,0 +1,11 @@
|
|||
entityDef item_battery
|
||||
{
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_battery.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"snd_acquire" "item.battery"
|
||||
"snd_respawn" "item.respawn"
|
||||
"inv_armor" "skill:battery"
|
||||
"requires" "item_suit"
|
||||
}
|
11
decls/def/items/healthkit.def
Normal file
11
decls/def/items/healthkit.def
Normal file
|
@ -0,0 +1,11 @@
|
|||
entityDef item_healthkit
|
||||
{
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_medkit.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"snd_acquire" "item.healthkit"
|
||||
"snd_respawn" "item.respawn"
|
||||
"inv_health" "skill:healthkit"
|
||||
"droptofloor" "1"
|
||||
}
|
11
decls/def/items/longjump.def
Normal file
11
decls/def/items/longjump.def
Normal file
|
@ -0,0 +1,11 @@
|
|||
entityDef item_longjump
|
||||
{
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_longjump.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"snd_acquire" "item.longjump"
|
||||
"snd_respawn" "item.respawn"
|
||||
"requires" "item_suit"
|
||||
"inv_carry" "1"
|
||||
}
|
10
decls/def/items/security.def
Normal file
10
decls/def/items/security.def
Normal file
|
@ -0,0 +1,10 @@
|
|||
entityDef item_security
|
||||
{
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_security.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"snd_acquire" "item.security"
|
||||
"snd_respawn" "item.respawn"
|
||||
"inv_carry" "1"
|
||||
}
|
10
decls/def/items/suit.def
Normal file
10
decls/def/items/suit.def
Normal file
|
@ -0,0 +1,10 @@
|
|||
entityDef item_suit
|
||||
{
|
||||
"spawnclass" "HLSuit"
|
||||
"model" "models/w_suit.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"snd_acquire" "item.suit"
|
||||
"snd_respawn" "item.respawn"
|
||||
"inv_carry" "1"
|
||||
}
|
54
decls/def/monsters.def
Normal file
54
decls/def/monsters.def
Normal file
|
@ -0,0 +1,54 @@
|
|||
#include "monsters/alien_controller.def"
|
||||
#include "monsters/alien_grunt.def"
|
||||
#include "monsters/alien_slave.def"
|
||||
#include "monsters/apache.def"
|
||||
#include "monsters/archerfish.def"
|
||||
#include "monsters/babycrab.def"
|
||||
#include "monsters/barnacle.def"
|
||||
#include "monsters/barney.def"
|
||||
#include "monsters/barney_dead.def"
|
||||
#include "monsters/bigmomma.def"
|
||||
#include "monsters/bloater.def"
|
||||
#include "monsters/bullchicken.def"
|
||||
#include "monsters/charger.def"
|
||||
#include "monsters/chumtoad.def"
|
||||
#include "monsters/cockroach.def"
|
||||
#include "monsters/flyer_flock.def"
|
||||
#include "monsters/gargantua.def"
|
||||
#include "monsters/gman.def"
|
||||
#include "monsters/headcrab.def"
|
||||
#include "monsters/hevsuit_dead.def"
|
||||
#include "monsters/hgrunt_dead.def"
|
||||
#include "monsters/houndeye.def"
|
||||
#include "monsters/human_assassin.def"
|
||||
#include "monsters/human_assault.def"
|
||||
#include "monsters/human_grunt.def"
|
||||
#include "monsters/ichthyosaur.def"
|
||||
#include "monsters/kingpin.def"
|
||||
#include "monsters/leech.def"
|
||||
#include "monsters/miniturret.def"
|
||||
#include "monsters/mrfriendly.def"
|
||||
#include "monsters/nihilanth.def"
|
||||
#include "monsters/osprey.def"
|
||||
#include "monsters/panther.def"
|
||||
#include "monsters/rat.def"
|
||||
#include "monsters/scientist.def"
|
||||
#include "monsters/scientist_dead.def"
|
||||
#include "monsters/sentry.def"
|
||||
#include "monsters/sitting_scientist.def"
|
||||
#include "monsters/skeleton_dead.def"
|
||||
#include "monsters/snapbug.def"
|
||||
#include "monsters/snark.def"
|
||||
#include "monsters/sphere.def"
|
||||
#include "monsters/stukabat.def"
|
||||
#include "monsters/tentacle.def"
|
||||
#include "monsters/tentaclemaw.def"
|
||||
#include "monsters/tripmine.def"
|
||||
#include "monsters/turret.def"
|
||||
#include "monsters/xen_hair.def"
|
||||
#include "monsters/xen_plantlight.def"
|
||||
#include "monsters/xen_spore_large.def"
|
||||
#include "monsters/xen_spore_medium.def"
|
||||
#include "monsters/xen_spore_small.def"
|
||||
#include "monsters/xen_tree.def"
|
||||
#include "monsters/zombie.def"
|
51
decls/def/monsters/alien_controller.def
Normal file
51
decls/def/monsters/alien_controller.def
Normal file
|
@ -0,0 +1,51 @@
|
|||
entityDef monster_alien_controller
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/controller.mdl"
|
||||
"netname" "Alien Controller"
|
||||
"health" "skill:controller_health"
|
||||
"mins" "-32 -32 0"
|
||||
"maxs" "32 32 64"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
|
||||
"speed_walk" "100"
|
||||
"speed_run" "500"
|
||||
"flying" "1"
|
||||
"fly_offset" "128"
|
||||
"attack_ranged_range" "1024"
|
||||
|
||||
"snd_alert" "Controller.Alert"
|
||||
"snd_idle" "Controller.Idle"
|
||||
"snd_die" "Controller.Die"
|
||||
"snd_pain" "Controller.Pain"
|
||||
|
||||
events {
|
||||
// ranged attack
|
||||
2 "SpawnProjectileOffset" "ranged_controller_ball 0 0 36"
|
||||
3 "StartSoundDef" "Controller.Attack"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
entityDef ranged_controller_ball
|
||||
{
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "sprites/xspark4.spr"
|
||||
"mins" "-16 -16 -16"
|
||||
"mins" "16 16 16"
|
||||
|
||||
"def_damage" "damage_spitDirect"
|
||||
|
||||
"health" "0"
|
||||
"velocity" "900"
|
||||
"fuse" "10"
|
||||
"detonate_on_fuse" "0"
|
||||
"detonate_on_death" "0"
|
||||
"detonate_on_world" "1"
|
||||
"detonate_on_actor" "1"
|
||||
"impact_damage_effect" "1"
|
||||
"impact_gib" "0"
|
||||
"trackEnemy" "1"
|
||||
}
|
99
decls/def/monsters/alien_grunt.def
Normal file
99
decls/def/monsters/alien_grunt.def
Normal file
|
@ -0,0 +1,99 @@
|
|||
entityDef monster_alien_grunt
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/agrunt.mdl"
|
||||
"netname" "Alien Grunt"
|
||||
"health" "skill:agrunt_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"speed_walk" "46"
|
||||
"speed_run" "292"
|
||||
|
||||
"def_attack_melee" "melee_agrunt_punch"
|
||||
"attack_melee_range" "96"
|
||||
"attack_ranged_range" "512"
|
||||
|
||||
"snd_alert" "AlienGrunt.Alert
|
||||
"snd_idle" "AlienGrunt.Idle"
|
||||
"snd_pain" "AlienGrunt.Pain"
|
||||
"snd_death" "AlienGrunt.Pain"
|
||||
"snd_melee_attack" "AlienGrunt.Attack"
|
||||
"snd_melee_attack_hit" "AlienGrunt.AttackHit"
|
||||
"snd_melee_attack_miss" "AlienGrunt.AttackMiss"
|
||||
|
||||
// animation event callbacks
|
||||
events {
|
||||
1 "SpawnProjectileDef" "ranged_agrunt_shot_orange"
|
||||
1 "StartSoundDef" "AlienGrunt.FireGun"
|
||||
|
||||
2 "SpawnProjectileDef" "ranged_agrunt_shot_red"
|
||||
2 "StartSoundDef" "AlienGrunt.FireGun"
|
||||
|
||||
3 "SpawnProjectileDef" "ranged_agrunt_shot_orange"
|
||||
3 "StartSoundDef" "AlienGrunt.FireGun"
|
||||
|
||||
4 "SpawnProjectileDef" "ranged_agrunt_shot_red"
|
||||
4 "StartSoundDef" "AlienGrunt.FireGun"
|
||||
|
||||
5 "SpawnProjectileDef" "ranged_agrunt_shot_orange"
|
||||
5 "StartSoundDef" "AlienGrunt.FireGun"
|
||||
|
||||
10 "StartSoundDef" "AlienGrunt.LeftFoot"
|
||||
11 "StartSoundDef" "AlienGrunt.RightFoot"
|
||||
}
|
||||
}
|
||||
|
||||
entityDef melee_agrunt_punch
|
||||
{
|
||||
"damage" "skill:agrunt_dmg_punch"
|
||||
"delay" "0.25f"
|
||||
}
|
||||
|
||||
|
||||
entityDef ranged_agrunt_shot_red
|
||||
{
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "models/hornet.mdl"
|
||||
|
||||
"def_damage" "damage_hornetDirect"
|
||||
"health" "0"
|
||||
"velocity" "600"
|
||||
"fuse" "10"
|
||||
"detonate_on_fuse" "1"
|
||||
"detonate_on_death" "0"
|
||||
"detonate_on_world" "0"
|
||||
"detonate_on_actor" "1"
|
||||
"impact_damage_effect" "1"
|
||||
"impact_gib" "0"
|
||||
"smoke_fly" "weapon_hornet.red_trail"
|
||||
}
|
||||
|
||||
|
||||
entityDef ranged_agrunt_shot_orange
|
||||
{
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "models/hornet.mdl"
|
||||
|
||||
"def_damage" "damage_hornetDirect"
|
||||
"health" "0"
|
||||
"velocity" "800"
|
||||
"fuse" "10"
|
||||
"detonate_on_fuse" "1"
|
||||
"detonate_on_death" "0"
|
||||
"detonate_on_world" "0"
|
||||
"detonate_on_actor" "1"
|
||||
"impact_damage_effect" "1"
|
||||
"impact_gib" "0"
|
||||
"smoke_fly" "weapon_hornet.trail"
|
||||
"trackEnemy" "1"
|
||||
"trackJitter" "8 16 16"
|
||||
"trackDelay" "0.1"
|
||||
}
|
||||
|
||||
entityDef damage_hornetDirect
|
||||
{
|
||||
damage "skill:hornet_dmg"
|
||||
}
|
108
decls/def/monsters/alien_slave.def
Normal file
108
decls/def/monsters/alien_slave.def
Normal file
|
@ -0,0 +1,108 @@
|
|||
entityDef monster_alien_slave
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/islave.mdl"
|
||||
"netname" "Vortigaunt"
|
||||
"health" "skill:islave_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"speed_walk" "72"
|
||||
"speed_run" "72"
|
||||
|
||||
"def_attack_melee" "melee_islave_claw"
|
||||
"melee_range" "96"
|
||||
"attack_ranged_range" "512"
|
||||
|
||||
"snd_idle" "Vortigaunt.Idle"
|
||||
"snd_pain" "Vortigaunt.Pain"
|
||||
"snd_death" "Vortigaunt.Die"
|
||||
|
||||
// animation event callbacks
|
||||
events {
|
||||
1 "SpawnProjectileDef" "melee_islave_claw"
|
||||
1 "StartSoundDef" "Vortigaunt.AttackMiss"
|
||||
|
||||
2 "SpawnProjectileDef" "melee_islave_claw"
|
||||
2 "StartSoundDef" "Vortigaunt.AttackMiss"
|
||||
|
||||
// beam powerup, both left and right hand
|
||||
3 "SpawnDefAttachment" "islave_beampowerup 0"
|
||||
3 "SpawnDefAttachment" "islave_beampowerup 1"
|
||||
3 "StartSoundDef" "Vortigaunt.ZapPowerup"
|
||||
|
||||
// fire a beam towards the target
|
||||
4 "SpawnDefAttachment" "islave_beamattack 0"
|
||||
4 "SpawnDefAttachment" "islave_beamattack 0"
|
||||
4 "SpawnDefAttachment" "islave_beamattack 1"
|
||||
4 "SpawnDefAttachment" "islave_beamattack 1"
|
||||
4 "SpawnProjectileDef" "ranged_islave_zap"
|
||||
4 "StartSoundDef" "Vortigaunt.ZapShoot"
|
||||
|
||||
// kill anything parented to us
|
||||
5 "KillChildClass" "islave_beampowerup"
|
||||
}
|
||||
}
|
||||
|
||||
entityDef islave_beampowerup
|
||||
{
|
||||
"spawnclass" "env_beam"
|
||||
"texture" "sprites/lgtning.spr"
|
||||
"rendercolor" "96 128 16"
|
||||
"renderamt" "64"
|
||||
"NoiseAmplitude" "80"
|
||||
"life" "3"
|
||||
"Radius" "512"
|
||||
"BoltWidth" "16"
|
||||
"RadiusScale" "0 1 1"
|
||||
"spawnflags" "1"
|
||||
"decal_detonate" "Impact.Shot"
|
||||
}
|
||||
|
||||
entityDef islave_beamattack
|
||||
{
|
||||
"spawnclass" "env_beam"
|
||||
"texture" "sprites/lgtning.spr"
|
||||
"rendercolor" "180 255 96"
|
||||
"renderamt" "255"
|
||||
"NoiseAmplitude" "80"
|
||||
"life" "0.5"
|
||||
"Radius" "512"
|
||||
"BoltWidth" "64"
|
||||
"BeamDir" "512 0 0"
|
||||
"spawnflags" "1"
|
||||
"decal_detonate" "Impact.Shot"
|
||||
}
|
||||
|
||||
|
||||
entityDef damage_islave_zap
|
||||
{
|
||||
"damage" "skill:islave_dmg_zap"
|
||||
}
|
||||
|
||||
entityDef ranged_islave_zap
|
||||
{
|
||||
"spawnclass" "ncProjectile"
|
||||
"mins" "-16 -16 -32"
|
||||
"maxs" "16 16 32"
|
||||
"def_damage" "damage_islave_zap"
|
||||
"health" "0"
|
||||
"velocity" "9000"
|
||||
"fuse" "10"
|
||||
"detonate_on_fuse" "0"
|
||||
"detonate_on_death" "0"
|
||||
"detonate_on_world" "0"
|
||||
"detonate_on_actor" "1"
|
||||
"impact_damage_effect" "1"
|
||||
"impact_gib" "0"
|
||||
}
|
||||
|
||||
entityDef melee_islave_claw
|
||||
{
|
||||
"damage" "skill:islave_dmg_claw"
|
||||
"delay" "0.25f"
|
||||
"wait" "0.5"
|
||||
"attempts" "2"
|
||||
}
|
32
decls/def/monsters/apache.def
Normal file
32
decls/def/monsters/apache.def
Normal file
|
@ -0,0 +1,32 @@
|
|||
entityDef monster_apache
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/apache.mdl"
|
||||
"netname" "Apache"
|
||||
"health" "0"
|
||||
"mins" "-32 -32 0"
|
||||
"maxs" "32 32 64"
|
||||
"eye_height" "0"
|
||||
"team" "2"
|
||||
"propdata" "actor_robot"
|
||||
|
||||
"speed_walk" "200"
|
||||
"speed_run" "200"
|
||||
"flying" "1"
|
||||
"fly_offset" "768"
|
||||
|
||||
"snd_fly" "Apache.Rotor"
|
||||
// Apache.RotorSpinup
|
||||
// Apache.RPG
|
||||
// ApacheHVR.Ignite
|
||||
|
||||
// primary ranged attack
|
||||
"def_attack_ranged" "ranged_hgrunt_mp5"
|
||||
"snd_ranged_attack" "Apache.FireGun"
|
||||
"attack_ranged_range" "2048"
|
||||
|
||||
// special attack
|
||||
"def_attack_special_1" "projectile_rocket"
|
||||
"attack_special_range" "1024"
|
||||
"projectile_delay" "1.0"
|
||||
}
|
17
decls/def/monsters/archerfish.def
Normal file
17
decls/def/monsters/archerfish.def
Normal file
|
@ -0,0 +1,17 @@
|
|||
entityDef monster_archerfish
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/archer.mdl"
|
||||
"netname" "Archer Fish"
|
||||
"health" "10"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"eye_height" "32"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"flying" "1"
|
||||
"fly_offset" "32"
|
||||
|
||||
"speed_walk" "25" // These values are
|
||||
"speed_run" "50" // purely speculative
|
||||
}
|
22
decls/def/monsters/babycrab.def
Normal file
22
decls/def/monsters/babycrab.def
Normal file
|
@ -0,0 +1,22 @@
|
|||
entityDef monster_babycrab
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"inherit" "monster_headcrab"
|
||||
"model" "models/baby_headcrab.mdl"
|
||||
"health" "skill:babycrab_health"
|
||||
"leap_damage" "skill:babycrab_dmg_bite"
|
||||
|
||||
"snd_idle" "Babycrab.Idle"
|
||||
"snd_pain" "Babycrab.Pain"
|
||||
"snd_death" "Babycrab.Die"
|
||||
"snd_melee_attack_hit" "Babycrab.Bite"
|
||||
|
||||
events {
|
||||
jump "AddVelocity" "512 0 250"
|
||||
jump "StartSoundDef" "Babycrab.Attack"
|
||||
jump_variation1 "AddVelocity" "512 0 250"
|
||||
jump_variation1 "StartSoundDef" "Babycrab.Attack"
|
||||
jump_variation2 "AddVelocity" "512 0 250"
|
||||
jump_variation2 "StartSoundDef" "Babycrab.Attack"
|
||||
}
|
||||
}
|
21
decls/def/monsters/barnacle.def
Normal file
21
decls/def/monsters/barnacle.def
Normal file
|
@ -0,0 +1,21 @@
|
|||
entityDef monster_barnacle
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/barnacle.mdl"
|
||||
"netname" "Barnacle"
|
||||
"health" "skill:barnacle_health"
|
||||
"mins" "-16 -16 -32"
|
||||
"maxs" "16 16 0"
|
||||
"eye_height" "0"
|
||||
"team" "2"
|
||||
"propdata" "actor_human"
|
||||
|
||||
"speed_walk" "0"
|
||||
"speed_run" "0" // day one only
|
||||
"static" "1"
|
||||
"def_puke" "barnacle_gib"
|
||||
|
||||
events {
|
||||
2 "ShootGib" "gibs_human 200 1"
|
||||
}
|
||||
}
|
59
decls/def/monsters/barney.def
Normal file
59
decls/def/monsters/barney.def
Normal file
|
@ -0,0 +1,59 @@
|
|||
entityDef monster_barney
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/barney.mdl"
|
||||
"netname" "Barney"
|
||||
"health" "skill:barney_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "0"
|
||||
"propdata" "actor_human"
|
||||
|
||||
"def_attack_ranged" "ranged_barney_shot"
|
||||
"attack_ranged_range" "1024"
|
||||
"reload_count" "18"
|
||||
"follow_on_use" "1"
|
||||
"weapon_drawn" "0"
|
||||
"body_on_draw" "1:2"
|
||||
"speed_walk" "64"
|
||||
"speed_run" "364"
|
||||
|
||||
"snd_pain" "Barney.Pain"
|
||||
"snd_death" "Barney.Die"
|
||||
"snd_ranged_attack" "Barney.FirePistol"
|
||||
"snd_reload" "HGrunt.Reload"
|
||||
|
||||
"talk_answer" "!BA_ANSWER"
|
||||
"talk_ask" "!BA_QUESTION"
|
||||
"talk_ally_shoot" "!BA_SHOOT"
|
||||
"talk_idle" "!BA_IDLE"
|
||||
"talk_hearing" "!BA_HEAR"
|
||||
"talk_smelling" "!BA_SMELL"
|
||||
"talk_stare" "!BA_STARE"
|
||||
"talk_survived" "!BA_WOUND"
|
||||
"talk_wounded" "!BA_WOUND"
|
||||
"talk_player_ask" "!BA_QUESTION"
|
||||
"talk_player_greet" "!BA_HELLO"
|
||||
"talk_player_idle" "!BA_IDLE"
|
||||
"talk_player_wounded1" "!BA_CUREA"
|
||||
"talk_player_wounded2" "!BA_CUREB"
|
||||
"talk_player_wounded3" "!BA_CUREC"
|
||||
"talk_unfollow" "!BA_WAIT"
|
||||
"talk_follow" "!BA_OK"
|
||||
"talk_stop_follow" "!BA_STOP"
|
||||
"talk_deny_follow" "!BA_POK"
|
||||
|
||||
// pre-disaster
|
||||
when "spawnflags" equals "256" {
|
||||
"follow_on_use" "0"
|
||||
}
|
||||
}
|
||||
|
||||
entityDef ranged_barney_shot
|
||||
{
|
||||
"inherit" "projectile_bullet_base"
|
||||
"damage" "skill:hgrunt_pellets"
|
||||
"delay" "0.5"
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_barney_dead
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/barney.mdl"
|
||||
"netname" "Barney"
|
||||
"health" "skill:barney_heath"
|
98
decls/def/monsters/bigmomma.def
Normal file
98
decls/def/monsters/bigmomma.def
Normal file
|
@ -0,0 +1,98 @@
|
|||
entityDef monster_bigmomma
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/big_mom.mdl"
|
||||
"netname" "Big Momma"
|
||||
"health" "100"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"speed_walk" "0"
|
||||
"speed_run" "292"
|
||||
|
||||
"attack_ranged_range" "512"
|
||||
"attack_melee_range" "152"
|
||||
"def_attack_melee" "melee_bigmomma"
|
||||
"def_attack_ranged" "ranged_bigmomma_spit"
|
||||
|
||||
"snd_alert" "BigMomma.Alert"
|
||||
"snd_pain" "BigMomma.Pain"
|
||||
"snd_death" "BigMomma.Die"
|
||||
|
||||
"snd_precache" "BigMomma.FootstepLeft"
|
||||
"snd_precache" "BigMomma.FootstepRight"
|
||||
"snd_precache" "BigMomma.ChildDie" // She mourns when her children die, who wouldn't?
|
||||
"snd_precache" "BigMomma.Sack"
|
||||
"snd_precache" "monster_bigmomma.scream"
|
||||
"snd_precache" "BigMomma.LaunchMortar"
|
||||
"snd_precache" "BigMomma.Attack"
|
||||
"snd_precache" "BigMomma.AttackHit"
|
||||
"snd_precache" "BigMomma.AttackMiss"
|
||||
"snd_precache" "BigMomma.Birth" // BigMomma.LayHeadcrab seems to be the same?
|
||||
|
||||
"snd_precache" "NPC_BigMomma.SpitTouch1"
|
||||
"snd_precache" "NPC_BigMomma.SpitHit1"
|
||||
"snd_precache" "NPC_BigMomma.SpitHit2"
|
||||
|
||||
events {
|
||||
// footsteps
|
||||
1 "StartSoundDef" "BigMomma.FootstepLeft"
|
||||
2 "StartSoundDef" "BigMomma.FootstepRight"
|
||||
3 "StartSoundDef" "BigMomma.FootstepLeft"
|
||||
4 "StartSoundDef" "BigMomma.FootstepRight"
|
||||
|
||||
// sfx
|
||||
5 "StartSoundDef" "BigMomma.Sack"
|
||||
6 "StartSoundDef" "BigMomma.Die"
|
||||
14 "StartSoundDef" "monster_bigmomma.scream"
|
||||
15 "StartSoundDef" "BigMomma.Pain"
|
||||
16 "StartSoundDef" "BigMomma.Attack"
|
||||
17 "StartSoundDef" "BigMomma.Birth"
|
||||
|
||||
// melee attacks
|
||||
8 "SpawnProjectileDef" "melee_bigmomma"
|
||||
9 "SpawnProjectileDef" "melee_bigmomma"
|
||||
10 "SpawnProjectileDef "melee_bigmomma"
|
||||
|
||||
// ranged attack
|
||||
11 "SpawnProjectileOffset" "ranged_bigmomma_spit 0 0 180"
|
||||
|
||||
// spawn offspring
|
||||
12 "SpawnProjectileDef" "monster_babycrab"
|
||||
|
||||
// trigger our targets
|
||||
50 "UseTargets" ""
|
||||
|
||||
// jump forward
|
||||
13 "AddVelocity" "200 0 500"
|
||||
}
|
||||
}
|
||||
|
||||
entityDef melee_bigmomma
|
||||
{
|
||||
"damage" "skill:bullsquid_dmg_bite"
|
||||
"delay" "0.25f"
|
||||
}
|
||||
|
||||
entityDef ranged_bigmomma_spit
|
||||
{
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "sprites/mommaspit.spr"
|
||||
"mins" "-16 -16 -16"
|
||||
"mins" "16 16 16"
|
||||
|
||||
"def_damage" "damage_spitDirect"
|
||||
|
||||
"health" "0"
|
||||
"velocity" "900"
|
||||
"fuse" "10"
|
||||
"detonate_on_fuse" "0"
|
||||
"detonate_on_death" "0"
|
||||
"detonate_on_world" "1"
|
||||
"detonate_on_actor" "1"
|
||||
"impact_damage_effect" "1"
|
||||
"impact_gib" "0"
|
||||
"trackEnemy" "1"
|
||||
}
|
17
decls/def/monsters/bloater.def
Normal file
17
decls/def/monsters/bloater.def
Normal file
|
@ -0,0 +1,17 @@
|
|||
entityDef monster_bloater
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/floater.mdl"
|
||||
"netname" "Flocking Floater" // wonder if it's the Floater from Cosmos
|
||||
"health" "25"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"flying" "1"
|
||||
"fly_offset" "64"
|
||||
|
||||
"speed_walk" "64"
|
||||
"speed_run" "364" // day one only
|
||||
}
|
76
decls/def/monsters/bullchicken.def
Normal file
76
decls/def/monsters/bullchicken.def
Normal file
|
@ -0,0 +1,76 @@
|
|||
entityDef monster_bullchicken
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/bullsquid.mdl"
|
||||
"netname" "Bullsquid"
|
||||
"health" "skill:bullsquid_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "32"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"speed_walk" "32"
|
||||
"speed_run" "72"
|
||||
|
||||
"attack_ranged_range" "512"
|
||||
"attack_melee_range" "86" // tailwhip
|
||||
"attack_melee2_range" "86" // bite
|
||||
"def_attack_melee" "melee_bullchicken_tailwhip"
|
||||
"def_attack_melee2" "melee_bullchicken_bite"
|
||||
|
||||
"snd_alert" "Bullsquid.Growl"
|
||||
"snd_idle" "Bullsquid.Idle"
|
||||
"snd_pain" "Bullsquid.Pain"
|
||||
"snd_death" "Bullsquid.Die"
|
||||
|
||||
events {
|
||||
1 "SpawnProjectileDef" "ranged_bullchicken_spit"
|
||||
1 "StartSoundDef" "Bullsquid.Attack"
|
||||
|
||||
2 "StartSoundDef" "Bullsquid.Bite"
|
||||
|
||||
3 "SetSkin" "1"
|
||||
|
||||
4 "StartSoundDef" "Bullsquid.Growl"
|
||||
|
||||
5 "SetVelocity" "0 0 256"
|
||||
|
||||
6 "StartSoundDef" "Bullsquid.Bite"
|
||||
}
|
||||
}
|
||||
|
||||
entityDef melee_bullchicken_bite
|
||||
{
|
||||
"damage" "skill:bullsquid_dmg_bite"
|
||||
"delay" "0.25f"
|
||||
}
|
||||
|
||||
|
||||
entityDef melee_bullchicken_tailwhip
|
||||
{
|
||||
"damage" "skill:bullsquid_dmg_whip"
|
||||
"delay" "0.25f"
|
||||
}
|
||||
|
||||
entityDef ranged_bullchicken_spit
|
||||
{
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "sprites/bigspit.spr"
|
||||
|
||||
"def_damage" "damage_spitDirect"
|
||||
|
||||
"health" "0"
|
||||
"velocity" "900"
|
||||
"fuse" "10"
|
||||
"detonate_on_fuse" "0"
|
||||
"detonate_on_death" "0"
|
||||
"detonate_on_world" "1"
|
||||
"detonate_on_actor" "1"
|
||||
"impact_damage_effect" "1"
|
||||
"impact_gib" "0"
|
||||
}
|
||||
|
||||
entityDef damage_spitDirect
|
||||
{
|
||||
damage "skill:bullsquid_dmg_spit"
|
||||
}
|
34
decls/def/monsters/charger.def
Normal file
34
decls/def/monsters/charger.def
Normal file
|
@ -0,0 +1,34 @@
|
|||
entityDef monster_charger
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/charger.mdl"
|
||||
"netname" "Charger"
|
||||
"health" "skill:charger_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "48"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"speed_walk" "72"
|
||||
"speed_run" "160"
|
||||
|
||||
"def_attack_melee" "melee_charger_stab"
|
||||
"melee_range" "96"
|
||||
|
||||
// "snd_sight" "Charger.Alert"
|
||||
// "snd_idle" "Charger.Idle"
|
||||
// "snd_pain" "Charger.Pain"
|
||||
// "snd_death" "Charger.Die"
|
||||
// "snd_melee_attack" "Charger.Attack"
|
||||
// "snd_melee_attack_hit" "Charger.Hit"
|
||||
// "snd_melee_attack_miss" "Charger.attackmiss"
|
||||
"snd_thud" "monster_generic.thud"
|
||||
}
|
||||
|
||||
entityDef melee_charger_stab
|
||||
{
|
||||
"damage" "skill:charger_dmg_one_slash"
|
||||
"delay" "0.5"
|
||||
"wait" "0.5"
|
||||
"attempts" "2"
|
||||
}
|
15
decls/def/monsters/chumtoad.def
Normal file
15
decls/def/monsters/chumtoad.def
Normal file
|
@ -0,0 +1,15 @@
|
|||
entityDef monster_chumtoad
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/chumtoad.mdl"
|
||||
"netname" "Chumtoad"
|
||||
"health" "10"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"eye_height" "12"
|
||||
"team" "0"
|
||||
"propdata" "actor_alien"
|
||||
|
||||
"speed_walk" "25" // These values are
|
||||
"speed_run" "50" // purely speculative
|
||||
}
|
20
decls/def/monsters/cockroach.def
Normal file
20
decls/def/monsters/cockroach.def
Normal file
|
@ -0,0 +1,20 @@
|
|||
entityDef monster_cockroach
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/roach.mdl"
|
||||
"netname" "Cockroach"
|
||||
"health" "0"
|
||||
"mins" "-8 -8 0"
|
||||
"maxs" "8 8 8"
|
||||
"eye_height" "64"
|
||||
"team" "0"
|
||||
"propdata" "actor_alien"
|
||||
|
||||
"speed_walk" "0"
|
||||
"speed_run" "0"
|
||||
|
||||
"snd_walk" "Roach.Walk"
|
||||
}
|
||||
|
||||
TODO: coverhintnodeflags: FLESH | LOWLIGHT
|
||||
TODO: OnSeenPlayer: MoveToCover
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_flyer
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/aflock.mdl"
|
||||
"netname" "Flyer Flock"
|
||||
"health" "0"
|
||||
|
@ -12,4 +12,5 @@ entityDef monster_flyer
|
|||
|
||||
"speed_walk" "64"
|
||||
"speed_run" "364"
|
||||
}
|
||||
"flying" "1"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_flyer_flock
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/aflock.mdl"
|
||||
"netname" "Flyer Flock"
|
||||
"health" "0"
|
||||
|
@ -12,4 +12,5 @@ entityDef monster_flyer_flock
|
|||
|
||||
"speed_walk" "64"
|
||||
"speed_run" "364"
|
||||
}
|
||||
"flying" "1"
|
||||
}
|
28
decls/def/monsters/gargantua.def
Normal file
28
decls/def/monsters/gargantua.def
Normal file
|
@ -0,0 +1,28 @@
|
|||
entityDef monster_gargantua
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/garg.mdl"
|
||||
"netname" "Gargantua"
|
||||
"health" "skill:gargantua_health"
|
||||
"mins" "-32 -32 0"
|
||||
"maxs" "32 32 128"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"speed_walk" "46"
|
||||
"speed_run" "292"
|
||||
|
||||
"snd_idle" "Garg.Idle"
|
||||
"snd_death" "Garg.Die"
|
||||
|
||||
events {
|
||||
// attacks
|
||||
1 "SpawnProjectileDef" "melee_gargantua"
|
||||
5 "SpawnProjectileDef" "stomp_gargantua"
|
||||
|
||||
// sfx
|
||||
3 "StartSoundDef" "Garg.Footstep"
|
||||
4 "StartSoundDef" "Garg.Footstep"
|
||||
6 "StartSoundDef" "Garg.Breath"
|
||||
}
|
||||
}
|
|
@ -1,15 +1,15 @@
|
|||
entityDef monster_gman
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/gman.mdl"
|
||||
"netname" "G-Man"
|
||||
"health" "0" // he can't die, he's the G-Man!
|
||||
"health" "" // he can't die, he's the G-Man!
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"eye_height" "64"
|
||||
"team" "0"
|
||||
"propdata" "actor_human"
|
||||
"propdata" "actor_robot"
|
||||
|
||||
"speed_walk" "77"
|
||||
"speed_walk" "77"
|
||||
"speed_run" "364" // day one only
|
||||
}
|
31
decls/def/monsters/headcrab.def
Normal file
31
decls/def/monsters/headcrab.def
Normal file
|
@ -0,0 +1,31 @@
|
|||
entityDef monster_headcrab
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/headcrab.mdl"
|
||||
"netname" "Headcrab"
|
||||
"health" "skill:headcrab_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "12"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"speed_walk" "32"
|
||||
"speed_run" "72"
|
||||
|
||||
"attack_ranged_range" "180" // needs launch attack
|
||||
|
||||
"snd_idle" "Headcrab.Idle"
|
||||
"snd_pain" "Headcrab.Pain"
|
||||
"snd_death" "Headcrab.Die"
|
||||
"snd_melee_attack_hit" "Headcrab.Bite"
|
||||
"leap_damage" "skill:headcrab_dmg_bite"
|
||||
|
||||
events {
|
||||
jump "AddVelocity" "512 0 250"
|
||||
jump "StartSoundDef" "Headcrab.Attack"
|
||||
jump_variation1 "AddVelocity" "512 0 350"
|
||||
jump_variation1 "StartSoundDef" "Headcrab.Attack"
|
||||
jump_variation2 "AddVelocity" "512 0 350"
|
||||
jump_variation2 "StartSoundDef" "Headcrab.Attack"
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_hevsuit_dead
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/player.mdl"
|
||||
"body1" "1"
|
||||
"netname" "Dead H.E.V. Scientist"
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_hgrunt_dead
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/hgrunt.mdl"
|
||||
"netname" "Dead Human Grunt"
|
||||
"health" "skill:hgrunt_health"
|
37
decls/def/monsters/houndeye.def
Normal file
37
decls/def/monsters/houndeye.def
Normal file
|
@ -0,0 +1,37 @@
|
|||
entityDef monster_houndeye
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/houndeye.mdl"
|
||||
"netname" "Houndeye"
|
||||
"health" "skill:houndeye_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "32"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"speed_walk" "32"
|
||||
"speed_run" "192"
|
||||
|
||||
"attack_ranged_range" "192"
|
||||
|
||||
"snd_idle" "HoundEye.Idle"
|
||||
"snd_pain" "HoundEye.Pain"
|
||||
"snd_death" "HoundEye.Die"
|
||||
|
||||
events {
|
||||
1 "StartSoundDef" "HoundEye.Alert"
|
||||
|
||||
2 "StartSoundDef" "HoundEye.Warn"
|
||||
|
||||
3 "Shockwave" "sprites/shockwave.spr 192 0 0 2 16 0 255 255 255 255 0"
|
||||
3 "StartSoundDef" "HoundEye.Sonic"
|
||||
|
||||
4 "AddVelocity" "-200 0 250"
|
||||
|
||||
5 "StartSoundDef" "HoundEye.Pain"
|
||||
|
||||
6 "StartSoundDef" "HoundEye.Pain"
|
||||
|
||||
7 "SetSkin" "0"
|
||||
}
|
||||
}
|
37
decls/def/monsters/human_assassin.def
Normal file
37
decls/def/monsters/human_assassin.def
Normal file
|
@ -0,0 +1,37 @@
|
|||
entityDef monster_human_assassin
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/hassassin.mdl"
|
||||
"netname" "Human Assassin"
|
||||
"health" "skill:hassassin_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "1"
|
||||
"propdata" "actor_human"
|
||||
|
||||
"attack_ranged_range" "512"
|
||||
"attack_melee_range" "86"
|
||||
"def_attack_melee" "melee_hassassin_kick"
|
||||
|
||||
"speed_walk" "0"
|
||||
"speed_run" "364"
|
||||
|
||||
// animation event callbacks
|
||||
events {
|
||||
1 "SpawnProjectileDef" "ranged_hassassin_shot"
|
||||
1 "StartSoundDef" "HAssassin.Shot"
|
||||
}
|
||||
}
|
||||
|
||||
entityDef melee_hassassin_kick
|
||||
{
|
||||
"damage" "skill:bullsquid_dmg_bite"
|
||||
"delay" "0.25"
|
||||
}
|
||||
|
||||
entityDef ranged_hassassin_shot
|
||||
{
|
||||
"inherit" "projectile_bullet_base"
|
||||
"damage" "skill:9mm_bullet"
|
||||
}
|
57
decls/def/monsters/human_assault.def
Normal file
57
decls/def/monsters/human_assault.def
Normal file
|
@ -0,0 +1,57 @@
|
|||
entityDef monster_human_assault
|
||||
{
|
||||
"spawnclass" "ncSquadMonster"
|
||||
"model" "models/hassault.mdl"
|
||||
"netname" "Human Assault"
|
||||
"health" "skill:hgrunt_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "1"
|
||||
"propdata" "actor_human"
|
||||
"speed_walk" "41"
|
||||
"speed_run" "304"
|
||||
|
||||
// melee attack
|
||||
"def_attack_melee" "melee_hassault_kick"
|
||||
"attack_melee_range" "96"
|
||||
"snd_melee_attack" "monster_human_grunt.kick"
|
||||
|
||||
// primary ranged attack
|
||||
"def_attack_ranged" "ranged_hassault_20mm"
|
||||
"snd_ranged_attack" "Weapon_MP5.Single"
|
||||
"attack_ranged_range" "1024"
|
||||
"reload_count" "30"
|
||||
|
||||
"snd_idle" "monster_human_grunt.idle"
|
||||
"snd_pain" "HGrunt.Pain"
|
||||
"snd_death" "HGrunt.Die"
|
||||
"snd_reload" "HGrunt.Reload"
|
||||
|
||||
"squad_leader" "1"
// Intended to be the squad leader whenever present
|
||||
}
|
||||
|
||||
entityDef melee_hassault_kick
|
||||
{
|
||||
"spawnclass" "ncProjectile"
|
||||
"is_bullet" "1"
|
||||
"damage" "skill:hgrunt_kick"
|
||||
"delay" "0.25"
|
||||
"range" "64"
|
||||
}
|
||||
|
||||
entityDef ranged_hassault_20mm
|
||||
{
|
||||
"inherit" "projectile_bullet_base"
|
||||
"damage" "skill:hgrunt_pellets"
|
||||
"burst" "3"
|
||||
"burst_delay" "0.5"
|
||||
"delay" "0.1"
|
||||
}
|
||||
|
||||
entityDef ranged_hassault_shot
|
||||
{
|
||||
"inherit" "projectile_bullet_base"
|
||||
"damage" "skill:hgrunt_pellets"
|
||||
"delay" "1.0"
|
||||
}
|
174
decls/def/monsters/human_grunt.def
Normal file
174
decls/def/monsters/human_grunt.def
Normal file
|
@ -0,0 +1,174 @@
|
|||
entityDef monster_human_grunt
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/hgrunt.mdl"
|
||||
"netname" "Grunt"
|
||||
"health" "skill:hgrunt_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "1"
|
||||
"propdata" "actor_human"
|
||||
"speed_walk" "41"
|
||||
"speed_run" "304"
|
||||
|
||||
// melee attack
|
||||
"def_attack_melee" "melee_hgrunt_kick"
|
||||
"attack_melee_range" "96"
|
||||
"snd_melee_attack" "HGrunt.Kick"
|
||||
|
||||
// primary ranged attack
|
||||
"def_attack_ranged" "ranged_hgrunt_mp5"
|
||||
"snd_ranged_attack" "HGrunt.9MM"
|
||||
"attack_ranged_range" "1024"
|
||||
"reload_count" "30"
|
||||
|
||||
// special attack
|
||||
"def_attack_special_1" "projectile_hgrunt_grenade"
|
||||
"attack_special_range" "1024"
|
||||
"projectile_delay" "1.0"
|
||||
|
||||
// TODO Unclear how these work
|
||||
// TODO !HG_CHECK
|
||||
// TODO !HG CLEAR
|
||||
"talk_answer" "!HG_ANSWER"
|
||||
"talk_ask" "!HG_QUEST"
|
||||
"talk_idle" "!HG_IDLE"
|
||||
"snd_pain" "HGrunt.Pain"
|
||||
"snd_death" "HGrunt.Die"
|
||||
"snd_reload" "HGrunt.Reload"
|
||||
"weapons" "3"
|
||||
|
||||
"mindset_idle" "hgrunt_idle"
|
||||
"mindset_defense" "hgrunt_takeCover"
|
||||
"mindset_combat" "hgrunt_combatFace"
|
||||
|
||||
"squad_leader_body" "1:2"
|
||||
|
||||
// grenade launcher
|
||||
when "weapons" contains 4 {
|
||||
"body1" "4"
|
||||
"def_attack_special_1" "projectile_hgrunt_ARgrenade"
|
||||
"skin" "1"
|
||||
}
|
||||
|
||||
// shotgun grunt
|
||||
when "weapons" contains 8 {
|
||||
"body2" "2"
|
||||
"reload_count" "8"
|
||||
"snd_ranged_attack" "HGrunt.Shotgun"
|
||||
"def_attack_ranged" "ranged_hgrunt_shot"
|
||||
}
|
||||
|
||||
when "spawnflags" contains 32 {
|
||||
"squad_leader" "1"
|
||||
}
|
||||
|
||||
// animation event callbacks
|
||||
events {
|
||||
2 "StartSoundDef" "HGrunt.Reload"
|
||||
3 "SpawnProjectileDef" "melee_hgrunt_kick"
|
||||
4 "SpawnProjectileDef" "ranged_hgrunt_mp5"
|
||||
5 "SpawnProjectileDef" "ranged_hgrunt_mp5"
|
||||
6 "SpawnProjectileDef" "ranged_hgrunt_mp5"
|
||||
7 "SpawnProjectileDef" "projectile_hgrunt_grenade"
|
||||
8 "SpawnProjectileDef" "projectile_hgrunt_ARgrenade"
|
||||
9 "SpawnProjectileDef" "projectile_hgrunt_grenadePlant"
|
||||
}
|
||||
}
|
||||
|
||||
entityDef melee_hgrunt_kick
|
||||
{
|
||||
"spawnclass" "ncProjectile"
|
||||
"is_bullet" "1"
|
||||
"damage" "skill:hgrunt_kick"
|
||||
"delay" "0.25"
|
||||
"range" "64"
|
||||
}
|
||||
|
||||
entityDef ranged_hgrunt_mp5
|
||||
{
|
||||
"inherit" "projectile_bullet_base"
|
||||
"damage" "skill:hgrunt_pellets"
|
||||
"burst" "3"
|
||||
"burst_delay" "0.5"
|
||||
"delay" "0.1"
|
||||
}
|
||||
|
||||
entityDef ranged_hgrunt_shot
|
||||
{
|
||||
"inherit" "projectile_bullet_base"
|
||||
"damage" "skill:hgrunt_pellets"
|
||||
"delay" "1.0"
|
||||
}
|
||||
|
||||
entityDef projectile_hgrunt_ARgrenade
|
||||
{
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "models/grenade.mdl"
|
||||
|
||||
"def_splash_damage" "damage_grenadeSplash"
|
||||
|
||||
"health" "0"
|
||||
"velocity" "800 0 400"
|
||||
"angular_velocity" "300 300 300"
|
||||
"fuse" "4"
|
||||
"bounce" "1"
|
||||
"detonate_on_fuse" "1"
|
||||
"detonate_on_death" "0"
|
||||
"detonate_on_world" "1"
|
||||
"detonate_on_actor" "1"
|
||||
"impact_damage_effect" "1"
|
||||
"impact_gib" "1"
|
||||
|
||||
"model_detonate" "fx_explosion.main"
|
||||
|
||||
"explode_light_color" "2 1.6 0.8"
|
||||
"explode_light_radius" "320"
|
||||
"explode_light_fadetime" "0.5"
|
||||
|
||||
"snd_explode" "weapon_handgrenade.explode"
|
||||
"snd_bounce" "weapon_handgrenade.bounce"
|
||||
}
|
||||
|
||||
entityDef projectile_hgrunt_grenade
|
||||
{
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "models/w_grenade.mdl"
|
||||
|
||||
"def_splash_damage" "damage_grenadeSplash"
|
||||
|
||||
"health" "0"
|
||||
"velocity" "600 0 200"
|
||||
"angular_velocity" "300 300 300"
|
||||
"fuse" "4"
|
||||
"bounce" "1"
|
||||
"detonate_on_fuse" "1"
|
||||
"detonate_on_death" "0"
|
||||
"detonate_on_world" "0"
|
||||
"detonate_on_actor" "0"
|
||||
"impact_damage_effect" "1"
|
||||
"impact_gib" "1"
|
||||
|
||||
"model_detonate" "fx_explosion.main"
|
||||
|
||||
"explode_light_color" "2 1.6 0.8"
|
||||
"explode_light_radius" "320"
|
||||
"explode_light_fadetime" "0.5"
|
||||
|
||||
"snd_explode" "BaseExplosionEffect.Sound"
|
||||
"snd_bounce" "Weapon_HandGrenade.GrenadeBounce"
|
||||
}
|
||||
|
||||
entityDef projectile_hgrunt_grenade
Plant
|
||||
{
|
||||
"inherit" "projectile_hgrunt_grenade"
|
||||
"velocity" "15 0 128"
|
||||
}
|
||||
|
||||
entityDef damage_grenadeSplash
|
||||
{
|
||||
"damage" "150"
|
||||
"radius" "160"
|
||||
}
|
||||
|
15
decls/def/monsters/ichthyosaur.def
Normal file
15
decls/def/monsters/ichthyosaur.def
Normal file
|
@ -0,0 +1,15 @@
|
|||
entityDef monster_ichthyosaur
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/icky.mdl"
|
||||
"netname" "Ichthyosaur"
|
||||
"health" "0"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
|
||||
"speed_walk" "0"
|
||||
"speed_run" "0"
|
||||
}
|
15
decls/def/monsters/kingpin.def
Normal file
15
decls/def/monsters/kingpin.def
Normal file
|
@ -0,0 +1,15 @@
|
|||
entityDef monster_kingpin
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/kingpin.mdl"
|
||||
"netname" "Kingpin"
|
||||
"health" "200"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"eye_height" "96"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
|
||||
"speed_walk" "25" // These values are
|
||||
"speed_run" "50" // purely speculative
|
||||
}
|
28
decls/def/monsters/leech.def
Normal file
28
decls/def/monsters/leech.def
Normal file
|
@ -0,0 +1,28 @@
|
|||
entityDef monster_leech
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/leech.mdl"
|
||||
"netname" "Leech"
|
||||
"health" "skill:leech_health"
|
||||
"mins" "-8 -8 0"
|
||||
"maxs" "8 8 8"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
|
||||
"speed_walk" "32"
|
||||
"speed_run" "64"
|
||||
|
||||
"def_attack_melee" "melee_leech_bite"
|
||||
"melee_range" "24"
|
||||
|
||||
"snd_melee_attack_hit" "monster_zombie.attackhit"
|
||||
}
|
||||
|
||||
entityDef melee_leech_bite
|
||||
{
|
||||
"damage" "skill:zombie_dmg_one_slash"
|
||||
"delay" "0.2"
|
||||
"wait" "2"
|
||||
"attempts" "1"
|
||||
}
|
16
decls/def/monsters/miniturret.def
Normal file
16
decls/def/monsters/miniturret.def
Normal file
|
@ -0,0 +1,16 @@
|
|||
entityDef monster_miniturret
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/miniturret.mdl"
|
||||
"netname" "Mini-Turret"
|
||||
"health" "skill:miniturret_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"eye_height" "64"
|
||||
"team" "1"
|
||||
"propdata" "actor_robot"
|
||||
|
||||
"speed_walk" "0"
|
||||
"speed_run" "0"
|
||||
"static" "1"
|
||||
}
|
15
decls/def/monsters/mrfriendly.def
Normal file
15
decls/def/monsters/mrfriendly.def
Normal file
|
@ -0,0 +1,15 @@
|
|||
entityDef monster_mrfriendly
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/friendly.mdl"
|
||||
"netname" "Mr. Friendly"
|
||||
"health" "100"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
|
||||
"speed_walk" "25" // These values are
|
||||
"speed_run" "50" // purely speculative
|
||||
}
|
16
decls/def/monsters/nihilanth.def
Normal file
16
decls/def/monsters/nihilanth.def
Normal file
|
@ -0,0 +1,16 @@
|
|||
entityDef monster_nihilanth
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/nihilanth.mdl"
|
||||
"netname" "Nihilanth"
|
||||
"health" "0"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
|
||||
"speed_walk" "0"
|
||||
"speed_run" "0"
|
||||
"flying" "1"
|
||||
}
|
16
decls/def/monsters/osprey.def
Normal file
16
decls/def/monsters/osprey.def
Normal file
|
@ -0,0 +1,16 @@
|
|||
entityDef monster_osprey
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/osprey.mdl"
|
||||
"netname" "Osprey"
|
||||
"health" "0"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_robot"
|
||||
|
||||
"speed_walk" "0"
|
||||
"speed_run" "0"
|
||||
"flying" "1"
|
||||
}
|
41
decls/def/monsters/panther.def
Normal file
41
decls/def/monsters/panther.def
Normal file
|
@ -0,0 +1,41 @@
|
|||
entityDef monster_panther
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/panther.mdl"
|
||||
"netname" "Panther Eye"
|
||||
"health" "skill:panther_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "48"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"speed_walk" "32"
|
||||
"speed_run" "72"
|
||||
|
||||
"def_attack_melee" "melee_panther_stab"
|
||||
"melee_range" "96"
|
||||
"attack_ranged_range" "180" // needs launch attack
|
||||
|
||||
// "snd_sight" "monster_panther.alert"
|
||||
// "snd_idle" "monster_panther.idle"
|
||||
// "snd_pain" "monster_panther.pain"
|
||||
// "snd_death" "monster_panther.death"
|
||||
"leap_damage" "skill:panther_dmg_bite"
|
||||
|
||||
events {
|
||||
jump "AddVelocity" "512 0 250"
|
||||
jump "StartSoundDef" "monster_panther.attack"
|
||||
jump_variation1 "AddVelocity" "512 0 350"
|
||||
jump_variation1 "StartSoundDef" "monster_panther.attack"
|
||||
jump_variation2 "AddVelocity" "512 0 350"
|
||||
jump_variation2 "StartSoundDef" "monster_panther.attack"
|
||||
}
|
||||
}
|
||||
|
||||
entityDef melee_panther_stab
|
||||
{
|
||||
"damage" "skill:panther_dmg_one_slash"
|
||||
"delay" "0.5"
|
||||
"wait" "0.5"
|
||||
"attempts" "2"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_rat
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/bigrat.mdl"
|
||||
"netname" "Rat"
|
||||
"health" "0"
|
80
decls/def/monsters/scientist.def
Normal file
80
decls/def/monsters/scientist.def
Normal file
|
@ -0,0 +1,80 @@
|
|||
entityDef monster_scientist
|
||||
{
|
||||
"spawnclass" "HLScientist"
|
||||
"model" "models/scientist.mdl"
|
||||
"netname" "Scientist"
|
||||
"health" "skill:scientist_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"team" "0"
|
||||
"propdata" "actor_human"
|
||||
|
||||
// Until Randomization is functional
|
||||
// we need to do this hack
|
||||
"pitch" "105"
|
||||
"netname" "Walter"
|
||||
"body1" "1"
|
||||
|
||||
"follow_on_use" "1"
|
||||
"speed_walk" "64"
|
||||
"speed_run" "364"
|
||||
|
||||
"snd_pain" "Scientist.Pain"
|
||||
"snd_death" "Scientist.Die"
|
||||
|
||||
"talk_answer" "!SC_ANSWER"
|
||||
"talk_ask" "!SC_QUESTION"
|
||||
"talk_ally_shoot" "!SC_PLFEAR"
|
||||
"talk_idle" "!SC_IDLE"
|
||||
"talk_hearing" "!SC_HEAR"
|
||||
"talk_smelling" "!SC_SMELL"
|
||||
"talk_stare" "!SC_STARE"
|
||||
"talk_survived" "!SC_WOUND"
|
||||
"talk_wounded" "!SC_MORTAL"
|
||||
"talk_player_ask" "!SC_QUESTION"
|
||||
"talk_player_greet" "!SC_HELLO"
|
||||
"talk_player_idle" "!SC_PIDLE"
|
||||
"talk_player_wounded1" "!SC_CUREA"
|
||||
"talk_player_wounded2" "!SC_CUREB"
|
||||
"talk_player_wounded3" "!SC_CUREC"
|
||||
"talk_unfollow" "!SC_WAIT"
|
||||
"talk_follow" "!SC_OK"
|
||||
"talk_stop_follow" "!SC_STOP"
|
||||
"talk_deny_follow" "!SC_POK"
|
||||
|
||||
// Body Types
|
||||
when "body" equals "0" {
|
||||
"pitch" "105"
|
||||
"netname" "Walter"
|
||||
"body1" "1"
|
||||
}
|
||||
|
||||
when "body" equals "1" {
|
||||
"pitch" "100"
|
||||
"netname" "Einstein"
|
||||
"body1" "2"
|
||||
}
|
||||
|
||||
when "body" equals "2" {
|
||||
"pitch" "95"
|
||||
"netname" "Luther"
|
||||
"skin" "1"
|
||||
"body1" "3"
|
||||
}
|
||||
|
||||
when "body" equals "3" {
|
||||
"pitch" "105"
|
||||
"netname" "Slick"
|
||||
"body1" "4"
|
||||
}
|
||||
|
||||
// pre-disaster
|
||||
when "spawnflags" contains "256" {
|
||||
"talk_ask" ""
|
||||
"talk_player_ask" "!SC_PQUEST"
|
||||
"talk_player_greet" "!SC_PHELLO"
|
||||
"talk_player_idle" "!SC_PIDLE"
|
||||
"follow_on_use" "0"
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_scientist_dead
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/scientist.mdl"
|
||||
"netname" "Dead Scientist"
|
||||
"health" "skill:scientist_health"
|
45
decls/def/monsters/sentry.def
Normal file
45
decls/def/monsters/sentry.def
Normal file
|
@ -0,0 +1,45 @@
|
|||
entityDef monster_sentry
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/sentry.mdl"
|
||||
"netname" "Sentry"
|
||||
"health" "skill:sentry_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "60"
|
||||
"team" "1"
|
||||
"propdata" "actor_robot"
|
||||
|
||||
"def_attack_ranged" "ranged_sentry_shot"
|
||||
"attack_ranged_range" "1024"
|
||||
|
||||
"snd_idle" "Turret.Ping"
|
||||
"snd_death" "Sentry.Die"
|
||||
"snd_ranged_attack" "Sentry.Shoot"
|
||||
|
||||
"act_idle" "0" // when the sentry is turned off.
|
||||
// "act_sleep" "4" // when the sentry retires;The animation is a dupe
|
||||
"act_excited" "3" // waking up
|
||||
"act_dieSimple" "5"
|
||||
"act_dieForward" "5"
|
||||
"act_dieViolent" "5"
|
||||
"act_combatIdle" "2" // scanning
|
||||
"act_rangeAttack1" "1"
|
||||
"act_rangeAttack2" "1"
|
||||
|
||||
"speed_walk" "0"
|
||||
"speed_run" "0"
|
||||
"turn_rate" "0"
|
||||
"use_nav" "0"
|
||||
"bleed" "0"
|
||||
"fireFromHead" "1"
|
||||
}
|
||||
|
||||
entityDef ranged_sentry_shot
|
||||
{
|
||||
"inherit" "projectile_bullet_base"
|
||||
"damage" "skill:hgrunt_pellets"
|
||||
"delay" "0.1"
|
||||
"attempts" "8"
|
||||
"wait" "2"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_sitting_scientist
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/scientist.mdl"
|
||||
"netname" "Seated Scientist"
|
||||
"health" "skill:scientist_health"
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_skeleton_dead
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/skeleton.mdl"
|
||||
"netname" "Skeleton"
|
||||
"health" "50"
|
17
decls/def/monsters/snapbug.def
Normal file
17
decls/def/monsters/snapbug.def
Normal file
|
@ -0,0 +1,17 @@
|
|||
entityDef monster_snapbug
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/snapbug.mdl"
|
||||
"netname" "Snapbug"
|
||||
"health" "25"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"eye_height" "12"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"flying" "1"
|
||||
"fly_offset" "32"
|
||||
|
||||
"speed_walk" "25" // These values are
|
||||
"speed_run" "50" // purely speculative
|
||||
}
|
32
decls/def/monsters/snark.def
Normal file
32
decls/def/monsters/snark.def
Normal file
|
@ -0,0 +1,32 @@
|
|||
entityDef monster_snark
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/w_squeak.mdl"
|
||||
"netname" "Snark"
|
||||
"health" "skill:snark_health"
|
||||
"mins" "-4 -4 0"
|
||||
"maxs" "4 4 8"
|
||||
"eye_height" "12"
|
||||
"team" "3"
|
||||
"propdata" "actor_alien"
|
||||
"speed_walk" "128"
|
||||
"speed_run" "128"
|
||||
"act_idle" "0"
|
||||
"act_rangeAttack1" "2"
|
||||
"act_walk" "3"
|
||||
"act_run" "3"
|
||||
|
||||
"attack_ranged_range" "96"
|
||||
|
||||
// Snark.Deploy
|
||||
"snd_attack" "Snark.Bounce"
|
||||
"snd_pain" "Snark.Die"
|
||||
"snd_death" "Snark.Die"
|
||||
"snd_gib" "Snark.Gibbed"
|
||||
"leap_damage" "skill:snark_dmg_bite"
|
||||
|
||||
events {
|
||||
jump "AddVelocity" "512 0 250"
|
||||
jump "StartSoundDef" "Snark.Squeak"
|
||||
}
|
||||
}
|
22
decls/def/monsters/sphere.def
Normal file
22
decls/def/monsters/sphere.def
Normal file
|
@ -0,0 +1,22 @@
|
|||
entityDef monster_sphere
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/sphere.mdl"
|
||||
"netname" "Vortigaunt Control Sphere"
|
||||
"health" "10"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"eye_height" "32"
|
||||
"team" "2"
|
||||
"propdata" "actor_robot"
|
||||
"flying" "1"
|
||||
"fly_offset" "64"
|
||||
"act_idle" "0"
|
||||
"act_fly" "0"
|
||||
"act_rangeAttack1" "1"
|
||||
"act_arm" "2"
|
||||
"act_disarm" "3"
|
||||
|
||||
"speed_walk" "25" // These values are
|
||||
"speed_run" "50" // purely speculative
|
||||
}
|
17
decls/def/monsters/stukabat.def
Normal file
17
decls/def/monsters/stukabat.def
Normal file
|
@ -0,0 +1,17 @@
|
|||
entityDef monster_stukabat
|
||||
{
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/stukabat.mdl"
|
||||
"netname" "Stukabat"
|
||||
"health" "25"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"eye_height" "64"
|
||||
"team" "2"
|
||||
"propdata" "actor_alien"
|
||||
"lands" "1" // TODO
|
||||
"flying" "1"
|
||||
|
||||
"speed_walk" "25" // These values are
|
||||
"speed_run" "50" // purely speculative
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_tentacle
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/tentacle2.mdl"
|
||||
"netname" "Tentacle"
|
||||
"health" "25"
|
9
decls/def/monsters/tentaclemaw.def
Normal file
9
decls/def/monsters/tentaclemaw.def
Normal file
|
@ -0,0 +1,9 @@
|
|||
entityDef monster_tentaclemaw
|
||||
{
|
||||
"spawnclass" "cycler"
|
||||
"model" "models/maw.mdl"
|
||||
"netname" "Tentacle Maw"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
"propdata" "actor_alien"
|
||||
}
|
6
decls/def/monsters/tripmine.def
Normal file
6
decls/def/monsters/tripmine.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
entityDef monster_tripmine
|
||||
{
|
||||
"spawnclass" "HLTripmine"
|
||||
"snd_precache1" "TripmineGrenade.Charge"
|
||||
"snd_precache2" "TripmineGrenade.Activate"
|
||||
}
|
18
decls/def/monsters/turret.def
Normal file
18
decls/def/monsters/turret.def
Normal file
|
@ -0,0 +1,18 @@
|
|||
entityDef monster_turret
|
||||
{
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/turret.mdl"
|
||||
"netname" "Turret"
|
||||
"health" "skill:turret_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 32"
|
||||
"eye_height" "64"
|
||||
"team" "1"
|
||||
"propdata" "actor_robot"
|
||||
|
||||
"speed_walk" "0"
|
||||
"speed_run" "0"
|
||||
"turn_rate" "0"
|
||||
"use_nav" "0"
|
||||
"bleed" "0"
|
||||
}
|
12
decls/def/monsters/xen_hair.def
Normal file
12
decls/def/monsters/xen_hair.def
Normal file
|
@ -0,0 +1,12 @@
|
|||
entityDef xen_hair
|
||||
{
|
||||
"spawnclass" "ncSurfacePropEntity"
|
||||
"model" "models/hair.mdl"
|
||||
"netname" "Xen Hair"
|
||||
"health" "0"
|
||||
"mins" "-8 -8 0"
|
||||
"maxs" "8 8 32"
|
||||
"propdata" "actor_alien"
|
||||
"frame" "0"
|
||||
// TODO Spawnflags 1 equals synchronized movement
|
||||
}
|
10
decls/def/monsters/xen_plantlight.def
Normal file
10
decls/def/monsters/xen_plantlight.def
Normal file
|
@ -0,0 +1,10 @@
|
|||
entityDef xen_plantlight
|
||||
{
|
||||
"spawnclass" "ncSurfacePropEntity"
|
||||
"model" "models/light.mdl"
|
||||
"netname" "Xen Plant Light"
|
||||
"health" "0"
|
||||
"mins" "-48 -48 0"
|
||||
"maxs" "48 48 32"
|
||||
"propdata" "actor_alien"
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue