Add 0.1s delay on Hidden Dagger's throw for Thief. Allows the player to potentially jump through a target and being able to hit them with it. Fix Stone Elementals facing the incorrect direction while casting stone pillars. Move 2-8 end ring to more sensible area (in front of Chapter 2 boss arena). Reduce Chapter 2 Boss' and Stone Elemental's collision radius to better match the sprite. Add iframe time when hit by a breaking stone pillar's bullet ring to prevent getting obliterated by standing in the center of the bullet ring. Release Build 10261.
This commit is contained in:
parent
efc976758b
commit
ee79ef225b
@ -69,6 +69,7 @@ void Monster::STRATEGY::BREAKING_PILLAR(Monster&m,float fElapsedTime,std::string
|
||||
for(int i=0;i<ConfigInt("Death Ring Bullet Count");i++){
|
||||
const float bulletAngle=((2*PI)/ConfigInt("Death Ring Bullet Count"))*i+bulletAngRandomOffset;
|
||||
CreateBullet(Bullet)(m.GetPos(),vf2d{ConfigFloat("Death Ring Bullet Speed"),bulletAngle}.cart(),ConfigFloat("Death Ring Bullet Size"),ConfigInt("Death Ring Bullet Damage"),m.OnUpperLevel(),false,ConfigPixel("Death Ring Bullet Color"),vf2d{ConfigFloat("Death Ring Bullet Size")/3,ConfigFloat("Death Ring Bullet Size")/3})EndBullet;
|
||||
BULLET_LIST.back()->SetIframeTimeOnHit(0.15f);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
@ -746,6 +746,18 @@ void Player::Update(float fElapsedTime){
|
||||
}
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Thief
|
||||
if(daggerThrowWaitTimer-fElapsedTime<=0.f){
|
||||
daggerThrowWaitTimer=INFINITY;
|
||||
float angleToCursor=atan2(GetWorldAimingLocation(Player::USE_WALK_DIR).y-GetPos().y,GetWorldAimingLocation(Player::USE_WALK_DIR).x-GetPos().x);
|
||||
|
||||
const float daggerLifetime{"Thief.Ability 1.Dagger Range"_F/"Thief.Ability 1.Dagger Speed"_F};
|
||||
|
||||
CreateBullet(Bullet)(GetPos(),vf2d{"Thief.Ability 1.Dagger Speed"_F,angleToCursor}.cart(),"Thief.Ability 1.Dagger Radius"_F,GetAttack()*"Thief.Ability 1.Damage"_I,"dagger.png",OnUpperLevel(),false,daggerLifetime,true,true,WHITE,{1.f,1.f},0.f,"Dagger Hit")EndBullet;
|
||||
}
|
||||
daggerThrowWaitTimer-=fElapsedTime;
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Handle knockup timers
|
||||
if(knockUpTimer>0.f){
|
||||
knockUpTimer=std::max(0.f,knockUpTimer-fElapsedTime);
|
||||
|
@ -366,6 +366,7 @@ private:
|
||||
bool renderedSpriteUsesAdditiveBlending{false};
|
||||
float deadlyDashAdditiveBlendingToggleTimer{};
|
||||
std::unordered_set<std::string>myClass{};
|
||||
float daggerThrowWaitTimer{INFINITY};
|
||||
protected:
|
||||
const float ATTACK_COOLDOWN="Warrior.Auto Attack.Cooldown"_F;
|
||||
const float MAGIC_ATTACK_COOLDOWN="Wizard.Auto Attack.Cooldown"_F;
|
||||
|
@ -142,7 +142,10 @@ void Monster::STRATEGY::STONE_ELEMENTAL(Monster&m,float fElapsedTime,std::string
|
||||
m.target=targetWalkPos;
|
||||
RUN_TOWARDS(m,fElapsedTime,"Run Towards");
|
||||
m.PerformAnimation("STONE PILLAR CAST");
|
||||
m.UpdateFacingDirection(game->GetPlayer()->GetPos());
|
||||
m.UpdateFacingDirection(targetWalkPos);
|
||||
}else{
|
||||
m.PerformAnimation("STONE PILLAR CAST");
|
||||
m.UpdateFacingDirection(m.V(A::LOCKON_POS));
|
||||
}
|
||||
}break;
|
||||
case SHOOT_STONE_CAST:{
|
||||
|
@ -128,11 +128,8 @@ void Thief::InitializeClassAbilities(){
|
||||
p->ghostPositions.push_back(p->GetPos()+vf2d{0,-p->GetZ()});
|
||||
p->ghostFrameTimer=p->RETREAT_GHOST_FRAME_DELAY;
|
||||
p->ghostRemoveTimer=p->RETREAT_GHOST_FRAMES*p->RETREAT_GHOST_FRAME_DELAY;
|
||||
p->daggerThrowWaitTimer="Thief.Ability 1.Dagger Throw Delay"_F;
|
||||
float angleToCursor=atan2(p->GetWorldAimingLocation(Player::USE_WALK_DIR).y-p->GetPos().y,p->GetWorldAimingLocation(Player::USE_WALK_DIR).x-p->GetPos().x);
|
||||
|
||||
const float daggerLifetime{"Thief.Ability 1.Dagger Range"_F/"Thief.Ability 1.Dagger Speed"_F};
|
||||
|
||||
CreateBullet(Bullet)(p->GetPos(),vf2d{"Thief.Ability 1.Dagger Speed"_F,angleToCursor}.cart(),"Thief.Ability 1.Dagger Radius"_F,p->GetAttack()*"Thief.Ability 1.Damage"_I,"dagger.png",p->OnUpperLevel(),false,daggerLifetime,true,true,WHITE,{1.f,1.f},0.f,"Dagger Hit")EndBullet;
|
||||
p->SetAnimationBasedOnTargetingDirection("IDLE",angleToCursor);
|
||||
p->SetState(State::RETREAT);
|
||||
SoundEffect::PlaySFX("Thief.Ability 1.Sound"_S,SoundEffect::CENTERED);
|
||||
|
@ -39,7 +39,7 @@ All rights reserved.
|
||||
#define VERSION_MAJOR 1
|
||||
#define VERSION_MINOR 2
|
||||
#define VERSION_PATCH 3
|
||||
#define VERSION_BUILD 10258
|
||||
#define VERSION_BUILD 10261
|
||||
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
|
@ -1522,7 +1522,7 @@
|
||||
<property name="spawner" type="object" value="23"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="141" name="End Zone" type="EndZone" x="3120" y="378" width="120" height="120">
|
||||
<object id="141" name="End Zone" type="EndZone" x="2982" y="1014" width="288" height="246">
|
||||
<properties>
|
||||
<property name="Upper?" type="bool" value="false"/>
|
||||
</properties>
|
||||
|
@ -752,6 +752,7 @@ Monsters
|
||||
Size = 147%
|
||||
|
||||
XP = 71
|
||||
Collision Radius = 5
|
||||
|
||||
Strategy = Stone Elemental
|
||||
|
||||
@ -1001,6 +1002,8 @@ Monsters
|
||||
#Size of each animation frame
|
||||
SheetFrameSize = 48,48
|
||||
|
||||
Collision Radius = 5
|
||||
|
||||
# Setting this to true means every four rows indicates one animation, the ordering of the directions is: NORTH, EAST, SOUTH, WEST
|
||||
4-Way Spritesheet = True
|
||||
|
||||
|
@ -76,6 +76,7 @@ Thief
|
||||
# The distance the retreat moves the Thief.
|
||||
RetreatDistance = 200
|
||||
Sound = Ranger Retreat
|
||||
Dagger Throw Delay = 0.1s
|
||||
|
||||
#RGB Values. Color 1 is the circle at full cooldown, Color 2 is the color at empty cooldown.
|
||||
Cooldown Bar Color 1 = 64, 0, 0, 192
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user