Mentrillum / Slender-Fortress-Modified-Versions

A modification of Team Fortress 2 based on the game Slender: The Eight Pages.
GNU General Public License v3.0
34 stars 23 forks source link

Map Entities Update (Round 2) #30

Closed KitRifty closed 3 years ago

KitRifty commented 3 years ago

Round 2. Fight!

A much smaller update this time. These changes come after much feedback from the folks at Glub's, along with a couple of fixes found while making this PR.

sf2_boss_maker

This adds a new entity, sf2_boss_maker. It is like npc_maker in regular HL2 maps but for bosses. It has options to set max live bosses, set an optional spawn radius for position variation, and even supports custom spawn animations, customizable with playback rate and even wait time.

Here's its entry within the .fgd:

profile(string) : "Boss Profile" : "" : "The name of the boss profile to spawn."
spawncount(integer) : "Spawn Count" : 1 : "Amount of bosses to spawn at once."
spawnradius(float) : "Spawn Radius" : "0.0" : "If set, will spawn the boss in a random point located around this entity. NOTE: Bosses will spawn around in a 2D flat circle, rather than a sphere. This also does not do space checking so make sure that the entity has enough room to spawn."
maxlive(integer) : "Max Live Children" : -1 : "The maximum amount of bosses that can exist at once from this entity. -1 = no limit"
spawndestination(target_destination) : "Spawn Destination" : "" : "If set, bosses will spawn at this entity."
spawnanim(string) : "Spawn Animation" : "" : "If set, boss will play this animation upon spawning. Only for Chaser bosses."
spawnanimrate(float) : "Spawn Animation Playback Rate" : "1.0" : "The playback rate of the spawn animation."
spawnanimtime(float) : "Spawn Animation Duration" : "0.0" : "How long the boss should play its animation."

spawnflags(flags) =
[
    1 : "Do Not Drop" : 0
    2 : "Don't spawn - add only" : 0
    4 : "Is Fake" : 0
    8 : "No Teleport" : 0
    16 : "Attack Waiters" : 0
    32 : "No Companions" : 0
    64 : "No Spawn Sound" : 0
    128 : "No Copies" : 0
]

input Spawn(void) : "Spawns bosses at this entity. OnSpawn output is fired for each successful spawn."
input SetBossProfile(string) : "Sets the boss profile name to spawn."
input SetSpawnRadius(float) : "Sets the spawn radius of this entity."
input SetMaxLiveChildren(integer) : "Sets the maximum amount of bosses that can exist at once from this entity."
input SetSpawnDestination(string) : "Sets the spawn destination."
input RespawnAll(void) : "Respawns all active bosses created by this entity."
input DespawnAll(void) : "Despawns all bosses created by this entity."
input RemoveAll(void) : "Removes all bosses created by this entity."
input SetSpawnAnimation(string) : "Sets the spawn animation."
input SetSpawnAnimationPlaybackRate(float) : "Sets the spawn animation's playback rate."
input SetSpawnAnimationDuration(float) : "Sets the spawn animation's duration."

.fgd Changes

The .fgd file has also been updated. Some changes in the .fgd include erasing of Range 2-4's default values in sf2_info_page_music (hitting Apply caused the default values to reappear, which isn't ideal for maps that don't use a minimum of 4 ranges), and the addition of Private's own exclusive entities.

Both Modified and Private now share the same .fgd file, and map creators can create maps for either version, or both if desired. Information in the .fgd has been properly annotated for being either Modified or Private exclusive.

Other Changes