mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-31 07:26:09 +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
	
	 Yan Maniez
						Yan Maniez