1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-30 15:06:06 +00:00
This commit is contained in:
Yan Maniez 2020-05-16 13:12:24 +02:00
parent 49a46595d7
commit 8987e446a8
8 changed files with 132 additions and 6 deletions

View file

@ -19,6 +19,8 @@ class PlayerCharacterBloc
yield* _mapRaceEventToState(event); yield* _mapRaceEventToState(event);
} else if (event is SubRaceEvent) { } else if (event is SubRaceEvent) {
yield* _mapSubRaceEventToState(event); yield* _mapSubRaceEventToState(event);
} else if (event is OriginEvent) {
yield* _mapOriginEventToState(event);
} else if (event is BackgroundEvent) { } else if (event is BackgroundEvent) {
yield* _mapBackgroundEventToState(event); yield* _mapBackgroundEventToState(event);
} else if (event is SubBackgroundEvent) { } else if (event is SubBackgroundEvent) {
@ -33,11 +35,14 @@ class PlayerCharacterBloc
var subRaces = await _db.loadSubRaces(event.item); var subRaces = await _db.loadSubRaces(event.item);
yield state.copyWithClean(race: event.item, subRaces: subRaces); yield state.copyWithClean(race: event.item, subRaces: subRaces);
} }
Stream<PlayerCharacterState> _mapSubRaceEventToState( Stream<PlayerCharacterState> _mapSubRaceEventToState(
SubRaceEvent event) async* { SubRaceEvent event) async* {
yield state.copyWith(subRace: event.item); yield state.copyWith(subRace: event.item);
} }
Stream<PlayerCharacterState> _mapOriginEventToState(
OriginEvent event) async* {
yield state.copyWith(origin: event.item);
}
Stream<PlayerCharacterState> _mapBackgroundEventToState( Stream<PlayerCharacterState> _mapBackgroundEventToState(
BackgroundEvent event) async* { BackgroundEvent event) async* {
var subBackgrounds = await _db.loadSubBackgrounds(event.item); var subBackgrounds = await _db.loadSubBackgrounds(event.item);
@ -50,7 +55,8 @@ class PlayerCharacterBloc
Stream<PlayerCharacterState> _mapLoadEventToState( Stream<PlayerCharacterState> _mapLoadEventToState(
LoadEvent event) async* { LoadEvent event) async* {
var races = await _db.loadRaces(); var races = await _db.loadRaces();
var origins = await _db.loadOrigins();
var backgrounds = await _db.loadBackgrounds(); var backgrounds = await _db.loadBackgrounds();
yield state.copyWith(races: races, backgrounds: backgrounds); // state; yield state.copyWith(races: races, origins: origins, backgrounds: backgrounds); // state;
} }
} }

View file

@ -20,6 +20,10 @@ class SubRaceEvent extends SetItemEvent<SubRaceItem> {
SubRaceEvent(SubRaceItem item) : super(item); SubRaceEvent(SubRaceItem item) : super(item);
} }
class OriginEvent extends SetItemEvent<OriginItem> {
OriginEvent(OriginItem item) : super(item);
}
class BackgroundEvent extends SetItemEvent<BackgroundItem> { class BackgroundEvent extends SetItemEvent<BackgroundItem> {
BackgroundEvent(BackgroundItem item) : super(item); BackgroundEvent(BackgroundItem item) : super(item);
} }

View file

