Inactive/Active ring status based on being in/out of combat.
This commit is contained in:
parent
eeb24934a3
commit
5b28478596
@ -665,7 +665,12 @@ void Crawler::RenderWorld(float fElapsedTime){
|
||||
|
||||
auto RenderZone=[&](geom2d::rect<int>&zone){
|
||||
game->SetDecalMode(DecalMode::ADDITIVE);
|
||||
view.DrawDecal(zone.pos,GFX["finishring.png"].Decal(),vf2d(zone.size)/vf2d(GFX["finishring.png"].Sprite()->Size()),{255,255,255,uint8_t(abs(sin(game->levelTime))*255)});
|
||||
Pixel ringColor={64,255,64,uint8_t(abs(sin(game->levelTime))*255)};
|
||||
if(!player->IsOutOfCombat()){
|
||||
game->SetDecalMode(DecalMode::NORMAL);
|
||||
ringColor.r=ringColor.g=ringColor.b=64;
|
||||
}
|
||||
view.DrawDecal(zone.pos,GFX["finishring.png"].Decal(),vf2d(zone.size)/vf2d(GFX["finishring.png"].Sprite()->Size()),ringColor);
|
||||
game->SetDecalMode(DecalMode::NORMAL);
|
||||
};
|
||||
|
||||
|
||||
@ -277,6 +277,7 @@ bool Monster::Hurt(int damage,bool onUpperLevel,float z){
|
||||
if(game->InBossEncounter()){
|
||||
game->StartBossEncounter();
|
||||
}
|
||||
game->GetPlayer()->ResetLastCombatTime();
|
||||
float mod_dmg=damage;
|
||||
for(Buff&b:GetBuffs(BuffType::DAMAGE_REDUCTION)){
|
||||
mod_dmg-=damage*b.intensity;
|
||||
|
||||
@ -222,6 +222,7 @@ void Player::Update(float fElapsedTime){
|
||||
notificationDisplay.second=std::max(0.f,notificationDisplay.second-fElapsedTime);
|
||||
lastHitTimer=std::max(0.f,lastHitTimer-fElapsedTime);
|
||||
blockTimer=std::max(0.f,blockTimer-fElapsedTime);
|
||||
lastCombatTime=lastCombatTime+fElapsedTime;
|
||||
manaTickTimer-=fElapsedTime;
|
||||
if(castInfo.castTimer>0){
|
||||
castInfo.castTimer-=fElapsedTime;
|
||||
@ -553,6 +554,7 @@ bool Player::Hurt(int damage,bool onUpperLevel,float z){
|
||||
if(hp<=0||HasIframes()||OnUpperLevel()!=onUpperLevel||abs(GetZ()-z)>1) return false;
|
||||
if(GetState()==State::BLOCK)damage*=1-"Warrior.Right Click Ability.DamageReduction"_F;
|
||||
float mod_dmg=damage;
|
||||
lastCombatTime=0;
|
||||
for(Buff&b:GetBuffs(BuffType::DAMAGE_REDUCTION)){
|
||||
mod_dmg-=damage*b.intensity;
|
||||
}
|
||||
@ -750,3 +752,11 @@ void Player::ConsumeMana(int amt){
|
||||
void Player::SetSizeMult(float size){
|
||||
this->size=size;
|
||||
}
|
||||
|
||||
void Player::ResetLastCombatTime(){
|
||||
lastCombatTime=0;
|
||||
}
|
||||
|
||||
bool Player::IsOutOfCombat(){
|
||||
return lastCombatTime>="Player.Out of Combat Time"_F;
|
||||
}
|
||||
@ -91,6 +91,7 @@ private:
|
||||
std::shared_ptr<DamageNumber>damageNumberPtr;
|
||||
void Initialize();
|
||||
float iframe_time=0;
|
||||
float lastCombatTime=0;
|
||||
protected:
|
||||
const float ATTACK_COOLDOWN="Warrior.Auto Attack.Cooldown"_F;
|
||||
const float MAGIC_ATTACK_COOLDOWN="Wizard.Auto Attack.Cooldown"_F;
|
||||
@ -189,6 +190,8 @@ public:
|
||||
Key GetLastReleasedMovementKey();
|
||||
float GetSwordSwingTimer();
|
||||
bool OnUpperLevel();
|
||||
void ResetLastCombatTime();
|
||||
bool IsOutOfCombat();
|
||||
//Triggers when the player has moved.
|
||||
void Moved();
|
||||
virtual ~Player()=default;
|
||||
|
||||
@ -33,7 +33,7 @@ SUCH DAMAGE.
|
||||
#define VERSION_MAJOR 0
|
||||
#define VERSION_MINOR 2
|
||||
#define VERSION_PATCH 1
|
||||
#define VERSION_BUILD 2903
|
||||
#define VERSION_BUILD 2920
|
||||
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
|
||||
@ -12,6 +12,9 @@ Player
|
||||
# How many of any one type of item we can bring to the battlefield max per slot.
|
||||
Item Loadout Limit = 10
|
||||
|
||||
# How many seconds must pass before the player is considered out of combat (meaning they can exit a level)
|
||||
Out of Combat Time = 5.0
|
||||
|
||||
# Each attack will have _N,_E,_S,_W appended to them once read in-game.
|
||||
PLAYER_ANIMATION[0] = WARRIOR_WALK
|
||||
PLAYER_ANIMATION[1] = WARRIOR_IDLE
|
||||
|
||||
@ -39,6 +39,7 @@ Images
|
||||
GFX_SkillOverlayIcon = skill_overlay_icon.png
|
||||
GFX_SkillOverlayIconOverlay = skill_overlay_icon_overlay.png
|
||||
GFX_FinishRing = finishring.png
|
||||
GFX_FinishRingGreen = finishring_green.png
|
||||
|
||||
# Ability Icons
|
||||
GFX_Warrior_BattleCry_Icon = Ability Icons/battlecry.png
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 23 KiB |
BIN
Crawler/assets/finishring_green.png
Normal file
BIN
Crawler/assets/finishring_green.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
Loading…
x
Reference in New Issue
Block a user