2024년 12월 18일
작성자 : 남상민
도감 개구니 상세정보 다이어로그 추가
- 캐릭터 특성(파츠별 확률), 건강도(최소/최대) 표시
- oop, gop, gog 파츠별 확률 계산
- https://www.ggnz.io/ 에서 파츠별 확률 확인 가능
- oop는 캐릭터 특성이 현재 OpenSea에 등록되어 있는 기준으로 소지한유저/전체유저*100로 계산
- ocnz는 DB에 등록된 기준으로 하기 때문에 확률표 생성하지 않기 => NFT화하여 OpenSea에 들어가 있는 기준으로만 확률 계산하기.
- ocnz 개구니 상세정보 다이어로그
- getx_controller.dart
- void getOcnzImageURLCount() // OCNZ 이미지 URL의 갯수 함수 추가
- 도감을 통한 개구니 상세정보 변수. imageURL, health, parts,
- final gogInfo = {}.obs;
final gopInfo = {}.obs;
final oopInfo = {}.obs;
- setPartsImageUrlAndMaxCombinations(String partKey, String partValue) // 마리모의 파츠별 imageURL와 최대 경우의 수를 셋팅
- EncyclopediaModel // 도감에서 개구니 상세정보를 담을 모델 추가
- void getOcnzImageURL() // 도감의 개구니 정보(개구니 imageUrl, health)
- 도감에 필요한 개구니 데이터(개구니 imageUrl, health)를 DB에서 가져와 EncyclopediaModel에 추가하여 Map ocnzInfo에 입력.
- Future<Rx<EncyclopediaModel>> getGgnzInfo(String imageUrl) // // 도감 개구니 클릭 시 상세정보 데이터
- imageUrl 조건에 맞게 부위별 파츠에 관한 데이터를 가져온다
- parts의 이미지URL 저장
- parts의 Key 값들 저장
- parts의 Key 값 저장
- parts별 아이템 인덱스 값을 저장하는 Map으로 Key : 개구니 파츠 부위명, Value : 개구니 아이템 인덱스
- 파츠별 나올 확률 계산 저장
- 도감에 필요한 개구니 상세정보 데이터를 EncyclopediaModel 추가 후 리턴
- collecting_view_controller.dart
- 에러 발생 : NoSuchMethodError: Class '_Map<String, dynamic>' has no instance method '>='
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: NoSuchMethodError: Class '_Map<String, dynamic>' has no instance method '>='. Receiver: _Map len:2 Tried calling: >=(800) #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:38:5) #1 CollectingViewController.getCurrent (package:ggnz/presentation/pages/collecting/collecting_view_controller.dart:83:19) #2 ReactiveCommonController.checkCollecting (package:ggnz/utils/getx_controller.dart:324:48) #3 ReactiveCommonController.getInitialValue (package:ggnz/utils/getx_controller.dart:138:15) <asynchronous suspension> #4 ServiceAppInit.init (package:ggnz/services/service_app_init.dart:145:5)
- <원인>
collecting_view_controller.dart 파일의 int getCurrent(mission) 메서드에서 에러발생
for (var h in getx.ocnzInfo.values { if (h >= m["amount"]) { // h에서 에러발생 tempCurrent += 1; break; }
}
- <해결>
getx.ocnzInfo의 값을 EncyclopediaModel로 변경했기 때문에 health 지정할 필요.
h.value.health로 변경하여 해결 완료
- minting_handler.dart
- time_interval 필드 값 추가 // 도감 - 개구니 상세정보에서 최대 건강도 계산에 필요한 데이터
- assets/json/PartsName.json
- 도감 - 개구니 상세정보에 파츠의 인덱스를 파츠명으로 변경하기 위함
- pubspec.yaml
—
24.09.06
python-dotenv==1.0.1
openai==1.43.1
firebase-functions~=0.4.2
friday_virtual_assistant
openAi flutter project using ChatGpt and Dale-E
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:38:5)
#1 _HomeScreenState.sendRequestToOpenAI.<anonymous closure>.<anonymous closure> (package:friday_virtual_assistant/screens/home_screen.dart:106:74)
#2 State.setState (package:flutter/src/widgets/framework.dart:1203:30)
#3 _HomeScreenState.sendRequestToOpenAI.<anonymous closure> (package:friday_virtual_assistant/screens/home_screen.dart:105:9)
<asynchronous suspension>
#4 _HomeScreenState.sendRequestToOpenAI (package:friday_virtual_assistant/screens/home_screen.dart:82:5)
<asynchronous suspension>
—