User:Cvoxalury/Readiness: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Started a draft of Readiness article. Surprised it's been so long without it...)
 
mNo edit summary
Line 1: Line 1:
==Overview==
'''Readiness''' is an [[AI]] system in {{source|4.1}} available to the '''Player Companion''' class ({{code|CNPC_PlayerCompanion}}) and its inheritors (namely, [[npc_citizen]], [[npc_alyx]], [[npc_barney]]) since {{Hl2ep1|4.1}}.
'''Readiness''' is an [[AI]] system in {{source|4.1}} available to the '''Player Companion''' class ({{code|CNPC_PlayerCompanion}}) and its inheritors (namely, [[npc_citizen]], [[npc_alyx]], [[npc_barney]]) since {{Hl2ep1|4.1}}.


The purpose of readiness is to modify the [[activity|activities]], [[sequence]]s, and facets of behavior of a particular NPC depending on their <b>readiness level</b>.
The purpose of readiness is to modify the [[activity|activities]], [[sequence]]s, and facets of behavior of a particular NPC depending on their <b>readiness level</b>.
 
__TOC__
== Readiness levels ==
The levels are:
The levels are:


Line 16: Line 18:
</source>
</source>


== Activity remapping ==
The activities are remapped based on {{path|<nowiki>/scripts/actremap</nowiki>|txt}}
The activities are remapped based on {{path|<nowiki>/scripts/actremap</nowiki>|txt}}


Line 377: Line 380:
}</source>
}</source>
|}}
|}}
== In code ==
== Effects on AI behavior ==
== Using in maps ==

Revision as of 17:54, 11 July 2024

Overview

Readiness is an AI system in Source Source available to the Player Companion class (CNPC_PlayerCompanion) and its inheritors (namely, npc_citizen, npc_alyx, npc_barney) since Half-Life 2: Episode One Half-Life 2: Episode One.

The purpose of readiness is to modify the activities, sequences, and facets of behavior of a particular NPC depending on their readiness level.

Readiness levels

The levels are:

enum AIReadiness_t
{
	AIRL_PANIC = -2,
	AIRL_STEALTH = -1,
	AIRL_RELAXED = 0,
	AIRL_STIMULATED,
	AIRL_AGITATED,
};

Activity remapping

The activities are remapped based on 🖿/scripts/actremap.txt


Full contents of Ep1's actremap.txt 
//"ACT_IDLE" - This is the name of the original activity
//{
//	"remapactivity" "ACT_IDLE_RELAXED" - This is the name of the activy we're going to remap to.
//	"readiness"	"AIRL_STIMULATED" - This is the value of the readiness level
//	"aiming"	"TRS_FALSE" - Does this activity aim a weapon
//}

// "extra"
// Use extra to add extra information that is specific to certain classes.
// For example, citizens use readiness and aiming so they specify the values there.
// Valid readiness level names:
//	AIRL_PANIC
//	AIRL_STEALTH
//	AIRL_RELAXED
//	AIRL_STIMULATED
//	AIRL_AGITATED

// Valid aiming values names:
// 	TRS_FALSE - This animation doesn't aim
//	TRS_TRUE - This animation needs to aim
//	TRS_NONE - Don't care