@ -8,6 +8,9 @@ class PlayerCharacterState extends Equatable {
final List<RaceItem> races; final List<RaceItem> races;
final List<SubRaceItem> subRaces; final List<SubRaceItem> subRaces;
final OriginItem origin;
final List<OriginItem> origins;
final BackgroundItem background; final BackgroundItem background;
final SubBackgroundItem subBackground; final SubBackgroundItem subBackground;
final List<BackgroundItem> backgrounds; final List<BackgroundItem> backgrounds;
@ -18,6 +21,8 @@ class PlayerCharacterState extends Equatable {
this.races, this.races,
this.subRace, this.subRace,
this.subRaces, this.subRaces,
this.origin,
this.origins,
this.background, this.background,
this.backgrounds, this.backgrounds,
this.subBackground, this.subBackground,
@ -29,6 +34,8 @@ class PlayerCharacterState extends Equatable {
List<RaceItem> races, List<RaceItem> races,
SubRaceItem subRace, SubRaceItem subRace,
List<SubRaceItem> subRaces, List<SubRaceItem> subRaces,
OriginItem origin,
List<OriginItem> origins,
BackgroundItem background, BackgroundItem background,
List<BackgroundItem> backgrounds, List<BackgroundItem> backgrounds,
SubBackgroundItem subBackground, SubBackgroundItem subBackground,
@ -39,6 +46,8 @@ class PlayerCharacterState extends Equatable {
races: races ?? this.races, races: races ?? this.races,
subRace: subRace ?? this.subRace, subRace: subRace ?? this.subRace,
subRaces: subRaces ?? this.subRaces, subRaces: subRaces ?? this.subRaces,
origin: origin ?? this.origin,
origins: origins ?? this.origins,
background: background ?? this.background, background: background ?? this.background,
backgrounds: backgrounds ?? this.backgrounds, backgrounds: backgrounds ?? this.backgrounds,
subBackground: subBackground ?? this.subBackground, subBackground: subBackground ?? this.subBackground,
@ -51,6 +60,8 @@ class PlayerCharacterState extends Equatable {
List<RaceItem> races, List<RaceItem> races,
SubRaceItem subRace, SubRaceItem subRace,
List<SubRaceItem> subRaces, List<SubRaceItem> subRaces,
OriginItem origin,
List<OriginItem> origins,
BackgroundItem background, BackgroundItem background,
List<BackgroundItem> backgrounds, List<BackgroundItem> backgrounds,
SubBackgroundItem subBackground, SubBackgroundItem subBackground,
@ -61,6 +72,8 @@ class PlayerCharacterState extends Equatable {
races: races ?? this.races, races: races ?? this.races,
subRace: race != null ? null : subRace ?? this.subRace, subRace: race != null ? null : subRace ?? this.subRace,
subRaces: race != null ? subRaces : subRaces ?? this.subRaces, subRaces: race != null ? subRaces : subRaces ?? this.subRaces,
origin: origin ?? this.origin,
origins: origins ?? this.origins,
background: background ?? this.background, background: background ?? this.background,
backgrounds: backgrounds ?? this.backgrounds, backgrounds: backgrounds ?? this.backgrounds,
subBackground: background != null ? null : subBackground ?? this.subBackground, subBackground: background != null ? null : subBackground ?? this.subBackground,
@ -74,6 +87,8 @@ class PlayerCharacterState extends Equatable {
subRace, subRace,
races, races,
subRaces, subRaces,
origin,
origins,
background, background,
subBackground, subBackground,
backgrounds, backgrounds,

View file

@ -12,6 +12,8 @@ abstract class BaseDB {
Future<List<SubRaceItem>> loadSubRaces(RaceItem race); Future<List<SubRaceItem>> loadSubRaces(RaceItem race);
Future<List<OriginItem>> loadOrigins();
Future<List<T>> loadTypedItems<T extends Item>({String itemType, Item item}); Future<List<T>> loadTypedItems<T extends Item>({String itemType, Item item});
Future<List<BackgroundItem>> loadBackgrounds(); Future<List<BackgroundItem>> loadBackgrounds();

View file

@ -50,6 +50,12 @@ class SembastDB extends BaseDB {
throw UnimplementedError(); throw UnimplementedError();
} }
@override
Future<List<OriginItem>> loadOrigins() {
// TODO: implement loadOrigins
throw UnimplementedError();
}
@override @override
Future<List<BackgroundItem>> loadBackgrounds() { Future<List<BackgroundItem>> loadBackgrounds() {
// TODO: implement loadBackgrounds // TODO: implement loadBackgrounds

View file

@ -152,6 +152,11 @@ class SqfliteDB extends BaseDB {
return null; return null;
} }
@override
Future<List<OriginItem>> loadOrigins() async {
return loadTypedItems<OriginItem>(itemType: "OriginItem");
}
@override @override
Future<List<BackgroundItem>> loadBackgrounds() async { Future<List<BackgroundItem>> loadBackgrounds() async {
return loadTypedItems<BackgroundItem>(itemType: "BackgroundItem"); return loadTypedItems<BackgroundItem>(itemType: "BackgroundItem");

View file

@ -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 { class BackgroundItem extends Item {
String skillProficiencies; String skillProficiencies;
String masteredTools; String masteredTools;
@ -360,6 +383,10 @@ Item itemFromMap(Map<String, dynamic> map) {
return SubRaceItem(map); return SubRaceItem(map);
case "RaceItems": case "RaceItems":
return RaceItems(map); return RaceItems(map);
case "OriginItem":
return OriginItem(map);
case "OriginItems":
return OriginItems(map);
case "BackgroundItem": case "BackgroundItem":
return BackgroundItem(map); return BackgroundItem(map);
case "SubBackgroundItem": case "SubBackgroundItem":

View file

@ -135,6 +135,64 @@ class PCEditorPage extends StatelessWidget {
: SizedBox.shrink(); : 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( Widget _buildBackgroundsWidget(
BuildContext context, PlayerCharacterState state) { BuildContext context, PlayerCharacterState state) {
return _buildItemsWidget<BackgroundItem>( return _buildItemsWidget<BackgroundItem>(
@ -204,7 +262,8 @@ class PCEditorPage extends StatelessWidget {
indicatorSize: TabBarIndicatorSize.label, indicatorSize: TabBarIndicatorSize.label,
tabs: <Widget>[ tabs: <Widget>[
Text( Text(
AppLocalizations.of(context).raceTitle, "Origine",
//AppLocalizations.of(context).raceTitle,
style: TextStyle( style: TextStyle(
fontSize: 25, fontSize: 25,
fontFamily: "Cinzel", fontFamily: "Cinzel",
@ -247,9 +306,11 @@ class PCEditorPage extends StatelessWidget {
margin: EdgeInsets.all(10.0), margin: EdgeInsets.all(10.0),
child: ListView( child: ListView(
children: <Widget>[ children: <Widget>[
_buildRacesWidget(context, state), //_buildRacesWidget(context, state),
_buildSubRacesWidget(context, state), //_buildSubRacesWidget(context, state),
_buildRaceDetailsWidget(context, state), //_buildRaceDetailsWidget(context, state),
_buildOriginsWidget(context, state),
_buildOriginDetailsWidget(context, state),
], ],
), ),
), ),