trisfald / srd Goto Github PK
View Code? Open in Web Editor NEWRust implementation of the Systems Reference Document
License: Other
Rust implementation of the Systems Reference Document
License: Other
Investigate and possible come up with a prototype DSL that will be used to define spells and perhaps some routines to calculate hits/damage.
fn apply_impact(
&self,
SomeContext,
SomeImpact,
EventQueue
) {
<implementation>
}
At this stage through the DSL we should be able to take SomeImpact
which contains the definition of the impact (could be an attack with 1d8 damage), do some computation based on the values inside SomeContext
(maybe target has damage reduction) and at the end create and push some events in the EventQueue
(like AlterStatistics(target, HP-1)
)
Character::spawn()
weasel::CharacterRules
In order to use less memory we should investigate replacing String
with ArrayString
(documentation).
ArrayString
uses significantly less memory than String
for small string (1-30 chars)String
with ArrayString
in ID structsweasel::RoundsRules
SRDRules
must expose a method to get who is the next actor.As a new statistic. More details in the manual at page: 92
This struct should make it easier for the user of the library to get what a character can do and to issue orders.
Update hit points accordingly when the ability Constitution
is set to a Character.
Return an error when setting a skill proficiency which is not part of the character's class skill list.
Return an error when setting more than the allowed number of skill proficiency.
The error can be returned immediately in add_skill
or later in spawn
.
Add racial bonuses to Statistic::Ability
in Spawn.rs
.
Racial bonuses can be retrieved from the RaceModel
in the compendium.
Possibly using https://github.com/xd009642/tarpaulin
Add the speed
statistic.
A new method of Character
, to spawn it in a battle.
CharacterHandle
Add Hit Dice to Character and to the spawned creature.
The HitDice
struct is already implemented.
weasel::ActorRules
ActorRules
At least with pseudocode
weasel::FightRules
Impact
typeweasel::SpaceRules
Position
type: an occupied square area on some coordinates. (page 92)Maybe we can simplify everything by assuming the world is made up of squares (2½ by 2½ ft)?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.