Merge with remote master
Some checks failed
Emscripten Build / Build_and_Deploy_Web_Build (push) Failing after 5m12s
Some checks failed
Emscripten Build / Build_and_Deploy_Web_Build (push) Failing after 5m12s
This commit is contained in:
parent
a658a7ddd6
commit
7f086e4a4f
103
Adventures in Lestoria/SkeletonBarbarian.cpp
Normal file
103
Adventures in Lestoria/SkeletonBarbarian.cpp
Normal file
@ -0,0 +1,103 @@
|
||||
#pragma region License
|
||||
/*
|
||||
License (OLC-3)
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Copyright 2026 Amy Sigona <sigonasr2@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions or derivations of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions or derivative works in binary form must reproduce the above
|
||||
copyright notice. This list of conditions and the following disclaimer must be
|
||||
reproduced in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software without specific
|
||||
prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
Portions of this software are copyright © 2024 The FreeType
|
||||
Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
|
||||
All rights reserved.
|
||||
*/
|
||||
#pragma endregion
|
||||
#include"DEFINES.h"
|
||||
#include"AdventuresInLestoria.h"
|
||||
#include"Monster.h"
|
||||
#include"MonsterStrategyHelpers.h"
|
||||
|
||||
INCLUDE_game
|
||||
|
||||
using A=Attribute;
|
||||
|
||||
void Monster::STRATEGY::SKELETON_BARBARIAN(Monster&m,float fElapsedTime,std::string strategy){
|
||||
enum Phase{
|
||||
INITIALIZE,
|
||||
NORMAL,
|
||||
WINDUP_WHIRLWIND,
|
||||
WHIRLWIND,
|
||||
};
|
||||
switch(PHASE()){
|
||||
case INITIALIZE:{
|
||||
m.F(A::ATTACK_COOLDOWN)=util::random_range(ConfigFloatArr("Whirlwind Starting Cooldown",0),ConfigFloatArr("Whirlwind Starting Cooldown",1));
|
||||
SETPHASE(NORMAL);
|
||||
}break;
|
||||
case NORMAL:{
|
||||
m.F(A::ATTACK_COOLDOWN)-=fElapsedTime;
|
||||
if(m.F(A::ATTACK_COOLDOWN)<=0.f&&m.GetDistanceFrom(game->GetPlayer()->GetPos())<=ConfigFloat("Whirlwind Attack Range")){
|
||||
vf2d aimingTarget{game->GetPlayer()->GetPos()};
|
||||
if(aimingTarget==m.GetPos()){ //Handle edge case.
|
||||
aimingTarget=m.GetPos()+vf2d{1.f,util::random(2*PI)}.cart();
|
||||
}
|
||||
m.V(A::PATH_DIR)=util::pointTo(m.GetPos(),aimingTarget);
|
||||
m.PerformAnimation("SPIN",m.V(A::LOCKON_POS));
|
||||
m.F(A::CASTING_TIMER)=ConfigFloat("Whirlwind Chargeup Time");
|
||||
m.AddBuff(BuffType::SPEEDBOOST,ConfigFloat("Whirlwind Spin Time"),ConfigFloat("Whirlwind Bonus Movespd")/100.f);
|
||||
SETPHASE(WINDUP_WHIRLWIND);
|
||||
break;
|
||||
}
|
||||
GOBLIN_DAGGER(m,fElapsedTime,"Goblin Dagger");
|
||||
}break;
|
||||
case WINDUP_WHIRLWIND:{
|
||||
m.F(A::CASTING_TIMER)-=fElapsedTime;
|
||||
if(m.F(A::CASTING_TIMER)<=0.f){
|
||||
m.F(A::CHASE_TIMER)=0.f;
|
||||
m.PerformAnimation("SPINNING");
|
||||
SETPHASE(WHIRLWIND);
|
||||
}
|
||||
}break;
|
||||
case WHIRLWIND:{
|
||||
m.F(A::CHASE_TIMER)+=fElapsedTime;
|
||||
if(m.F(A::CHASE_TIMER)>=ConfigFloat("Whirlwind Spin Time")){
|
||||
SETPHASE(NORMAL);
|
||||
m.F(A::ATTACK_COOLDOWN)=ConfigFloat("Whirlwind Attack Cooldown");
|
||||
m.PerformIdleAnimation();
|
||||
}
|
||||
m.MoveForward(m.V(A::PATH_DIR),fElapsedTime);
|
||||
const HurtList hurtTargets{game->Hurt(m.GetPos(),ConfigFloat("Whirlwind Radius")/100.f*24.f,m.GetAttack(),m.OnUpperLevel(),m.GetZ(),HurtType::PLAYER)};
|
||||
for(auto&[target,isHurt]:hurtTargets){
|
||||
if(std::holds_alternative<Player*>(target)){
|
||||
(std::get<Player*>(target))->ApplyIframes(0.5f);
|
||||
}else ERR("WARNING! Somehow ended up with a non-player entity for whirlwind damage check! THIS SHOULD NOT BE HAPPENING!")
|
||||
}
|
||||
game->ProximityKnockback(m.GetPos(),ConfigFloat("Whirlwind Radius")/100.f*24.f,ConfigFloat("Whirlwind Knockback Amount"),HurtType::MONSTER|HurtType::PLAYER);
|
||||
}break;
|
||||
default:ERR(std::format("WARNING!! Trying to use phase {} in Skeleton Barbarian Strategy code. Phase {} DOES NOT EXIST!",PHASE(),PHASE()));
|
||||
}
|
||||
if(m.GetHealth()<ConfigInt("Hasten Buff Threshold")&&!m.HasBuff(BuffType::HASTEN))m.AddBuff(BuffType::HASTEN,INFINITE,ConfigFloat("Hasten Buff Potency")/100.f);
|
||||
|
||||
}
|
||||
43
Adventures in Lestoria/_RunRight.cpp
Normal file
43
Adventures in Lestoria/_RunRight.cpp
Normal file
@ -0,0 +1,43 @@
|
||||
#pragma region License
|
||||
/*
|
||||
License (OLC-3)
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Copyright 2026 Amy Sigona <sigonasr2@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions or derivations of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions or derivative works in binary form must reproduce the above
|
||||
copyright notice. This list of conditions and the following disclaimer must be
|
||||
reproduced in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software without specific
|
||||
prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
Portions of this software are copyright © 2024 The FreeType
|
||||
Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
|
||||
All rights reserved.
|
||||
*/
|
||||
#pragma endregion
|
||||
|
||||
#include "Monster.h"
|
||||
|
||||
void Monster::STRATEGY::_RUN_RIGHT(Monster&m,float fElapsedTime,std::string strategy){
|
||||
m.MoveForward({1.f,0.f},fElapsedTime);
|
||||
}
|
||||
32
Adventures in Lestoria/assets/Campaigns/Testing_Map.tmx
Normal file
32
Adventures in Lestoria/assets/Campaigns/Testing_Map.tmx
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.10" tiledversion="1.10.2" class="Map" orientation="orthogonal" renderorder="right-down" width="24" height="24" tilewidth="24" tileheight="24" infinite="0" nextlayerid="2" nextobjectid="1">
|
||||
<tileset firstgid="1" source="../maps/Tilesheet_No_Shadow24x24.tsx"/>
|
||||
<layer id="1" name="Tile Layer 1" width="24" height="24">
|
||||
<data encoding="csv">
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
|
||||
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113
|
||||
</data>
|
||||
</layer>
|
||||
</map>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<template>
|
||||
<tileset firstgid="1" source="../Monsters.tsx"/>
|
||||
<object name="Skeleton Barbarian" type="Monster" gid="36" width="48" height="48"/>
|
||||
</template>
|
||||
1
unique_commits.sh
Normal file
1
unique_commits.sh
Normal file
@ -0,0 +1 @@
|
||||
git log --date=short --pretty=format:'%ad' | sort | uniq -c
|
||||
Loading…
x
Reference in New Issue
Block a user