longfruit d8c3da8fcd Handle mob summon and limbo state (#2432)
Mob summon: Something like Monster_Apparatus_Perpetual can summon helper mobs. Ensure these helpers actually get summoned and, on their defeat, possibly change the summoner's mob state. Like, temporarily enter weak state.
* Take summon tags from BinOutput/Monster/ConfigMonster_*.json and put them in SceneMonsterInfo
* Handle Summon action in ability modifiers from BinOutput/Ability/Temp/MonsterAbilities/ConfigAbility_Monster_*.json
* On summoner's kill, also kill the summoned mobs

Limbo state: Something like Monster_Invoker_Herald_Water should be invulnerable at a certain HP threshold. Like, shouldn't die when creating their elemental shield. Or, Monster_Apparatus_Perpetual's helper mobs shouldn't die before their summoner.
* Look through ConfigAbility (AbilityData in GC) like Invoker_Herald_Water_StateControl. If any AbilityModifier within specifies state Limbo and properties.Actor_HpThresholdRatio, account for this threshold in GameEntity::damage.
* Don't let the entity die while in limbo. They will be killed by other events.
2023-11-16 23:56:37 -05:00
2023-10-31 22:23:45 -04:00
2023-10-31 19:50:31 -04:00

Grasscutter

Documentation GitHub release (latest by date) GitHub GitHub last commit GitHub Workflow Status
Discord - Grasscutter

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI

Attention: We always welcome contributors to the project. Before adding your contribution, please carefully read our Code of Conduct.

Current features

  • Logging in
  • Combat
  • Friends list
  • Teleportation
  • Gacha system
  • Co-op partially works
  • Spawning monsters via console
  • Inventory features (receiving items/characters, upgrading items/characters, etc)

Quick setup guide

Note: For support please join our Discord.

Quick Start (automatic)

Building

Grasscutter uses Gradle to handle dependencies & building.

Requirements:

Clone
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
Compile

Note: Handbook generation may fail on some systems. To disable the handbook generation, append -PskipHandbook=1 to the gradlew jar command.

Windows:

.\gradlew.bat # Setting up environments
.\gradlew jar

Linux (GNU):

chmod +x gradlew
./gradlew jar
Compiling the Handbook (Manually)

With Gradle:

./gradlew generateHandbook

With NPM:

cd src/handbook
npm install
npm run build

You can find the output jar in the root of the project folder.

Troubleshooting

For a list of common issues and solutions and to ask for help, please join our Discord server and go to the support channel.

Description
A server software reimplementation for a certain anime game.
Readme AGPL-3.0 155 MiB
Languages
Java 96.4%
TypeScript 1.9%
Python 0.5%
SCSS 0.5%
Shell 0.4%
Other 0.3%