"npc_playercompanion"
{
	//ACT_IDLE
	"ACT_IDLE"
	{
		"remapactivity" "ACT_IDLE_RELAXED"
		
		"extra"
		{
			"readiness"	"AIRL_RELAXED"
			"aiming"	"TRS_NONE"
			"weaponrequired" "TRUE"
		}

	}
	"ACT_IDLE"
	{
		"remapactivity" "ACT_IDLE_STIMULATED"
		
		"extra"
		{
			"readiness"	"AIRL_STIMULATED"
			"aiming"	"TRS_FALSE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_IDLE"
	{
		"remapactivity" "ACT_IDLE_AIM_STIMULATED"
	
		"extra"
		{
			"readiness"	"AIRL_STIMULATED"
			"aiming"	"TRS_TRUE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_IDLE"
	{
		"remapactivity" "ACT_IDLE_AGITATED"
	
		"extra"
		{
			"readiness"	"AIRL_AGITATED"
			"aiming"	"TRS_NONE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_IDLE"
	{
		"remapactivity" "ACT_IDLE_STEALTH"
	
		"extra"
		{
			"readiness"	"AIRL_STEALTH"
			"aiming"	"TRS_NONE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_IDLE"
	{
		"remapactivity" "ACT_CROUCH_PANICKED"
	
		"extra"
		{
			"readiness"	"AIRL_PANIC"
			"aiming"	"TRS_NONE"
			"weaponrequired" "FALSE"
		}
	}


	//ACT_IDLE_ANGRY
	"ACT_IDLE_ANGRY"
	{
		"remapactivity" "ACT_IDLE_RELAXED"
	
		"extra"
		{
			"readiness"	"AIRL_RELAXED"
			"aiming"	"TRS_NONE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_IDLE_ANGRY"
	{
		"remapactivity" "ACT_IDLE_STIMULATED"
		
		"extra"
		{
			"readiness"	"AIRL_STIMULATED"
			"aiming"	"TRS_FALSE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_IDLE_ANGRY"
	{
		"remapactivity" "ACT_IDLE_AIM_STIMULATED"
	
		"extra"
		{
			"readiness"	"AIRL_STIMULATED"
			"aiming"	"TRS_TRUE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_IDLE_ANGRY"
	{
		"remapactivity" "ACT_IDLE_AGITATED"
	
		"extra"
		{
			"readiness"	"AIRL_AGITATED"
			"aiming"	"TRS_NONE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_IDLE_ANGRY"
	{
		"remapactivity" "ACT_IDLE_STEALTH"
	
		"extra"
		{
			"readiness"	"AIRL_STEALTH"
			"aiming"	"TRS_NONE"
			"weaponrequired" "TRUE"
		}
	}

	//ACT_CROUCHIDLE
	"ACT_CROUCHIDLE"
	{
		"remapactivity" "ACT_CROUCHIDLE_STIMULATED"
		
		"extra"
		{
			"readiness"	"AIRL_RELAXED"
			"aiming"	"TRS_FALSE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_CROUCHIDLE"
	{
		"remapactivity" "ACT_CROUCHIDLE_STIMULATED"
		
		"extra"
		{
			"readiness"	"AIRL_STIMULATED"
			"aiming"	"TRS_FALSE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_CROUCHIDLE"
	{
		"remapactivity" "ACT_CROUCHIDLE_AIM_STIMULATED"
	
		"extra"
		{
			"readiness"	"AIRL_STIMULATED"
			"aiming"	"TRS_TRUE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_CROUCHIDLE"
	{
		"remapactivity" "ACT_CROUCHIDLE_AGITATED"
	
		"extra"
		{
			"readiness"	"AIRL_AGITATED"
			"aiming"	"TRS_NONE"
			"weaponrequired" "TRUE"
		}
	}

	//ACT_WALK
	"ACT_WALK"
	{
		"remapactivity" "ACT_WALK_RELAXED"
		
		"extra"
		{
			"readiness"	"AIRL_RELAXED"
			"aiming"	"TRS_NONE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_WALK"
	{
		"remapactivity" "ACT_WALK_STIMULATED"
		
		"extra"
		{
			"readiness"	"AIRL_STIMULATED"
			"aiming"	"TRS_FALSE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_WALK"
	{
		"remapactivity" "ACT_WALK_AIM_STIMULATED"
		
		"extra"
		{
			"readiness"	"AIRL_STIMULATED"
			"aiming"	"TRS_TRUE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_WALK"
	{
		"remapactivity" "ACT_WALK_AGITATED"
		
		"extra"
		{
			"readiness"	"AIRL_AGITATED"
			"aiming"	"TRS_FALSE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_WALK"
	{
		"remapactivity" "ACT_WALK_STEALTH"
		
		"extra"
		{
			"readiness"	"AIRL_STEALTH"
			"aiming"	"TRS_FALSE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_WALK"
	{
		"remapactivity" "ACT_WALK_AIM_STEALTH"
		
		"extra"
		{
			"readiness"	"AIRL_STEALTH"
			"aiming"	"TRS_TRUE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_WALK"
	{
		"remapactivity" "ACT_WALK_PANICKED"
		
		"extra"
		{
			"readiness"	"AIRL_PANIC"
			"aiming"	"TRS_NONE"
			"weaponrequired" "FALSE"
		}
	}


	//ACT_RUN
	"ACT_RUN"
	{
		"remapactivity" "ACT_RUN_RELAXED"
		
		"extra"
		{
			"readiness"	"AIRL_RELAXED"
			"aiming"	"TRS_NONE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_RUN"
	{
		"remapactivity" "ACT_RUN_STIMULATED"
		
		"extra"
		{
			"readiness"	"AIRL_STIMULATED"
			"aiming"	"TRS_FALSE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_RUN"
	{
		"remapactivity" "ACT_RUN_AIM_STIMULATED"
		
		"extra"
		{
			"readiness"	"AIRL_STIMULATED"
			"aiming"	"TRS_TRUE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_RUN"
	{
		"remapactivity" "ACT_RUN_AGITATED"
		
		"extra"
		{
			"readiness"	"AIRL_AGITATED"
			"aiming"	"TRS_FALSE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_RUN"
	{
		"remapactivity" "ACT_RUN_STEALTH"
		
		"extra"
		{
			"readiness"	"AIRL_STEALTH"
			"aiming"	"TRS_FALSE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_RUN"
	{
		"remapactivity" "ACT_RUN_AIM_STEALTH"
		
		"extra"
		{
			"readiness"	"AIRL_STEALTH"
			"aiming"	"TRS_TRUE"
			"weaponrequired" "TRUE"
		}
	}
	"ACT_RUN"
	{
		"remapactivity" "ACT_RUN_PANICKED"
		
		"extra"
		{
			"readiness"	"AIRL_PANIC"
			"aiming"	"TRS_NONE"
			"weaponrequired" "FALSE"
		}
	}
}

In code

Effects on AI behavior

Using in maps