/** attacker */ i(entity, MUTATOR_ARGV_1_entity) \
/** target */ i(entity, MUTATOR_ARGV_2_entity) \
/** deathtype */ i(float, MUTATOR_ARGV_3_float) \
- /** damage */ i(float, MUTATOR_ARGV_4_float) \
+ /** damage */ i(float, MUTATOR_ARGV_4_float) \
/** damage */ o(float, MUTATOR_ARGV_4_float) \
/**/
MUTATOR_HOOKABLE(PlayerDies, EV_PlayerDies);
/**/ o(float, MUTATOR_ARGV_2_float) \
/** number of bots in a team */ i(float, MUTATOR_ARGV_3_float) \
/**/ o(float, MUTATOR_ARGV_3_float) \
- /** lowest scoring player in a team */ i(entity, MUTATOR_ARGV_4_entity) \
+ /** lowest scoring human in a team */ i(entity, MUTATOR_ARGV_4_entity) \
/**/ o(entity, MUTATOR_ARGV_4_entity) \
/** lowest scoring bot in a team */ i(entity, MUTATOR_ARGV_5_entity) \
/**/ o(entity, MUTATOR_ARGV_5_entity) \
MUT_ITEMTOUCH_PICKUP // return this flag to have the item "picked up" and taken even after mutator handled it
};
+/** called after the item has been touched. */
+#define EV_ItemTouched(i, o) \
+ /** item */ i(entity, MUTATOR_ARGV_0_entity) \
+ /** toucher */ i(entity, MUTATOR_ARGV_1_entity) \
+ /**/
+MUTATOR_HOOKABLE(ItemTouched, EV_ItemTouched);
+
+/** Called when the amount of entity resources changes. Can be used to override
+resource limit. */
+#define EV_GetResourceLimit(i, o) \
+ /** checked entity */ i(entity, MUTATOR_ARGV_0_entity) \
+ /** resource type */ i(int, MUTATOR_ARGV_1_int) \
+ /** limit */ i(float, MUTATOR_ARGV_2_float) \
+ /**/ o(float, MUTATOR_ARGV_2_float) \
+ /**/
+MUTATOR_HOOKABLE(GetResourceLimit, EV_GetResourceLimit);
+
+/** Called when the amount of resource of an entity changes. See RESOURCE_*
+constants for resource types. Return true to forbid the change. */
+#define EV_SetResourceAmount(i, o) \
+ /** checked entity */ i(entity, MUTATOR_ARGV_0_entity) \
+ /** resource type */ i(int, MUTATOR_ARGV_1_int) \
+ /**/ o(int, MUTATOR_ARGV_1_int) \
+ /** amount */ i(float, MUTATOR_ARGV_2_float) \
+ /**/ o(float, MUTATOR_ARGV_2_float) \
+ /**/
+MUTATOR_HOOKABLE(SetResourceAmount, EV_SetResourceAmount);
+
+/** Called when entity is being given some resource. See RESOURCE_* constants
+for resource types. Return true to forbid giving. */
+#define EV_GiveResource(i, o) \
+ /** receiver */ i(entity, MUTATOR_ARGV_0_entity) \
+ /** resource type */ i(int, MUTATOR_ARGV_1_int) \
+ /**/ o(int, MUTATOR_ARGV_1_int) \
+ /** amount */ i(float, MUTATOR_ARGV_2_float) \
+ /**/ o(float, MUTATOR_ARGV_2_float) \
+ /**/
+MUTATOR_HOOKABLE(GiveResource, EV_GiveResource);
+
/** called at when a player connect */
#define EV_ClientConnect(i, o) \
/** player */ i(entity, MUTATOR_ARGV_0_entity) \
MUTATOR_HOOKABLE(WantWeapon, EV_WantWeapon);
#define EV_AddPlayerScore(i, o) \
- /** score field */ i(PlayerScoreField, MUTATOR_ARGV_0_entity) \
+ /** score field */ i(entity, MUTATOR_ARGV_0_entity) \
/** score */ i(float, MUTATOR_ARGV_1_float) \
/**/ o(float, MUTATOR_ARGV_1_float) \
/** player */ i(entity, MUTATOR_ARGV_2_entity) \
/**/
MUTATOR_HOOKABLE(AddPlayerScore, EV_AddPlayerScore);
+#define EV_AddedPlayerScore(i, o) \
+ /** score field */ i(entity, MUTATOR_ARGV_0_entity) \
+ /** score */ i(float, MUTATOR_ARGV_1_float) \
+ /** player */ i(entity, MUTATOR_ARGV_2_entity) \
+ /**/
+MUTATOR_HOOKABLE(AddedPlayerScore, EV_AddPlayerScore);
+
#define EV_GetPlayerStatus(i, o) \
/** player */ i(entity, MUTATOR_ARGV_0_entity) \
/**/