View Code? Open in Web Editor
NEW
A procedural sword & sorcery adventure
Home Page: https://egamebook.com/
License: BSD 3-Clause "New" or "Revised" License
Dart 96.92%
Shell 0.30%
Python 2.78%
egamebook's Issues
/* TODO: make this useless as a shield, except Lady Hope doesn't attack */
);
final Item katana = Item .weapon (
katanaId,
WeaponType .sword,
This issue was generated by todo based on a TODO
comment in ea27f8e . It's been assigned to @filiph because they committed the code.
// TODO: when 2+ rules of same priority are applicable, use sim.random
return ;
}
}
throw NoRuleApplicableException ("No rule was applicable. "
This issue was generated by todo based on a TODO
comment in a21ba88 . It's been assigned to @filiph because they committed the code.
// TODO: bug - this could be ".. again" when switching from one leg to other
return "slash at <objectPronoun's> ${isLast ? 'remaining ' : '' }leg" ;
}
@override
This issue was generated by todo based on a TODO
comment in 3ff146c . It's been assigned to @filiph because they committed the code.
// TODO: at least one of the knights needs to re-appear again, as a hireable NPC
// A vignette
// (Ideally when leaving the entrance towards the pyramid, or later. "As I pass the two knights..."):
I wonder how it must be, having to spend so much time, idly waiting, together with a single person, for years. So they grow to love each other? Or hate? Both?
This issue was generated by todo based on a TODO
comment in 5544d7c . It's been assigned to @filiph because they committed the code.
TODO: win
DESCRIPTION: $NONE
This issue was generated by todo based on a TODO
comment in c5ad9b0 . It's been assigned to @filiph because they committed the code.
omit_local_variable_types : false # TODO: clean up and turn on
one_member_abstracts : true
only_throw_errors : true
overridden_fields : true
package_api_docs : true
package_names : true
This issue was generated by todo based on a TODO
comment in 873e0f9 . It's been assigned to @filiph because they committed the code.
// TODO: as a vysmech, a banner of the knights
NOTES:
- The 65er + goblin is here.
This issue was generated by todo based on a TODO
comment in ea27f8e . It's been assigned to @filiph because they committed the code.
TODO: Make it harder to get to the jungle. Add at least one "twisty little passages" area in between staging area and jungle.
This issue was generated by todo based on a TODO
comment in e0125a9 . It's been assigned to @filiph because they committed the code.
# TODO tests:
# Must see Oracle? (if we actually need that for the story)
# Must meet BigO's undead (2 / 3 times?)
# Must do one warging?
# Must do one necromancy?
This issue was generated by todo based on a TODO
comment in 06a6a1d . It's been assigned to @filiph because they committed the code.
// a thrust while on ground. TODO: fix and remove
! enemy.isOnGround &&
! a.anatomy.isBlind &&
a.currentWeapon.damageCapability.isSlashing &&
// Only allow arm attacks when enemy is at least extended.
enemy.pose <= Pose .extended &&
This issue was generated by todo based on a TODO
comment in cbdf748 . It's been assigned to @filiph because they committed the code.
- TODO: JOIN WITH Horseman White?
(Named after the daughter of https://en.wikipedia.org/wiki/Mu_Guiying.)
Main knight.
This issue was generated by todo based on a TODO
comment in ea27f8e . It's been assigned to @filiph because they committed the code.
// TODO: there is a bug here - "again" could appear when switching from
// one arm to the other
return "slash at <objectPronoun's> ${isLast ? 'remaining ' : '' }arm" ;
}
@override
This issue was generated by todo based on a TODO
comment in 3ff146c . It's been assigned to @filiph because they committed the code.
## Corporal (TODO: find better name, corporal == desátník)
Main knight.
This issue was generated by todo based on a TODO
comment in e8265aa . It's been assigned to @filiph because they committed the code.
# TODO: https://youneedawiki.com/app/page/1oEBasjqfhGKk45RXwCmSL2Pwbvc01w7QmSIS2mmtLO8
# Meet Oracle.
# BIG-O's TALKING UNDEAD
GoblinGuardRaisedByBigOJustAfterFight = Once (Increment ('_talking_undead' , 10 ))
This issue was generated by todo based on a TODO
comment in 06a6a1d . It's been assigned to @filiph because they committed the code.
// TODO: PREREQUISITES - only after someone tells me
// ---
APPROACH: $elevator_12 FROM $elevator_28
COMMAND: Go >> climb down
DESCRIPTION: [We] climb down using an ancient rusty ladder.
This issue was generated by todo based on a TODO
comment in 0f06f2f . It's been assigned to @filiph because they committed the code.
TODO: move to a quest file
ACTION: $talk_to_corporal
DESCRIPTION:
The corporal says there's not much the Knights can do. They are retreating in any case. But he does feel responsible. Maybe if I go and help Zee (a knight) with a counter attack, that could give everyone more time to evacuate. I could also help by persuading the Farmers to evacuate. They don't want to.
This issue was generated by todo based on a TODO
comment in 3728eb6 . It's been assigned to @filiph because they committed the code.
TODO: Make it harder to get here. Add at least one "twisty little passages" area in between jungle entrance and here. Or just "jungle floor", which is the place where you can meet lizard man
This issue was generated by todo based on a TODO
comment in e0125a9 . It's been assigned to @filiph because they committed the code.
// TODO: allow examining the gate, which is built in "the nortonian style"
// TODO: at least one of the knights needs to re-appear again, as a hireable NPC
// A vignette
// (Ideally when leaving the entrance towards the pyramid, or later. "As I pass the two knights..."):
This issue was generated by todo based on a TODO
comment in 5544d7c . It's been assigned to @filiph because they committed the code.
/* TODO: add firstOwnerId: sixty-fiver */
);
final Item tamarasDagger = Item .weapon (tamarasDaggerId, WeaponType .dagger,
name: "dagger" , adjective: "long" , firstOwnerId: tamaraId);
This issue was generated by todo based on a TODO
comment in ea27f8e . It's been assigned to @filiph because they committed the code.
/* TODO: add firstOwnerId: Lady Hope */
/* TODO: make this useless as a shield, except Lady Hope doesn't attack */
);
final Item katana = Item .weapon (
katanaId,
This issue was generated by todo based on a TODO
comment in ea27f8e . It's been assigned to @filiph because they committed the code.
/* TODO: add firstOwnerId: Darg */
isCleaving: true ,
);
final Item banner = Item (
bannerId,
This issue was generated by todo based on a TODO
comment in ea27f8e . It's been assigned to @filiph because they committed the code.
- TODO: connect to the elevator shaft
- Maybe only allow visiting this place after some time.
- Should be dangerous.
- A way to explain that the Pyramid is "infused" with magic.
- Maybe a way to "trade" sanity for stamina or other boons?
This issue was generated by todo based on a TODO
comment in c85803e . It's been assigned to @filiph because they committed the code.
// TODO: counter attack on ground situation
var counterAttackSituation =
CounterAttackSituation .initialized (w.randomInt (), a, enemy);
w.pushSituation (counterAttackSituation);
return "${a .name } dodges ${enemy .name }'s slash on ground" ;
}
This issue was generated by todo based on a TODO
comment in 2364625 . It's been assigned to @filiph because they committed the code.
- TODO: Make this hard to reach at first. The elevator shaft can also be accessed through the Floating Point. This access point is known to Oracle.
This issue was generated by todo based on a TODO
comment in c85803e . It's been assigned to @filiph because they committed the code.
TODO: sMake it harder to get to the jungle. Add at least one "twisty little passages" area in between staging area and jungle.
This issue was generated by todo based on a TODO
comment in e384469 . It's been assigned to @filiph because they committed the code.
"match" : " \\ bTODO\\ b" ,
"name" : " keyword.todo"
}]
}]
},
"markdown" : {
This issue was generated by todo based on a TODO
comment in bc823a8 . It's been assigned to @filiph because they committed the code.
// TODO: let Tamara hang around (camp?), or even follow Aren to The Bleeds. Move the content below to separate actions.
[[RULESET]]
[[RULE]]
!w.wasKilled(tamaraId)
This issue was generated by todo based on a TODO
comment in c7a7d3f . It's been assigned to @filiph because they committed the code.
s.add ('TODO: explain the family portrait\n ' , isRaw: true );
return '${a .name } successfully performs SearchBedroom' ;
}
This issue was generated by todo based on a TODO
comment in c5ad9b0 . It's been assigned to @filiph because they committed the code.
// TODO: make it clear that this is going to be hard
DESCRIPTION:
The goblins are still here.
// ---
This issue was generated by todo based on a TODO
comment in 2126bba . It's been assigned to @filiph because they committed the code.
// TODO: replace with something more interesting, like "give me the sword instead"
FOR_LOCATION: $start_enter_goblin
COMPLETE_SUCCESS_PROBABILITY: 100%
This issue was generated by todo based on a TODO
comment in 28321a0 . It's been assigned to @filiph because they committed the code.
// TODO: if possible, get rid of these rooms altogether
return const [];
}
assert (currentRoom.positionX != null , "no position for $currentRoom " );
assert (currentRoom.positionY != null );
This issue was generated by todo based on a TODO
comment in 9258157 . It's been assigned to @filiph because they committed the code.
// TODO: need a long pole (e.g. spear or a polearm) to open
COMPLETE_SUCCESS_PROBABILITY: 100%
This issue was generated by todo based on a TODO
comment in 0e13f4c . It's been assigned to @filiph because they committed the code.
TODO: write the action that describes the dam
TODO: write the action that opens the dam
This issue was generated by todo based on a TODO
comment in b56eb35 . It's been assigned to @filiph because they committed the code.
// TODO: stand up if Tamara ended the fight down, and isn't hurt
[[IF c.isHurt(tamaraId)]]Tamara is sitting on the ground now and tending to her wounds. "I'll survive, [young sir]. But you might not." She winces, and looks at me.[[ELSE]]Tamara checks her gear and sheathes her sword. Then she looks at me.[[ENDIF]] "Come with me back to safety. I'll give you a discount for the way back."
_"Thanks for your service, Tamara. But I've come this far."_
This issue was generated by todo based on a TODO
comment in c7a7d3f . It's been assigned to @filiph because they committed the code.
TODO: decide whether I need this. The idea is that many knights will die in a fight, and we don't want this to prevent the player from learning important things. Dialogue should be central to the prose, but we can't have dialogue if everyone is dead (or undead).
Many dialogues are actually possible with almost any character. The ink "file" has access to the personality of the person we're talking to.
The Knights are randomly generated on the following dimensions:
This issue was generated by todo based on a TODO
comment in 07f28ee . It's been assigned to @filiph because they committed the code.
TODO: decide whether I need this. The idea is that many knights will die in a fight, and we don't want this to prevent the player from learning important things. Dialogue should be central to the prose, but we can't have dialogue if everyone is dead (or undead).
Many dialogues are actually possible with almost any character. The ink "file" has access to the personality of the person we're talking to.
The Knights are randomly generated on the following dimensions:
This issue was generated by todo based on a TODO
comment in ddd6145 . It's been assigned to @filiph because they committed the code.
TODO: write the action that opens the dam
This issue was generated by todo based on a TODO
comment in b56eb35 . It's been assigned to @filiph because they committed the code.
// TODO: Put the trader vs son conflict into context.
// Trader talk is to the point. You can even buy stuff.
// You can talk to Leroy without even talking to his father.
This issue was generated by todo based on a TODO
comment in 5544d7c . It's been assigned to @filiph because they committed the code.
// TODO: the three different ways to get past the gate: Talk to someone and learn the access path; Use stamina to move open a nailed door, or use an axe.; Descend from way above
// Vignette
This issue was generated by todo based on a TODO
comment in e0125a9 . It's been assigned to @filiph because they committed the code.
// TODO: the three different ways to get past the gate
This issue was generated by todo based on a TODO
comment in 8a409aa . It's been assigned to @filiph because they committed the code.
// TODO: $attempt_open_gate --> learn it's nailed down
// TODO: the three different ways to get past the gate
This issue was generated by todo based on a TODO
comment in 8a409aa . It's been assigned to @filiph because they committed the code.
/// TODO: annotate with @sealed once it's in flutter-compatible package:meta
class Nothing {
/// Removes the default constructor of [Nothing] , making it impossible
/// to ever instantiate. This is what we want, because [Nothing] is
This issue was generated by todo based on a TODO
comment in 49c7e86 . It's been assigned to @filiph because they committed the code.
// TODO: Also check for owner's pronoun equality, not just id equality.
yield IdentifierLevel .ownerPronounsNoun;
yield IdentifierLevel .ownerNamesNoun;
}
if (entity.adjective != null &&
This issue was generated by todo based on a TODO
comment in cf2013b . It's been assigned to @filiph because they committed the code.
use_function_type_syntax_for_parameters : false # TODO: clean up
use_rethrow_when_possible : true
use_setters_to_change_properties : true
use_string_buffers : true
use_to_and_as_if_applicable : true
valid_regexps : true
This issue was generated by todo based on a TODO
comment in 873e0f9 . It's been assigned to @filiph because they committed the code.
s.add ('TODO -- an actual battle with the goblins.\n\n Assume you won.\n\n ' ,
wholeSentence: true );
w.recordCustom (evGoblinCampCleared);
}, (ActionContext c) {
final WorldState originalWorld = c.world;
final Simulation sim = c.simulation;
This issue was generated by todo based on a TODO
comment in 139d1e8 . It's been assigned to @filiph because they committed the code.
// TODO: add approach from the North Skull hidden room in the Keep.
// ---
ROOM: $top_of_climb
POS: 20, 26
This issue was generated by todo based on a TODO
comment in e384469 . It's been assigned to @filiph because they committed the code.
// TODO: bug - could say ".. again" when switching eye
return "stab <objectPronoun's> ${isLast ? 'remaining ' : '' }eye" ;
}
@override
This issue was generated by todo based on a TODO
comment in 3ff146c . It's been assigned to @filiph because they committed the code.
a.isPlayer /* TODO: turn into a defensible action and lose this */ &&
(a.currentWeapon? .damageCapability? .type == WeaponType .rock ?? false ) &&
! a.anatomy.isBlind &&
! recentlyForcedToGround (a, world) &&
enemy.pose > Pose .onGround;
This issue was generated by todo based on a TODO
comment in e041f48 . It's been assigned to @filiph because they committed the code.
TODO -- an actual battle with the goblins.
Assume you won.
[[CODE]]
w.recordCustom(evGoblinCampCleared);
This issue was generated by todo based on a TODO
comment in 139d1e8 . It's been assigned to @filiph because they committed the code.
TODO: fight with Osiris
TODO: win
DESCRIPTION: $NONE
This issue was generated by todo based on a TODO
comment in c5ad9b0 . It's been assigned to @filiph because they committed the code.