diff --git a/base.fgd b/base.fgd index b002f16..520ef3e 100644 --- a/base.fgd +++ b/base.fgd @@ -2850,6 +2850,12 @@ 5 : "Channel 5 (warning: may be used by some HUD elements)" ] master(target_destination) : "Master" : : "Legacy support: The name of a master entity. If the master hasn't been activated, this entity will not activate." + + autobreak(choices) : "Automatically break lines" : 0 : "Allows text to automatically shift to the next line whenever it can't fit on a player's screen. This accounts for a player's aspect ratio and adds hyphens when necessary." = + [ + 0: "No" + 1: "Yes" + ] // Inputs input Display(void) : "Display the message text." @@ -2931,6 +2937,7 @@ // Inputs input LightOn(void) : "Turn the spotlight on." input LightOff(void) : "Turn the spotlight off" + input LightToggle(void) : "Toggles the spotlight on or off" // outputs output OnLightOn(void) : "Fires when light turns on." @@ -7978,7 +7985,7 @@ @SolidClass base(Targetname, Parentname) = func_precipitation : "A brush entity that creates rain and snow inside its volume." [ - renderamt(integer) : "Density (0-100%)" : 5 + renderamt(integer) : "Density (0-100%)" : 5 : "How dense the precipitation should be. This can be changed later with the 'Alpha' input." rendercolor(color255) : "Color (R G B)" : "100 100 100" preciptype(choices) : "Precipitation Type" : 0 = [ @@ -7986,6 +7993,16 @@ 1 : "Snow" 2 : "Ash" 3 : "Snowfall" + 4 : "Particle Rain" + 5 : "Particle Ash" + 6 : "Particle Rainstorm" + 7 : "Particle Snow" + ] + + spawnflags(flags) = + [ + 1 : "[1] Particle types only: Clamp precipitation to brush bounds" : 1 + 2 : "[2] Particle types only: Suppress outer particle (recommended if clamping)" : 1 ] ] @@ -8031,11 +8048,24 @@ output OnDeath(void) : "Fires when the target is killed." ] -@PointClass = func_fish_pool : "Creates a school of interactive fish that swim near this entity." +@PointClass sphere(max_range) sphere(LoudPanicRange) sphere(QuietPanicRange) = func_fish_pool : "Creates a school of interactive fish that swim near this entity." [ model(studio) : "World model" : "models/Junkola.mdl" + skin(integer) : "Skin" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to make each fish use that skin instead of the default." fish_count(integer) : "Fish Count" : 10 : "Number of Fish in this Pool" max_range(float) : "Max Range" : 150 : "How far away a Fish can wander (max 255)" + + LoudPanicRange(float) : "Loud Panic Range" : 500 : "How far away an event has to be to make the fish in this pool panic." + QuietPanicRange(float) : "Quiet Panic Range" : 75 : "How far away a quiet event (a footstep) has to be to make the fish in this pool panic." + + // Inputs + input SpawnFish(void) : "Spawns an additonal fish. This ignores the fish count keyvalue." + input PanicLoudFromPoint(vector) : "Causes a loud panic event at the specified location vector." + input PanicQuietFromPoint(vector) : "Causes a quiet panic event at the specified location vector." + input Skin(integer) : "Changes the fish skin to the specified number." + + // Outputs + output OnSpawnFish(ehandle) : "Fires when a fish is spawned, passing the fish as the activator." ] @@ -8469,8 +8499,12 @@ 256: "[256] Affects Ladders (Half-Life 2)" : 0 ] - speed(integer) : "Speed of Push" : 40 : "The speed at which to push entities away, in inches / second." + speed(integer) : "Speed of Push" : 40 : "The speed at which to push entities away, in units / second." alternateticksfix(float) : "Scale force for alternate ticks" : "0" : "If nonzero, scale the force by this amount when running with alternate ticks. This fixes problems with an overly large force due to the longer frametime on when running with sv_alternateticks 1." + + // Inputs + input SetSpeed(float) : "Set the speed at which to push entities away." + input SetPushDir(vector) : "Set the angles indicating the direction to push touched entities." ] @SolidClass base(Trigger, Angles) = trigger_wind : diff --git a/halflife2.fgd b/halflife2.fgd index 7c2dbde..e39310e 100644 --- a/halflife2.fgd +++ b/halflife2.fgd @@ -65,6 +65,12 @@ ] ] +@BaseClass = PolicingNPC +[ + // Inputs + input SetPoliceGoal(target_destination) : "Causes the NPC to be assigned to the specified ai_goal_police. Pass no parameter to clear the goal." +] + @BaseClass base(NewGrenadeUser) = PlayerCompanion [ input OutsideTransition(void) : "Use this input to teleport the NPC to a hintnode with the Player Squad Transition Point hint type." @@ -282,8 +288,10 @@ input SetAngry(void) : "Causes the camera to become angry as if it has seen something upsetting." input SetIdle(void) : "Causes the camera to calm down if it is angry." - output OnFoundPlayer(string) : "Fired when the player is spotted within the inner radius" + output OnFoundPlayer(string) : "Fired when the player is spotted within the inner radius." output OnFoundEnemy(void) : "Fired when a non-player enemy is spotted within the inner radius." + output OnLostPlayer(void) : "Fired when the tracked player spotted within the inner radius has been lost. Usually due to the player leaving the inner radius, or because the player was killed." + output OnLostEnemy(void) : "Fired when a non-player enemy spotted within the inner radius has been lost. Usually due to the enemy leaving the inner radius, or because the enemy was killed/removed." ] @@ -889,7 +897,7 @@ -@NPCClass base(TalkNPC, PlayerCompanion, RappelNPC) studio() = npc_citizen : "Citizen" +@NPCClass base(TalkNPC, PlayerCompanion, RappelNPC, PolicingNPC) studio() = npc_citizen : "Citizen" [ spawnflags(Flags) = @@ -1076,7 +1084,7 @@ output OnPlayerUse(void) : "Fires when a player +USEs Barney" ] -@BaseClass base(BaseNPC, RappelNPC, GrenadeUser) = BaseCombine +@BaseClass base(BaseNPC, RappelNPC, GrenadeUser, PolicingNPC) = BaseCombine [ additionalequipment(choices) : "Weapons" : "weapon_smg1" = [ @@ -1149,7 +1157,7 @@ "3" : "Grenade Happy" ] - usemarch(choices) : "Walk Easy" : "0" : "When true, will use a variety of more casual walking animations instead of the standard walk. For use in crowds. WARNING: this animation only has a north component. For use under very special circumstances only." = + usemarch(choices) : "Use March" : "0" : "When true, will use a special walking animation which blends itself between the idle walking animation and the regular walking animation, allowing for a variety of casual walking animations instead of the standard walk. Used in EP2 for the soldiers in the bridge convoy. WARNING: This animation only has a north component, so it can't sidestep or walk backwards. This keyvalue was previously named 'Walk Easy', but it was changed to avoid confusion with ACT_WALK_EASY, the main idle walking animation." = [ "0" : "No" "2" : "Yes" @@ -2003,7 +2011,7 @@ ] -@NPCClass base(BaseNPC,RappelNPC,NewGrenadeUser) studio() = npc_metropolice : "MetroPolice" +@NPCClass base(BaseNPC,RappelNPC,NewGrenadeUser,PolicingNPC) studio() = npc_metropolice : "MetroPolice" [ model(studio) : "Model" : "models/police.mdl" : "The model of this npc_metropolice. Keep in mind this overrides the 'Efficient' spawnflag which sets the model to police_cheaple.mdl." @@ -2049,7 +2057,6 @@ // Inputs input DisableManhackToss(void) : "Disables manhack toss" input EnableManhackToss(void) : "Enables manhack toss (which had been disabled by the spawnflag or input)" - input SetPoliceGoal(target_destination) : "Causes the NPC to be assigned to the specified ai_goal_police. Pass no parameter to clear the goal." input ActivateBaton(void) : "Set the baton to active" input AdministerJustice(void) : "Orders this NPC to administer justice to the player as if they hit this NPC with a can or something. If this NPC cannot respond, it will look for another npc_metropolice to do it." input SetWarnings(integer) : "Sets the number of warnings this NPC has given to the player." @@ -4319,6 +4326,16 @@ @PointClass base(Weapon) studio("models/weapons/W_annabelle.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_annabelle: "Annabelle (Grigori)" [] @PointClass base(Weapon) studio("models/weapons/w_slam.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_slam: "A tripmine/satchel hybrid from HL2:MP.\n\nCome on and slam, and welcome to the jam!\nCome on and slam, if you wanna jam!" [] +// TODO: Move to its own FGD? Needs to access Weapon base class somehow +@BaseClass color(0 0 220) base(Weapon, Studiomodel) sphere(fademindist) sphere(fademaxdist) = CustomScriptedWeapon +[ + vscripts_client(string) : "Client-side Entity Scripts" : "" : "Name(s) of script files that are executed on the client. Weapons need to have a clientside counterpart for prediction in multiplayer, but this is not needed in singleplayer mapping." + + weapondatascript_name(string) : "Weapon Script Name" : "" : "Name of the weapon script this entity should use. Uses the classname (weapon_custom_scripted1) by default." +] + +@PointClass base(CustomScriptedWeapon) studioprop() sphere(fademindist) sphere(fademaxdist) = weapon_custom_scripted1: "Scripted Weapon 1" [] + @PointClass base(Targetname, Parentname, Angles, RenderFields, DamageFilter) studio( "models/weapons/w_slam.mdl" ) sphere(DmgRadius) = npc_tripmine : "S.L.A.M. Tripmine" [ PowerUpTime(float) : "Power Up Time" : "2.0" : "How much time this tripmine takes to power up after being activated."