mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-29 06:26:02 +00:00
Origine
This commit is contained in:
parent
49a46595d7
commit
8987e446a8
8 changed files with 132 additions and 6 deletions
|
|
@ -19,6 +19,8 @@ class PlayerCharacterBloc
|
|||
yield* _mapRaceEventToState(event);
|
||||
} else if (event is SubRaceEvent) {
|
||||
yield* _mapSubRaceEventToState(event);
|
||||
} else if (event is OriginEvent) {
|
||||
yield* _mapOriginEventToState(event);
|
||||
} else if (event is BackgroundEvent) {
|
||||
yield* _mapBackgroundEventToState(event);
|
||||
} else if (event is SubBackgroundEvent) {
|
||||
|
|
@ -33,11 +35,14 @@ class PlayerCharacterBloc
|
|||
var subRaces = await _db.loadSubRaces(event.item);
|
||||
yield state.copyWithClean(race: event.item, subRaces: subRaces);
|
||||
}
|
||||
|
||||
Stream<PlayerCharacterState> _mapSubRaceEventToState(
|
||||
SubRaceEvent event) async* {
|
||||
yield state.copyWith(subRace: event.item);
|
||||
}
|
||||
Stream<PlayerCharacterState> _mapOriginEventToState(
|
||||
OriginEvent event) async* {
|
||||
yield state.copyWith(origin: event.item);
|
||||
}
|
||||
Stream<PlayerCharacterState> _mapBackgroundEventToState(
|
||||
BackgroundEvent event) async* {
|
||||
var subBackgrounds = await _db.loadSubBackgrounds(event.item);
|
||||
|
|
@ -50,7 +55,8 @@ class PlayerCharacterBloc
|
|||
Stream<PlayerCharacterState> _mapLoadEventToState(
|
||||
LoadEvent event) async* {
|
||||
var races = await _db.loadRaces();
|
||||
var origins = await _db.loadOrigins();
|
||||
var backgrounds = await _db.loadBackgrounds();
|
||||
yield state.copyWith(races: races, backgrounds: backgrounds); // state;
|
||||
yield state.copyWith(races: races, origins: origins, backgrounds: backgrounds); // state;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,10 @@ class SubRaceEvent extends SetItemEvent<SubRaceItem> {
|
|||
SubRaceEvent(SubRaceItem item) : super(item);
|
||||
}
|
||||
|
||||
class OriginEvent extends SetItemEvent<OriginItem> {
|
||||
OriginEvent(OriginItem item) : super(item);
|
||||
}
|
||||
|
||||
class BackgroundEvent extends SetItemEvent<BackgroundItem> {
|
||||
BackgroundEvent(BackgroundItem item) : super(item);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ class PlayerCharacterState extends Equatable {
|
|||
final List<RaceItem> races;
|
||||
final List<SubRaceItem> subRaces;
|
||||
|
||||
final OriginItem origin;
|
||||
final List<OriginItem> origins;
|
||||
|
||||
final BackgroundItem background;
|
||||
final SubBackgroundItem subBackground;
|
||||
final List<BackgroundItem> backgrounds;
|
||||
|
|
@ -18,6 +21,8 @@ class PlayerCharacterState extends Equatable {
|
|||
this.races,
|
||||
this.subRace,
|
||||
this.subRaces,
|
||||
this.origin,
|
||||
this.origins,
|
||||
this.background,
|
||||
this.backgrounds,
|
||||
this.subBackground,
|
||||
|
|
@ -29,6 +34,8 @@ class PlayerCharacterState extends Equatable {
|
|||
List<RaceItem> races,
|
||||
SubRaceItem subRace,
|
||||
List<SubRaceItem> subRaces,
|
||||
OriginItem origin,
|
||||
List<OriginItem> origins,
|
||||
BackgroundItem background,
|
||||
List<BackgroundItem> backgrounds,
|
||||
SubBackgroundItem subBackground,
|
||||
|
|
@ -39,6 +46,8 @@ class PlayerCharacterState extends Equatable {
|
|||
races: races ?? this.races,
|
||||
subRace: subRace ?? this.subRace,
|
||||
subRaces: subRaces ?? this.subRaces,
|
||||
origin: origin ?? this.origin,
|
||||
origins: origins ?? this.origins,
|
||||
background: background ?? this.background,
|
||||
backgrounds: backgrounds ?? this.backgrounds,
|
||||
subBackground: subBackground ?? this.subBackground,
|
||||
|
|
@ -51,6 +60,8 @@ class PlayerCharacterState extends Equatable {
|
|||
List<RaceItem> races,
|
||||
SubRaceItem subRace,
|
||||
List<SubRaceItem> subRaces,
|
||||
OriginItem origin,
|
||||
List<OriginItem> origins,
|
||||
BackgroundItem background,
|
||||
List<BackgroundItem> backgrounds,
|
||||
SubBackgroundItem subBackground,
|
||||
|
|
@ -61,6 +72,8 @@ class PlayerCharacterState extends Equatable {
|
|||
races: races ?? this.races,
|
||||
subRace: race != null ? null : subRace ?? this.subRace,
|
||||
subRaces: race != null ? subRaces : subRaces ?? this.subRaces,
|
||||
origin: origin ?? this.origin,
|
||||
origins: origins ?? this.origins,
|
||||
background: background ?? this.background,
|
||||
backgrounds: backgrounds ?? this.backgrounds,
|
||||
subBackground: background != null ? null : subBackground ?? this.subBackground,
|
||||
|
|
@ -74,6 +87,8 @@ class PlayerCharacterState extends Equatable {
|
|||
subRace,
|
||||
races,
|
||||
subRaces,
|
||||
origin,
|
||||
origins,
|
||||
background,
|
||||
subBackground,
|
||||
backgrounds,
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ abstract class BaseDB {
|
|||
|
||||
Future<List<SubRaceItem>> loadSubRaces(RaceItem race);
|
||||
|
||||
Future<List<OriginItem>> loadOrigins();
|
||||
|
||||
Future<List<T>> loadTypedItems<T extends Item>({String itemType, Item item});
|
||||
|
||||
Future<List<BackgroundItem>> loadBackgrounds();
|
||||
|
|
|
|||
|
|
@ -50,6 +50,12 @@ class SembastDB extends BaseDB {
|
|||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<OriginItem>> loadOrigins() {
|
||||
// TODO: implement loadOrigins
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<BackgroundItem>> loadBackgrounds() {
|
||||
// TODO: implement loadBackgrounds
|
||||
|
|
|
|||
|
|
@ -152,6 +152,11 @@ class SqfliteDB extends BaseDB {
|
|||
return null;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<OriginItem>> loadOrigins() async {
|
||||
return loadTypedItems<OriginItem>(itemType: "OriginItem");
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<BackgroundItem>> loadBackgrounds() async {
|
||||
return loadTypedItems<BackgroundItem>(itemType: "BackgroundItem");
|
||||
|
|
|
|||
|
|
@ -334,6 +334,29 @@ class RaceItems extends FilteredItems {
|
|||
}
|
||||
}
|
||||
|
||||
class OriginItem extends Item {
|
||||
String regionsOfOrigin;
|
||||
String mainLanguages;
|
||||
String aspirations;
|
||||
String availableSkills;
|
||||
|
||||
OriginItem(Map<String, dynamic> map) : super(map) {
|
||||
this.regionsOfOrigin = map["RegionsOfOrigin"];
|
||||
this.mainLanguages = map["MainLanguages"];
|
||||
this.aspirations = map["Aspirations"];
|
||||
this.availableSkills = map["AvailableSkills"];
|
||||
}
|
||||
}
|
||||
|
||||
class OriginItems extends FilteredItems {
|
||||
OriginItems(Map<String, dynamic> map) : super(map);
|
||||
|
||||
@override
|
||||
List<Filter> toFilterList() {
|
||||
return [].toList();
|
||||
}
|
||||
}
|
||||
|
||||
class BackgroundItem extends Item {
|
||||
String skillProficiencies;
|
||||
String masteredTools;
|
||||
|
|
@ -360,6 +383,10 @@ Item itemFromMap(Map<String, dynamic> map) {
|
|||
return SubRaceItem(map);
|
||||
case "RaceItems":
|
||||
return RaceItems(map);
|
||||
case "OriginItem":
|
||||
return OriginItem(map);
|
||||
case "OriginItems":
|
||||
return OriginItems(map);
|
||||
case "BackgroundItem":
|
||||
return BackgroundItem(map);
|
||||
case "SubBackgroundItem":
|
||||
|
|
|
|||
|
|
@ -135,6 +135,64 @@ class PCEditorPage extends StatelessWidget {
|
|||
: SizedBox.shrink();
|
||||
}
|
||||
|
||||
Widget _buildOriginsWidget(BuildContext context, PlayerCharacterState state) {
|
||||
return _buildItemsWidget<OriginItem>(
|
||||
context,
|
||||
state,
|
||||
hintText: "Origine",
|
||||
items: state.origins,
|
||||
selectedItem: state.origin,
|
||||
onChanged: (value) {
|
||||
//state.setRace(value);
|
||||
BlocProvider.of<PlayerCharacterBloc>(context).add(OriginEvent(value));
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Widget _buildOriginDetailsWidget(
|
||||
BuildContext context, PlayerCharacterState state) {
|
||||
return state.origin != null
|
||||
? Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
_buildSubTitle(context, state,
|
||||
"RegionsOfOrigin"),
|
||||
//AppLocalizations.of(context).raceAbilityScoreIncrease),
|
||||
_buildMarkdown(context, state, state.origin?.regionsOfOrigin),
|
||||
Text(""),
|
||||
_buildSubTitle(
|
||||
context, state, "MainLanguages"), //AppLocalizations.of(context).raceAge),
|
||||
_buildMarkdown(context, state, state.origin?.mainLanguages),
|
||||
Text(""),
|
||||
_buildSubTitle(
|
||||
context, state, "Aspirations"), //AppLocalizations.of(context).raceAlignment),
|
||||
_buildMarkdown(context, state, state.origin?.aspirations),
|
||||
Text(""),
|
||||
_buildSubTitle(
|
||||
context, state, "AvailableSkills"), //AppLocalizations.of(context).raceSize),
|
||||
_buildMarkdown(context, state, state.origin?.availableSkills),
|
||||
//Text(""),
|
||||
//_buildSubTitle(
|
||||
// context, state, AppLocalizations.of(context).raceSpeed),
|
||||
//_buildMarkdown(context, state, state.race?.speed),
|
||||
//state.race?.darkvision != null ? Text("") : SizedBox.shrink(),
|
||||
//state.race?.darkvision != null
|
||||
// ? _buildSubTitle(context, state,
|
||||
// AppLocalizations.of(context).raceDarkvision)
|
||||
// : SizedBox.shrink(),
|
||||
//state.race?.darkvision != null
|
||||
// ? _buildMarkdown(context, state, state.race?.darkvision)
|
||||
// : SizedBox.shrink(),
|
||||
//Text(""),
|
||||
//_buildSubTitle(
|
||||
// context, state, AppLocalizations.of(context).raceLanguages),
|
||||
//_buildMarkdown(context, state, state.race?.languages),
|
||||
],
|
||||
)
|
||||
: SizedBox.shrink();
|
||||
}
|
||||
|
||||
Widget _buildBackgroundsWidget(
|
||||
BuildContext context, PlayerCharacterState state) {
|
||||
return _buildItemsWidget<BackgroundItem>(
|
||||
|
|
@ -204,7 +262,8 @@ class PCEditorPage extends StatelessWidget {
|
|||
indicatorSize: TabBarIndicatorSize.label,
|
||||
tabs: <Widget>[
|
||||
Text(
|
||||
AppLocalizations.of(context).raceTitle,
|
||||
"Origine",
|
||||
//AppLocalizations.of(context).raceTitle,
|
||||
style: TextStyle(
|
||||
fontSize: 25,
|
||||
fontFamily: "Cinzel",
|
||||
|
|
@ -247,9 +306,11 @@ class PCEditorPage extends StatelessWidget {
|
|||
margin: EdgeInsets.all(10.0),
|
||||
child: ListView(
|
||||
children: <Widget>[
|
||||
_buildRacesWidget(context, state),
|
||||
_buildSubRacesWidget(context, state),
|
||||
_buildRaceDetailsWidget(context, state),
|
||||
//_buildRacesWidget(context, state),
|
||||
//_buildSubRacesWidget(context, state),
|
||||
//_buildRaceDetailsWidget(context, state),
|
||||
_buildOriginsWidget(context, state),
|
||||
_buildOriginDetailsWidget(context, state),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue