mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-29 22:45:44 +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);
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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");
|
||||||
|
|
|
||||||
|
|
@ -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":
|
||||||
|
|
|
||||||
|
|
@ -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),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue