Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • demagogue_frog/veloren
  • pebeto/veloren
  • Bbenton91/veloren
  • haslersn/veloren
  • Drack43/veloren
  • Swedneck/veloren
  • veloren/veloren
  • heyzoos/veloren
  • yashaslokesh/veloren
  • Imbris/veloren
  • kvark/veloren
  • jshipsey/fresh
  • thethirdspartans/veloren
  • BenSandeen/veloren
  • YuriMomo/fresh
  • DrShongos/fresh
  • nesadi/veloren
  • luca_beetz/veloren
  • RustyBamboo/veloren
  • tiagoantao/veloren
  • erocs/veloren
  • koenigsreiter/veloren
  • timokoesters/veloren
  • desttinghim/veloren
  • jreader01/veloren
  • Pfauenauge/veloren
  • robojumper/veloren
  • humb1t/veloren
  • Timchenko/veloren
  • o01eg/veloren
  • sbst_idle/veloren
  • elfangor/veloren
  • xMAC94x/veloren
  • xshadowfax/veloren
  • tupini07/veloren
  • memoryruins/veloren
  • hayaanxuseencabdi/veloren
  • Mujina/veloren
  • marionumber14/veloren
  • Juankz/veloren
  • slyklaw/veloren
  • dispersias/veloren
  • solarliner/veloren
  • tasgon/veloren
  • VercidiumDev/veloren
  • arashout/veloren
  • harrissam95/veloren
  • KasyanDiGris/veloren
  • a1phyr/veloren
  • bare_metal/veloren
  • baBounch/veloren
  • Luraktinus/veloren
  • snuk182/veloren
  • zayngdev/veloren
  • JockeM/veloren
  • tim74/veloren
  • BakedChocobo/veloren
  • andymac-2/veloren
  • Senzaki/veloren
  • Carbonhell/veloren
  • DavidLyhedDanielsson/veloren
  • mam0nten0k/veloren
  • vitamindck/veloren
  • bdloehlein/veloren
  • lawtonfogle/veloren
  • cdellmour/veloren
  • dasreyh/veloren
  • marius851000/veloren
  • pascil/veloren
  • zuwow/veloren
  • alrx.picha1/veloren
  • zazke/veloren
  • lsaa_/veloren
  • dbla8888/veloren
  • itamargafni/veloren
  • Shonik/veloren
  • samuelx082/veloren
  • CinchBlue/veloren
  • D4rk3l/veloren
  • kblobr/veloren
  • Phil_/veloren
  • Pestilence/veloren
  • drunkonhotcocodev/issue_1204_chat_scroll_fix
  • Simon_Schubert/veloren
  • cfrantz1/veloren
  • nicholaiTukanov/veloren
  • stoehraj/veloren
  • Qwertycrackers/veloren
  • humanthrope/veloren
  • patchedsoul/veloren
  • Stupreme/veloren
  • Xardvor/veloren
  • jamescarl96/veloren
  • Menko1437/veloren
  • hyubaffum/veloren
  • PierceLBrooks/veloren
  • mockersf/veloren
  • warspawn/veloren
  • AdminXVII/veloren
  • lintner.ian/veloren
  • Frescote/veloren
  • Nancok/veloren
  • TsinSuwen/veloren
  • edv4rd0/veloren
  • iMarv/veloren
  • tmtvl/veloren
  • aymericdd/veloren
  • Juli199696/veloren
  • dachenba/veloren
  • Nelocage/veloren
  • jackrubino/veloren
  • egorsmkv/veloren
  • DavidMikeSimon/veloren
  • greypilgrim/veloren
  • snowram/veloren
  • Yimi81/veloren
  • nheuillet/veloren
  • cleoa/veloren
  • v1nsai/veloren
  • Plecra/veloren
  • GoodPraxis/veloren
  • DaanG96/veloren
  • ElXreno/veloren
  • colemickens/veloren
  • kurodenjiro/veloren
  • fraunos/veloren
  • cetra3/veloren
  • AlexChadwickP/veloren
  • 2digitman/veloren
  • Pegrin1/veloren
  • appcrashwin7/veloren
  • ludwig-austermann/veloren
  • Nevizonah/veloren
  • nataneb/veloren
  • louis030195/veloren
  • qrazhan/veloren
  • zimnyjakub/veloren
  • sk9/veloren
  • ldemoulins/veloren
  • heqromancer/veloren
  • kevinglasson/veloren
  • xvar/veloren
  • rozgo/veloren
  • AVeryLostNomad/veloren
  • theduke/veloren
  • ben-wallis/veloren
  • awsomearvinder1/veloren
  • liambrownweb/veloren
  • MagicMantis/veloren
  • mattburn96/veloren
  • w3yden/veloren
  • k2d222/veloren
  • alejandrocampoh/veloren
  • BottledByte/veloren
  • RubberMullet/veloren
  • pat.honeycutt1/veloren
  • parabeetle/veloren
  • gSpera/veloren
  • tylerlowrey/veloren
  • spersin00/veloren
  • yenwel1987/veloren
  • Skgland/veloren
  • masal.aliov95/veloren
  • ismail.assaidi/veloren
  • SamuelRousseaux/veloren
  • fosdick/veloren
  • lausek/veloren
  • paezao/veloren
  • raiyansayeed/veloren
  • cuentafalsa2133/veloren
  • L4XLR/veloren
  • Kroetnaton/veloren
  • knkski/veloren
  • guiguan/veloren
  • songzhi/veloren
  • Sinble/veloren
  • termac/veloren
  • Rdbaker/veloren
  • abcde090/veloren
  • jhoot/veloren
  • SpyrosRoum/veloren
  • SeanMcLoughlin/veloren
  • skhorozian201/veloren
  • boughdan/veloren
  • dwwhif/veloren
  • Xinayder/veloren
  • urban48/veloren
  • Doomsdayrs/veloren
  • WillTarte/veloren
  • dktrotti/veloren
  • PotatoPhusion/veloren
  • jasonkclee1/veloren
  • black-silence/veloren
  • erik.traedal/veloren
  • raymondnumbergenerator/veloren
  • Quibble/veloren
  • raunaqjain/veloren
  • mttmartin42/veloren
  • MrTanoshii/veloren
  • dimkk/veloren
  • neumoxx/veloren
  • timsueberkrueb/veloren
  • jtrejosnavarro/veloren
  • martin-t/veloren
  • laundry-96/veloren
  • droogmic/veloren
  • axosoft-dans/veloren
  • CaptnJunks/veloren
  • erizocosmico/veloren
  • pablosoler/veloren
  • aless.barbe/veloren
  • UMR1352/veloren
  • cgonz908/veloren
  • jreimer107/veloren
  • NathanSWard/veloren
  • TianyiShi2001/veloren
  • zarp-dev/veloren
  • K-JBoon/veloren
  • Heng-NUS/veloren
  • botika/veloren
  • cpetig/veloren
  • DJHen2/veloren
  • Adriankhl/veloren
  • tibbon1/veloren
  • entropicdrifter/veloren
  • foxlands.server/veloren
  • boursbenjamin/veloren
  • lizhengdao/veloren
  • mizumako/veloren
  • jacksonlango/veloren
  • kennethpatrickfrancis/veloren
  • Nicknakin/veloren
  • wrightjjw/veloren
  • xinxinxinxinxin/veloren
  • 64epicks/veloren
  • skyace65/veloren
  • JordanXion/veloren
  • nrvrs/veloren
  • VincentFoulon80/veloren
  • nahua/veloren
  • Entropy9s/veloren
  • SWilliamsGames/veloren
  • x0f5c3/veloren
  • ccgauche/veloren
  • AndreiKlim/veloren
  • Frinksy/veloren
  • Litame/veloren
  • ddmng/veloren
  • dzikoysk/veloren
  • VooDooMedic/veloren
  • katharostech/veloren
  • chris.polderman/veloren
  • DatBoiEsteban/veloren
  • Dioptase/veloren
  • AnxiousKoala/veloren
  • nobbele/veloren
  • GuillaumeGomez/veloren
  • thedevrdr/veloren
  • ValorZard/veloren
  • coloursofnoise/veloren
  • induras/veloren
  • terahlunah/veloren
  • casiq/veloren
  • Peachy.cc/veloren
  • pizzaluc/veloren
  • Mehhht/veloren
  • zanchen/veloren
  • Treeco/veloren
  • jpetkau/veloren
  • Lyfflyn/veloren
  • lileeei/veloren
  • tonyvu0605/veloren
  • law4x/veloren
  • whbrown/veloren
  • Ambien/veloren
  • IgorKhramtsov/veloren
  • shimous9/veloren
  • amerine/veloren
  • triptych/veloren
  • edouardpoitras/veloren
  • Trollderim/veloren
  • cvzikl/veloren
  • TheAlepou/veloren
  • aweinstock/veloren
  • Dumbeldor/veloren
  • clangdo/veloren
  • Synis/veloren
  • Moorts/veloren
  • TheEvilSkeleton/veloren
  • Joergenson/veloren
  • Lerg-exe/veloren
  • tamarinvs19/veloren
  • Arreme/veloren
  • tukilo/veloren
  • BryanQuigley/veloren
  • persianknight172/veloren
  • Overblob/veloren
  • littlebigbug/veloren
  • RedlineTriad/veloren
  • jgross_dev/veloren
  • ofofo/veloren
  • AWulkan/veloren
  • g000linux/veloren
  • capnhawkbill/veloren
  • benlal/veloren
  • Garmelon/veloren
  • aljazerzen/veloren
  • typohound/veloren
  • HunterTParks/veloren
  • namespace-Memory/veloren
  • kimamb/veloren
  • karl.l.tye/veloren
  • kwardlaw102/veloren
  • johnson.brice.a/veloren
  • mtsr/veloren
  • supercaligo/veloren
  • fabioschmidt01/veloren
  • Ultimafounding/veloren
  • 1b15/veloren
  • theCow61/veloren
  • winie/veloren
  • StarostaGit/veloren
  • wczyz/veloren
  • duelsik/veloren
  • gijione/veloren
  • OrangeQuill/veloren
  • davidruizagustin2002/veloren
  • Ceikry/veloren
  • mdx97/veloren
  • polyedre/veloren
  • socherbyc/veloren
  • sebgavmih/veloren
  • saraphiem/veloren
  • DanielBarton446/veloren
  • kinggred/veloren
  • Nicolewk/veloren
  • dungph/veloren
  • holychowders/veloren
  • dmaahs2017/veloren
  • pnivlek/veloren
  • Kemper-/veloren
  • ygor.souza/veloren
  • purple_Pete/veloren
  • Dragyx/veloren
  • felipe.catzinm95/veloren-es-la
  • bronson/veloren
  • Vanusci/veloren
  • Nereuxofficial/veloren
  • cyoun/veloren
  • jsuh3/veloren
  • zkwinkle/veloren-fork
  • oresavna/veloren
  • ilyushka4532/veloren
  • aws107/veloren
  • echozs151/veloren
  • ribeirotomas1904/veloren
  • veloren/dev/veloren
  • Xiaobin0860/veloren
  • Snipey/veloren
  • tygyh/veloren
  • lotusotho/veloren
  • wrygondryn/veloren
  • josmasflores/veloren
  • vikassahu29/veloren
  • Mavpt/veloren
  • potyoma/veloren
  • aeaydin/veloren
  • ccm7676/veloren
  • AndusDEV/veloren
  • TypeTen/veloren
  • backyard_tourist/veloren
  • lipka28/veloren
  • fischerantoine/veloren
  • DrSensor/veloren
  • liimee/veloren
  • kurtinge/veloren
  • jvck10/veloren
  • merryck.wales/veloren
  • johannesalr/veloren
  • ignat6285/veloren
  • thebigG/veloren
  • Veloren_Kisa/veloren
  • cergutiv/veloren
  • matt_tighe/veloren
  • hardikpnsp/veloren
  • BigCubeCat/veloren
  • lack/veloren
  • Diaeresis/veloren
  • Zakru1/veloren
  • zesterer/veloren
  • six519/veloren
  • martinjaehn/veloren
  • mehulagg/veloren
  • Danacus/veloren
  • teenjuna/veloren
  • VJunge/veloren
  • Ted_Hudson/veloren
  • pacmanmati/veloren
  • IdeallyGrey/veloren
  • Kizz122/veloren
  • gcharang/veloren
  • nielsiscool300/veloren
  • Swagazaki/veloren
  • KaliKatz/veloren
  • aprchen/veloren
  • Mixone-FinallyHere/veloren
  • kilpkonn/veloren
  • protheory8/veloren
  • hugojmaia/veloren
  • mjkalasky2/veloren
  • nmsv/veloren
  • veloren_backups/veloren-backup-2021-08-17
  • Imbris/veloren-test-fork
  • samuelkeiffer/veloren
  • KingPEPSALT/veloren
  • augis122/modded-veloren
  • brunocabrita/veloren
  • slashplusplus/veloren
  • ric96/veloren
  • jesenzhang/veloren
  • aflyingpumpkin/veloren
  • kimtinh/veloren
  • UncomfySilence/veloren
  • ludvigHz/veloren
  • iSaluki/veloren
  • pts1667/veloren
  • lan956/veloren
  • antoniomuso/veloren
  • alremahy/veloren
  • phosphorus-moscu/veloren
  • cc-morning/veloren
  • anirudh24seven/veloren
  • phosphorus-moscu/2veloren-2
  • Oolnokk/veloren
  • abraham.inoerawan/veloren
  • Casping90/veloren
  • willwh/veloren
  • J-K-Tech/veloren
  • jon.nettleton/veloren
  • VultraDevs/veloren-loopy
  • RunRobDog/veloren
  • notoriae/veloren
  • fetsorn/veloren
  • 27penningb/veloren
  • Finalverse/finalverse
  • MartinR25/veloren
  • Redo11/veloren
  • expp121/veloren
  • ashdnazg/veloren
  • galaipa/veloren
  • ZgemboUscupalic/veloren
  • dark-eye/veloren
  • ezfe/veloren
  • BKrause_aka_Weltii/veloren
  • zDrag0nG/veloren
  • tonydero/veloren
  • Jupiter256/veloren
  • Olexorus/veloren
  • ryan.ostrager/veloren
  • txopi/veloren
  • kinggredPL/veloren
  • j-mcavoy/veloren
  • coinvariant/veloren
  • m00dy1/world-of-crypto
  • Kaydenn/veloren
  • markobekko/veloren
  • hugopeixoto/veloren
  • Samuellm93/veloren
  • Eurydia/veloren
  • Tazmondo/veloren
  • kretka/veloren
  • Anitme43/veloren
  • qbig/veloren
  • MrEuds/veloren
  • Landemak/veloren
  • joaovti/veloren
  • jcezarms/veloren
  • Makselord/veloren-maksemod
  • Awkor/veloren
  • tovi-cn/veloren
  • edlingao/veloren
  • cloudlmao/veloren
  • mohsmth1/veloren
  • 64kramsystem/veloren-dev
  • meronz/veloren
  • taiyoung.jang/veloren
  • fanix472/veloren
  • coddiw0mple/veloren
  • dmitrykolesnikovich/veloren
  • erodendaniel/veloren
  • sam.rudloff/veloren
  • shenjiangqiu/veloren
  • colla170/veloren
  • PatoHacker/veloren
  • Faithgel/veloren
  • LeoDog896/veloren
  • Welvex/veloren
  • Halosesparta/veloren
  • hjalle2000/veloren-labchads-edition
  • ldm0/veloren
  • Nether190/veloren
  • Moy838840554/veloren
  • Veloren-Master/veloren-master-mode
  • Tradocks/veloren
  • 4ydx/veloren
  • badhat/veloren
  • althierygamer/veloren
  • heyuhm/veloren
  • 154pinkchairs/veloren
  • miraficus/veloren
  • yaltta/veloren
  • w262900/veloren
  • semperdisco/veloren
  • alejandrohernandezcarbonero83/veloren
  • juanopinguino0/veloren
  • meiyo40/veloren
  • GammaJPG/veloren
  • dglsdn68/veloren
  • rm4lv/veloren
  • Koboo/veloren
  • sigmaboyww/veloren
  • bstocker/veloren
  • WhatzGames/veloren
  • andrewmustea/veloren
  • dwasint/veloren-dwasint-fork
  • hellohihehebuwj/veloren
  • yamamushi/veloren
  • Majavar/veloren
  • zerominus/veloren
  • maccam912/veloren
  • rapenne-s/veloren
  • will0w7/veloren
  • s170668/veloren
  • piguycs/veloren
  • JazzGlobal/veloren
  • aidan20101/veloren
  • thenewboy2023rd/veloren
  • thales.link/veloren
  • anup.jadhav/veloren
  • ZiXyos/veloren
  • sankalp9094108/veloren
  • lacapsule9303614/veloren
  • AntoniosBarotsis/veloren
  • Wrathen/veloren
  • barsoosayque/veloren
  • Rostish/veloren
  • apricote/veloren
  • yes132432/veloren
  • Tutorial-senpai/veloren
  • NEbling/veloren
  • namolite/veloren
  • 12foo/veloren
  • sanctorum.thomas/veloren
  • RickyC0626/veloren
  • zveronline/veloren
  • Cup_Of_Java/veloren
  • FostersXX/velorenBver
  • accelbread/veloren
  • mildsmild707/veloren
  • cerane/veloren
  • svetlemodry/veloren
  • telans/veloren
  • jovaun.mcg/veloren-fork
  • dressupgeekout/veloren
  • lordjoaosouza/veloren
  • Hugo-Trentesaux/veloren
  • marcantoineg/veloren
  • luizmugnaini/veloren
  • nssumanskij/veloren
  • lle-bout/veloren
  • gregnazario/veloren
  • Kreneker/veloren
  • NazarBulba/veloren
  • kevinsmia1939/veloren
  • kaubu/veloren
  • igorgcardoso/veloren
  • Musummer/veloren
  • robertxgray/veloren
  • kkpan11/veloren
  • pat36/veloren
  • jbeich/veloren
  • augustine12503/veloren
  • ThatComputerGuy/veloren
  • Fallingstars/veloren
  • Sorann753/veloren
  • denys.seguret/veloren
  • ryotary/veloren
  • Keegan-JW/veloren
  • dsalt/veloren
  • rs-v/veloren
  • davidlee5585349/veloren
  • bakkdoor/veloren
  • testfailed/veloren
  • freyaru11/veloren
  • pekingPow/veloren-mmo-video-game
  • Linorman/veloren
  • gpapad/veloren
  • Furior/veloren
  • rileydy/veloren
  • honestduane/veloren
  • caavere/veloren
  • V0idMatr1x/veloren
  • RustyStriker/veloren
  • GabrielWWU/veloren
  • Luca1905/veloren
  • dazuimao1990/veloren
  • Amitkumar09/veloren
  • Thibagon/veloren
  • asingleleaf/veloren
  • Yairm210/veloren
  • hichemfantar/veloren
  • devhomie/veloren
  • skygrango/veloren
  • Estrozix/veloren
  • kivia/veloren
  • gundeep240800/veloren
  • needJobCoder/veloren
  • Chucuoi0209/veloren
  • tomsiouan/veloren
  • jmole/veloren
  • octocamocoder47/veloren
  • salhiahmed534/veloren
  • alerty264/veloren
  • znikzad1365/veloren
  • GeekyGami/veloren
  • hnrq/veloren
  • tony.gunn.31/veloren
  • brxxh/veloren
  • relevant-dev/forks/veloren
  • PetaWarden/veloren
