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); |       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
	
	 Yan Maniez
						Yan Maniez