diff --git a/src/d_main.cpp b/src/d_main.cpp index fcf3c104e..19f861692 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -93,7 +93,7 @@ #define ASSET_HASH_TEXTURES_KART 0xb4211b2f32b6a291 #define ASSET_HASH_CHARS_KART 0x1e68a3e01aa5c68b #define ASSET_HASH_MAPS_KART 0x38558ed00da41ce9 -#define ASSET_HASH_MAIN_PK3 0x0427b79b6f27903f +#define ASSET_HASH_MAIN_PK3 0x28ffde2e8c416914 #define ASSET_HASH_MAPPATCH_PK3 0x1745690024efbaf8 #define ASSET_HASH_BONUSCHARS_KART 0x60e6f13d822a7461 #ifdef USE_PATCH_FILE diff --git a/src/h_timers.cpp b/src/h_timers.cpp index 8559aef55..37f2e5875 100644 --- a/src/h_timers.cpp +++ b/src/h_timers.cpp @@ -301,6 +301,12 @@ void K_DisplayItemTimers(void) {qche("K_TIFLMS")}, 1, }, + { // attractionshield + "attractionshield", + stplyr->attractionattack, + {qche("K_TIATTR")}, + 1, + }, }; // insert sortable timers diff --git a/src/k_hud.c b/src/k_hud.c index bb654aed2..dd6d14df7 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -1533,6 +1533,20 @@ static void K_drawKartItem(void) } else if (stplyr->attractioncharge > 0) { + if (leveltime & 2) + { + if (stplyr->attractioncharge >= ATTRACTIONCHARGETIME) + { + colormode = TC_BLINK; + localcolor = SKINCOLOR_WHITE; + } + localpatch = K_GetCachedItemPatch(KITEM_THUNDERSHIELD, tiny, 0); + } + else + { + localpatch = kp_nodraw; + } + itembar = FixedDiv(stplyr->attractioncharge, ATTRACTIONCHARGETIME); } else if (stplyr->bricktimer > 0) diff --git a/src/k_kart.c b/src/k_kart.c index 42c41d993..da1257d30 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -11844,16 +11844,15 @@ void K_KartAttractHomingAttack(player_t *player) { effectangle = R_PointToAngle2(0,0, player->mo->momx, player->mo->momy); } - mo->angle = P_RandomRange(-30, 30)*ANG1 + effectangle - ANGLE_180; + mo->angle = P_RandomRange(-30, 30)*ANG1 + (effectangle - ANGLE_180); mo->fuse = P_RandomRange(10, 20); P_SetScale(mo, player->mo->scale/2); mo->destscale = mo->scale/3; P_SetTarget(&mo->target, player->mo); P_SetMobjState(mo, S_KLIT1); - mo->renderflags |= RF_ADD|RF_FULLBRIGHT|RF_TRANS30; + mo->renderflags |= RF_ADD|RF_FULLBRIGHT|RF_TRANS50; mo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_THOK); - P_SetTarget(&mo->target, player->mo); P_SetMobjState(mo, S_KSPARK1); mo->renderflags |= RF_ADD|RF_FULLBRIGHT|RF_TRANS30;