630 results
Show changes
Commits on Source (8)
......@@ -26,6 +26,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Potion quaffing no longer makes characters practically immortal.
- Stat diff now displays correctly for armor
- Lamps, embers and campfires use glowing indices
- Non-potion drinks no longer heal as much as potions.
- Added SFX to the new sword abilities
## [0.14.0] - 2023-01-07
......
......@@ -7,7 +7,7 @@ ItemDef(
Buff((
kind: Saturation,
data: (
strength: 5.0,
strength: 2.0,
duration: Some((
secs: 5,
nanos: 0,
......
......@@ -7,9 +7,9 @@ ItemDef(
Buff((
kind: Saturation,
data: (
strength: 10.0,
strength: 2.0,
duration: Some((
secs: 5,
secs: 10,
nanos: 0,
)),
),
......
......@@ -7,9 +7,9 @@ ItemDef(
Buff((
kind: Saturation,
data: (
strength: 10.0,
strength: 2.0,
duration: Some((
secs: 5,
secs: 10,
nanos: 0,
)),
),
......
......@@ -306,21 +306,39 @@
],
threshold: 0.5,
),
Attack(ComboMelee(Action, 1), Sword): (
Attack(ComboMelee2(Action), Sword): (
files: [
"voxygen.audio.sfx.abilities.swing_sword",
],
threshold: 0.7,
),
Attack(ComboMelee(Action, 2), Sword): (
Attack(FinisherMelee(Action), Sword): (
files: [
"voxygen.audio.sfx.abilities.separated_second_swing",
"voxygen.audio.sfx.abilities.swing_sword",
],
threshold: 0.7,
),
Attack(ComboMelee(Action, 3), Sword): (
Attack(DiveMelee(Action), Sword): (
files: [
"voxygen.audio.sfx.abilities.separated_third_swing",
"voxygen.audio.sfx.abilities.swing_sword",
],
threshold: 0.7,
),
Attack(RiposteMelee(Action), Sword): (
files: [
"voxygen.audio.sfx.abilities.swing_sword",
],
threshold: 0.7,
),
Attack(RapidMelee(Action), Sword): (
files: [
"voxygen.audio.sfx.abilities.swing_sword",
],
threshold: 0.7,
),
Attack(ChargedMelee(Action), Sword): (
files: [
"voxygen.audio.sfx.abilities.swing_sword",
],
threshold: 0.7,
),
......@@ -336,6 +354,24 @@
],
threshold: 0.7,
),
Attack(ComboMelee(Action, 1), Sword): (
files: [
"voxygen.audio.sfx.abilities.swing_sword",
],
threshold: 0.7,
),
Attack(ComboMelee(Action, 2), Sword): (
files: [
"voxygen.audio.sfx.abilities.separated_second_swing",
],
threshold: 0.7,
),
Attack(ComboMelee(Action, 3), Sword): (
files: [
"voxygen.audio.sfx.abilities.separated_third_swing",
],
threshold: 0.7,
),
Inventory(CollectedTool(Sword)): (
files: [
"voxygen.audio.sfx.inventory.pickup_sword",
......
......@@ -399,6 +399,11 @@ pub enum CharacterAbilityType {
DashMelee(StageSection),
BasicBlock,
ComboMelee(StageSection, u32),
ComboMelee2(StageSection),
FinisherMelee(StageSection),
DiveMelee(StageSection),
RiposteMelee(StageSection),
RapidMelee(StageSection),
LeapMelee(StageSection),
SpinMelee(StageSection),
Music(StageSection),
......@@ -420,6 +425,13 @@ impl From<&CharacterState> for CharacterAbilityType {
CharacterState::BasicBlock(_) => Self::BasicBlock,
CharacterState::LeapMelee(data) => Self::LeapMelee(data.stage_section),
CharacterState::ComboMelee(data) => Self::ComboMelee(data.stage_section, data.stage),
CharacterState::ComboMelee2(data) => {
data.stage_section.map_or(Self::Other, Self::ComboMelee2)
},
CharacterState::FinisherMelee(data) => Self::FinisherMelee(data.stage_section),
CharacterState::DiveMelee(data) => Self::DiveMelee(data.stage_section),
CharacterState::RiposteMelee(data) => Self::RiposteMelee(data.stage_section),
CharacterState::RapidMelee(data) => Self::RapidMelee(data.stage_section),
CharacterState::SpinMelee(data) => Self::SpinMelee(data.stage_section),
CharacterState::ChargedMelee(data) => Self::ChargedMelee(data.stage_section),
CharacterState::ChargedRanged(_) => Self::ChargedRanged,
......@@ -446,12 +458,7 @@ impl From<&CharacterState> for CharacterAbilityType {
| CharacterState::UseItem(_)
| CharacterState::SpriteInteract(_)
| CharacterState::Skate(_)
| CharacterState::Wallrun(_)
| CharacterState::ComboMelee2(_)
| CharacterState::FinisherMelee(_)
| CharacterState::DiveMelee(_)
| CharacterState::RiposteMelee(_)
| CharacterState::RapidMelee(_) => Self::Other,
| CharacterState::Wallrun(_) => Self::Other,
}
}
}
......
......@@ -22,7 +22,8 @@ pub struct Energy {
/// Maximum is the amount of energy the entity has after temporary modifiers
/// are considered
maximum: u32,
pub regen_rate: f32,
/// Rate of regeneration per tick. Starts at zero and accelerates.
regen_rate: f32,
}
impl Energy {
......@@ -94,6 +95,24 @@ impl Energy {
}
}
/// Returns `true` if the current value is less than the maximum
pub fn needs_regen(&self) -> bool { self.current < self.maximum }
/// Regenerates energy based on the provided acceleration
pub fn regen(&mut self, accel: f32, dt: f32) {
if self.current < self.maximum {
self.change_by(self.regen_rate * dt);
self.regen_rate = (self.regen_rate + accel * dt).min(10.0);
}
}
/// Checks whether the `regen_rate` is zero or not. Returns true if the
/// value is anything other than `0.0`.
pub fn needs_regen_rate_reset(&self) -> bool { self.regen_rate != 0.0 }
/// Resets the energy regeneration rate to zero
pub fn reset_regen_rate(&mut self) { self.regen_rate = 0.0 }
pub fn change_by(&mut self, change: f32) {
self.current = (((self.current() + change).clamp(0.0, f32::from(Self::MAX_ENERGY))
* Self::SCALING_FACTOR_FLOAT) as u32)
......
......@@ -52,8 +52,8 @@ pub struct Poise {
maximum: u32,
/// Direction that the last poise change came from
pub last_change: Dir,
/// Rate of poise regeneration per tick. Starts at zero and accelerates.
pub regen_rate: f32,
/// Rate of regeneration per tick. Starts at zero and accelerates.
regen_rate: f32,
/// Time that entity was last in a poise state
last_stun_time: Option<Time>,
/// The previous poise state
......@@ -217,6 +217,24 @@ impl Poise {
}
}
/// Returns `true` if the current value is less than the maximum
pub fn needs_regen(&self) -> bool { self.current < self.maximum }
/// Regenerates poise based on a provided acceleration
pub fn regen(&mut self, accel: f32, dt: f32, now: Time) {
if self.current < self.maximum {
let poise_change = PoiseChange {
amount: self.regen_rate * dt,
impulse: Vec3::zero(),
by: None,
cause: None,
time: now,
};
self.change(poise_change);
self.regen_rate = (self.regen_rate + accel * dt).min(10.0);
}
}
pub fn reset(&mut self, time: Time, poise_state_time: f64) {
self.current = self.maximum;
self.last_stun_time = Some(Time(time.0 + poise_state_time));
......
......@@ -4,8 +4,8 @@ use common::{
self,
item::MaterialStatManifest,
skills::{GeneralSkill, Skill},
Body, CharacterState, Combo, Energy, Health, Inventory, Poise, PoiseChange, Pos, SkillSet,
Stats, StatsModifier,
Body, CharacterState, Combo, Energy, Health, Inventory, Poise, Pos, SkillSet, Stats,
StatsModifier,
},
event::{EventBus, ServerEvent},
resources::{DeltaTime, EntitiesDiedLastTick, Time},
......@@ -16,9 +16,9 @@ use specs::{
shred::ResourceId, Entities, Join, Read, ReadExpect, ReadStorage, SystemData, World, Write,
WriteStorage,
};
use vek::Vec3;
const ENERGY_REGEN_ACCEL: f32 = 1.0;
const SIT_ENERGY_REGEN_ACCEL: f32 = 2.5;
const POISE_REGEN_ACCEL: f32 = 2.0;
#[derive(SystemData)]
......@@ -145,10 +145,18 @@ impl<'a> System<'a> for Sys {
(&read_data.char_states, &mut energies, &mut poises).join()
{
match character_state {
// Sitting accelerates recharging energy the most
CharacterState::Sit => {
if energy.needs_regen() {
energy.regen(SIT_ENERGY_REGEN_ACCEL, dt);
}
if poise.needs_regen() {
poise.regen(POISE_REGEN_ACCEL, dt, *read_data.time);
}
},
// Accelerate recharging energy.
CharacterState::Idle(_)
| CharacterState::Talk
| CharacterState::Sit
| CharacterState::Dance
| CharacterState::Glide(_)
| CharacterState::Skate(_)
......@@ -160,34 +168,11 @@ impl<'a> System<'a> for Sys {
stage_section: None,
..
}) => {
let res = { energy.current() < energy.maximum() };
if res {
let energy = &mut *energy;
energy.change_by(energy.regen_rate * dt);
if matches!(character_state, CharacterState::Sit) {
// Higher Energy-regeneration while sitting
energy.regen_rate =
(energy.regen_rate + ENERGY_REGEN_ACCEL * dt * 1.5).min(25.0);
} else {
energy.regen_rate =
(energy.regen_rate + ENERGY_REGEN_ACCEL * dt).min(10.0);
}
if energy.needs_regen() {
energy.regen(ENERGY_REGEN_ACCEL, dt);
}
let res_poise = { poise.current() < poise.maximum() };
if res_poise {
let poise = &mut *poise;
let poise_change = PoiseChange {
amount: poise.regen_rate * dt,
impulse: Vec3::zero(),
by: None,
cause: None,
time: *read_data.time,
};
poise.change(poise_change);
poise.regen_rate = (poise.regen_rate + POISE_REGEN_ACCEL * dt).min(10.0);
if poise.needs_regen() {
poise.regen(POISE_REGEN_ACCEL, dt, *read_data.time);
}
},
// Ability use does not regen and sets the rate back to zero.
......@@ -206,6 +191,7 @@ impl<'a> System<'a> for Sys {
| CharacterState::BasicBeam(_)
| CharacterState::BasicAura(_)
| CharacterState::Blink(_)
| CharacterState::Climb(_)
| CharacterState::BasicSummon(_)
| CharacterState::SelfBuff(_)
| CharacterState::SpriteSummon(_)
......@@ -213,14 +199,13 @@ impl<'a> System<'a> for Sys {
| CharacterState::DiveMelee(_)
| CharacterState::RiposteMelee(_)
| CharacterState::RapidMelee(_) => {
if energy.regen_rate != 0.0 {
energy.regen_rate = 0.0
if energy.needs_regen_rate_reset() {
energy.reset_regen_rate();
}
},
// Abilities that temporarily stall energy gain, but preserve regen_rate.
CharacterState::Roll(_)
| CharacterState::Wallrun(_)
| CharacterState::Climb(_)
| CharacterState::Stunned(_)
| CharacterState::BasicBlock(_)
| CharacterState::UseItem(_)
......
......@@ -899,12 +899,12 @@ impl Show {
if !self.esc_menu {
self.bag = open;
self.map = false;
self.want_grab = !self.any_window_requires_cursor();
self.crafting_fields.salvage = false;
if !open {
self.crafting = false;
}
self.want_grab = !self.any_window_requires_cursor();
}
}
......