Apply PF_CASTSHADOW when player touches patrolling Hyudoro's shadow, darken player to pure black

This commit is contained in:
James R. 2023-09-17 20:07:11 -07:00
parent 5c1332f977
commit 6878c7dd90
5 changed files with 12 additions and 2 deletions

View file

@ -78,7 +78,8 @@ typedef enum
PF_KICKSTARTACCEL = 1<<4, // Accessibility feature: Is accelerate in kickstart mode?
PF_POINTME = 1<<5, // An object is calling for my attention (via Obj_PointPlayersToMobj). Unset every frame!
// 1<<6 free
PF_CASTSHADOW = 1<<6, // Something is casting a shadow on the player
PF_WANTSTOJOIN = 1<<7, // Spectator that wants to join

View file

@ -5936,7 +5936,7 @@ const char *const PLAYERFLAG_LIST[] = {
"KICKSTARTACCEL", // Accessibility feature: Is accelerate in kickstart mode?
"POINTME", // An object is calling for my attention (via Obj_PointPlayersToMobj). Unset every frame!
"\x01", // free: 1<<6 (name un-matchable)
"CASTSHADOW", // Something is casting a shadow on the player
"WANTSTOJOIN", // Spectator that wants to join

View file

@ -7738,6 +7738,8 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
player->cameraOffset = 0;
player->pflags &= ~(PF_CASTSHADOW);
if (player->curshield == KSHIELD_TOP)
{
mobj_t *top = K_GetGardenTop(player);

View file

@ -560,6 +560,8 @@ hyudoro_patrol_hit_player
if (player->hyudorotimer)
return false;
player->pflags |= PF_CASTSHADOW;
// NO ITEM?
if (!player->itemamount)
return false;

View file

@ -28,6 +28,11 @@ INT32 R_ThingLightLevel(mobj_t* thing)
// Darken on every other frame of instawhip cooldown
lightlevel -= 128;
}
if (player->pflags & PF_CASTSHADOW)
{
lightlevel -= 255;
}
}
return lightlevel;