def seeCharacterStatusPanel(characterId:str): ''' 查看角色状态面板 Keyword arguments: characterId -- 角色Id ''' statusTextData = TextLoading.getTextData(TextLoading.stageWordPath, '134') characterData = CacheContorl.characterData['character'][characterId] statusData = characterData.Status for stateType in statusData: EraPrint.sontitleprint(statusTextData[stateType]) nowStatusData = statusData[stateType].copy() if stateType == 'SexFeel': if characterData.Sex == 'Man': del nowStatusData['VaginaDelight'] del nowStatusData['ClitorisDelight'] del nowStatusData['VaginaLubrication'] elif characterData.Sex == 'Woman': del nowStatusData['PenisDelight'] elif characterData.Sex == 'Asexual': del nowStatusData['VaginaDelight'] del nowStatusData['ClitorisDelight'] del nowStatusData['VaginaLubrication'] del nowStatusData['PenisDelight'] nowStatusTextList = [statusTextData[state] + ':' + str(nowStatusData[state]) for state in nowStatusData] size = 7 if len(nowStatusTextList) < size: size = len(nowStatusTextList) EraPrint.plist(nowStatusTextList,size,'center') EraPrint.pl()
def seeCharacterEquipmentPanel(characterId: str) -> str: ''' 查看角色装备面板 Keyword arguments: characterId -- 角色Id ''' EraPrint.plittleline() EraPrint.p(TextLoading.getTextData(TextLoading.stageWordPath, '37')) panelState = CacheContorl.panelState['CharacterEquipmentPanel'] if panelState == "0": PyCmd.pcmd(panelStateOffText, 'CharacterEquipmentPanel') characterData = AttrHandle.getAttrData(characterId) EraPrint.p('\n') EraPrint.p(TextLoading.getTextData(TextLoading.stageWordPath, '39')) EraPrint.p('\n') characterClothingList = characterData['Clothing'] characterClothingText = AttrText.getClothingText(characterClothingList) EraPrint.plist(characterClothingText, 4, 'center') EraPrint.p('\n') EraPrint.p(TextLoading.getTextData(TextLoading.stageWordPath, '40')) EraPrint.p('\n') characterSexItemList = characterData['SexItem'] characterSexItemText = AttrText.getSexItemText(characterSexItemList) EraPrint.plist(characterSexItemText, 5, 'center') else: PyCmd.pcmd(panelStateOnText, 'CharacterEquipmentPanel', None) EraPrint.p('\n') return 'CharacterEquipmentPanel'
def seeClothingInfoPanel(characterId:str,clothingType:str,clothingId:str,wearClothingJudge:bool): ''' 查看服装详细信息面板 Keyword arguments: characterId -- 角色id clothingType -- 服装类型 clothingId -- 服装id ''' EraPrint.plt(TextLoading.getTextData(TextLoading.stageWordPath,'126')) clothingData = CacheContorl.characterData['character'][characterId]['Clothing'][clothingType][clothingId] infoList = [] clothingName = clothingData['Name'] if wearClothingJudge: clothingName += ' ' + TextLoading.getTextData(TextLoading.stageWordPath,'125') infoList.append(TextLoading.getTextData(TextLoading.stageWordPath,'128') + clothingName) clothingTypeText = Clothing.clothingTypeTextList[clothingType] infoList.append(TextLoading.getTextData(TextLoading.stageWordPath,'129') + clothingTypeText) evaluationText = TextLoading.getTextData(TextLoading.stageWordPath,'131') + clothingData['Evaluation'] infoList.append(evaluationText) EraPrint.plist(infoList,3,'center') EraPrint.sontitleprint(TextLoading.getTextData(TextLoading.stageWordPath,'130')) tagTextList = [] for tag in Clothing.clothingTagTextList: tagText = Clothing.clothingTagTextList[tag] tagText += str(clothingData[tag]) tagTextList.append(tagText) EraPrint.plist(tagTextList,4,'center') EraPrint.sontitleprint(TextLoading.getTextData(TextLoading.stageWordPath,'127')) EraPrint.p(clothingData['Describe'])
def printHpAndMpBar(characterId: str): ''' 绘制角色的hp和mp(有比例图),自动居中处理,结尾换行 Keyword arguments: characterId -- 角色id ''' hpBar = getHpOrMpBar(characterId, 'HitPoint', GameConfig.text_width / 2 - 4) mpBar = getHpOrMpBar(characterId, 'ManaPoint', GameConfig.text_width / 2 - 4) EraPrint.p('\n') EraPrint.plist([hpBar, mpBar], 2, 'center') EraPrint.p('\n')
def seeCharacterLanguagePanel(characterId: str): ''' 查看角色语言能力面板 Keyword arguments: characterId -- 角色Id ''' languageTextData = TextLoading.getGameData(TextLoading.languageSkillsPath) characterLanguage = CacheContorl.characterData['character'][ characterId].Language infoList = [ languageTextData[language]['Name'] + ":" + AttrText.getLevelColorText(characterLanguage[language]) for language in characterLanguage ] EraPrint.plist(infoList, 4, 'center')
def seeCharacterEngravingPanel(characterId): EraPrint.plittleline() EraPrint.p(TextLoading.getTextData(TextLoading.stageWordPath, '7')) panelState = CacheContorl.panelState['CharacterEngravingPanel'] if panelState == "0": PyCmd.pcmd(panelStateOffText, 'CharacterEngravingPanel') EraPrint.p('\n') characterData = AttrHandle.getAttrData(characterId) characterEngraving = characterData['Engraving'] characterEngravingText = AttrText.getEngravingText(characterEngraving) EraPrint.plist(characterEngravingText, 3, 'center') return 'CharacterEngravingPanel' else: PyCmd.pcmd(panelStateOnText, 'CharacterEngravingPanel') EraPrint.p('\n') return 'CharacterEngravingPanel'
def seeCharacterSexExperiencePanel(characterId: int): ''' 查看角色性经验面板 Keyword arguments: characterId -- 角色Id ''' EraPrint.plittleline() EraPrint.pl(TextLoading.getTextData(TextLoading.stageWordPath, '5')) characterData = CacheContorl.characterData['character'][characterId] characterSexGradeList = characterData.SexGrade characterSex = CacheContorl.characterData['character'][characterId].Sex characterSexGradeTextList = AttrText.getSexGradeTextList( characterSexGradeList, characterSex) EraPrint.plist(characterSexGradeTextList, 4, 'center') EraPrint.pl(TextLoading.getTextData(TextLoading.stageWordPath, '7')) characterEngraving = characterData.Engraving characterEngravingText = AttrText.getEngravingText(characterEngraving) EraPrint.plist(characterEngravingText, 3, 'center')
def seeCharacterWearItemPanel(characterId: int, changeButton: bool) -> list: ''' 用于查看角色穿戴道具列表的面板 Keyword arguments: characterId -- 角色Id changeButton -- 将角色穿戴道具列表绘制成按钮的开关 ''' wearItemInfoTextData = TextLoading.getTextData(TextLoading.stageWordPath, '49') wearData = CacheContorl.characterData['character'][characterId].WearItem[ 'Wear'] wearItemTextData = {} itemData = CacheContorl.characterData['character'][characterId].WearItem[ 'Item'] wearItemButtonList = [] inputS = [] for wearType in wearData: nowWearData = wearData[wearType] if nowWearData == {}: wearItemButtonList.append( wearItemInfoTextData[wearType] + ':' + TextLoading.getTextData(TextLoading.stageWordPath, '117')) else: wearText = '' for wearId in nowWearData: wearText += '[' + itemData[wearType][wearId]['Name'] + ']' wearItemButtonList.append(wearItemInfoTextData[wearType] + ':' + wearText) wearItemTextData[wearType] = itemData[wearType][wearId]['Name'] if changeButton: inputS = [str(i) for i in range(len(wearData))] CmdButtonQueue.optionint( None, 4, 'left', True, False, 'center', 0, wearItemButtonList, ) else: EraPrint.plist(wearItemButtonList, 4, 'center') return inputS
def printHpAndMpBar(characterId:str): ''' 绘制角色的hp和mp(有比例图),自动居中处理,结尾换行 Keyword arguments: characterId -- 角色id ''' characterData = AttrHandle.getAttrData(characterId) characterHitPoint = characterData['HitPoint'] characterMaxHitPoint = characterData['HitPointMax'] hitPointText = TextLoading.getTextData(TextLoading.stageWordPath, '8') hitPointBar = ProportionalBar.getProportionalBar(hitPointText, characterMaxHitPoint, characterHitPoint, 'hpbar') characterManaPoint = characterData['ManaPoint'] characterMaxManaPoint = characterData['ManaPointMax'] manaPointText = TextLoading.getTextData(TextLoading.stageWordPath, '9') manaPointBar = ProportionalBar.getProportionalBar(manaPointText, characterMaxManaPoint, characterManaPoint, 'mpbar') hpmpBarList = [hitPointBar, manaPointBar] EraPrint.p('\n') EraPrint.plist(hpmpBarList, 2, 'center') EraPrint.p('\n')
def seeCharacterKnowledgePanel(characterId: str): ''' 查看角色技能信息面板 Keyword arguments: characterId -- 角色Id ''' knowledgeTextData = TextLoading.getGameData(TextLoading.knowledge) characterKnowledge = CacheContorl.characterData['character'][ characterId].Knowledge for knowledge in knowledgeTextData: EraPrint.sontitleprint(knowledgeTextData[knowledge]['Name']) if knowledge in characterKnowledge: infoList = [ knowledgeTextData[knowledge]['Knowledge'][skill]['Name'] + ":" + AttrText.getLevelColorText( characterKnowledge[knowledge][skill]) for skill in characterKnowledge[knowledge] ] EraPrint.plist(infoList, 6, 'center')
def seeCharacterExperiencePanel(characterId): EraPrint.plittleline() EraPrint.p(TextLoading.getTextData(TextLoading.stageWordPath, '18')) panelState = CacheContorl.panelState['CharacterExperiencePanel'] if panelState == "0": PyCmd.pcmd(panelStateOffText, 'CharacterExperiencePanel') characterData = AttrHandle.getAttrData(characterId) EraPrint.p('\n') characterSexExperienceList = characterData['SexExperience'] characterSex = CacheContorl.characterData['character'][characterId][ 'Sex'] characterSexTextList = AttrText.getSexExperienceText( characterSexExperienceList, characterSex) EraPrint.plist(characterSexTextList, 4, 'center') return 'CharacterExperiencePanel' else: PyCmd.pcmd(panelStateOnText, 'CharacterExperiencePanel') EraPrint.p('\n') return 'CharacterExperiencePanel'
def printHpAndMpBar(characterId): characterData = AttrHandle.getAttrData(characterId) characterHitPoint = characterData['HitPoint'] characterMaxHitPoint = characterData['HitPointMax'] hitPointText = TextLoading.getTextData(TextLoading.stageWordPath, '8') hitPointBar = ProportionalBar.getProportionalBar(hitPointText, characterMaxHitPoint, characterHitPoint, 'hpbar') characterManaPoint = characterData['ManaPoint'] characterMaxManaPoint = characterData['ManaPointMax'] manaPointText = TextLoading.getTextData(TextLoading.stageWordPath, '9') manaPointBar = ProportionalBar.getProportionalBar(manaPointText, characterMaxManaPoint, characterManaPoint, 'mpbar') hpmpBarList = [hitPointBar, manaPointBar] EraPrint.p('\n') EraPrint.plist(hpmpBarList, 2, 'center') EraPrint.p('\n')
def seeCharacter(characterId: str, judge: bool) -> list: ''' 用于任何时候查看角色性格信息面板 Keyword arguments: characterId -- 角色Id judge -- 绘制按钮校验 Return arguments: list -- 按钮列表 ''' natureTextData = TextLoading.getGameData(TextLoading.naturePath) characterNature = CacheContorl.characterData['character'][ characterId].Nature cmdList = [] for nature in natureTextData: natureText = natureTextData[nature]['Name'] if 'Good' in natureText: nowNatureValues = [ characterNature[sonNature] for sonNature in natureTextData[nature]['Factor'] ] nowNatureValue = sum(nowNatureValues) nowNatureMax = len(nowNatureValues) * 100 if nowNatureValue < nowNatureMax / 2: natureText = natureText['Bad'] else: natureText = natureText['Good'] EraPrint.sontitleprint(natureText) infoList = [ natureTextData[nature]['Factor'][sonNature][judgeNatureGood( characterNature[sonNature])] for sonNature in natureTextData[nature]['Factor'] ] if judge: nowSonList = [son for son in natureTextData[nature]['Factor']] cmdList += nowSonList CmdButtonQueue.optionstr(None, len(nowSonList), 'center', False, False, infoList, '', nowSonList) else: EraPrint.plist(infoList, len(infoList), 'center') return cmdList
def showSceneNameListPanel() -> str: ''' 地图下场景名称绘制面板 ''' titleText = TextLoading.getTextData(TextLoading.stageWordPath, '86') EraPrint.p(titleText) panelState = CacheContorl.panelState['SeeSceneNameListPanel'] if panelState == '0': PyCmd.pcmd(panelStateOffText, "SeeSceneNameListPanel") EraPrint.p('\n') nowMap = CacheContorl.nowMap nowMapMapSystemStr = MapHandle.getMapSystemPathStrForList(nowMap) sceneNameData = MapHandle.getSceneNameListForMapPath( nowMapMapSystemStr) sceneNameList = [] for scene in sceneNameData: sceneNameList.append(scene + ':' + sceneNameData[scene]) EraPrint.plist(sceneNameList, 5, 'center') else: PyCmd.pcmd(panelStateOnText, 'SeeSceneNameListPanel') EraPrint.p('\n') EraPrint.plittleline() return 'SeeSceneNameListPanel'
def seeCharacterSocialContactPanel(characterId: int): ''' 查看角色社交信息面板 Keyword arguments: characterId -- 角色Id ''' socialContactTextData = TextLoading.getTextData(TextLoading.stageWordPath, '144') characterSocialContact = CacheContorl.characterData['character'][ characterId].SocialContact for social in socialContactTextData: EraPrint.sontitleprint(socialContactTextData[social]) if characterSocialContact[social] == {}: EraPrint.p(TextLoading.getTextData(TextLoading.messagePath, '40')) else: size = 10 if len(characterSocialContact[social]) < 10: size = len(characterSocialContact[social]) nameList = [ CacheContorl.characterData['character'][characterId].Name for characterId in characterSocialContact[social] ] EraPrint.plist(nameList, size, 'center')
def seeCharacterLevelPanel(characterId: str) -> str: ''' 查看角色技能等级面板 Keyword arguments: characterId -- 角色Id ''' EraPrint.plittleline() EraPrint.p(TextLoading.getTextData(TextLoading.stageWordPath, '5')) panelState = CacheContorl.panelState['CharacterLevelPanel'] if panelState == "0": PyCmd.pcmd(panelStateOffText, 'CharacterLevelPanel') EraPrint.p('\n') characterData = AttrHandle.getAttrData(characterId) characterSexGradeList = characterData['SexGrade'] characterSex = CacheContorl.characterData['character'][characterId][ 'Sex'] characterSexGradeTextList = AttrText.getSexGradeTextList( characterSexGradeList, characterSex) EraPrint.plist(characterSexGradeTextList, 4, 'center') else: PyCmd.pcmd(panelStateOnText, 'CharacterLevelPanel') EraPrint.p('\n') return 'CharacterLevelPanel'
def seeCharacterHPAndMPInSence(characterId:int): ''' 在场景中显示角色的HP和MP Keyword arguments: characterId -- 角色Id ''' if characterId == 0: AttrPrint.printHpAndMpBar(characterId) else: characterIdText = TextLoading.getTextData(TextLoading.stageWordPath, '0') + '0' + ':' + CacheContorl.characterData['character'][0].Name targetIdText = TextLoading.getTextData(TextLoading.stageWordPath, '0') + f'{characterId}' + ':' + CacheContorl.characterData['character'][characterId].Name EraPrint.plist([characterIdText,targetIdText],2,'center') EraPrint.pl() playerBar = AttrPrint.getHpOrMpBar(0,'HitPoint',GameConfig.text_width / 2 - 4) targetBar = AttrPrint.getHpOrMpBar(characterId,'HitPoint',GameConfig.text_width / 2 - 4) EraPrint.plist([playerBar,targetBar],2,'center') EraPrint.pl() playerBar = AttrPrint.getHpOrMpBar(0,'ManaPoint',GameConfig.text_width / 2 - 4) targetBar = AttrPrint.getHpOrMpBar(characterId,'ManaPoint',GameConfig.text_width / 2 - 4) EraPrint.plist([playerBar,targetBar],2,'center') EraPrint.pl()
def seeCharacterMainAttrPanel(characterId:int): ''' 查看角色主属性面板 Keyword arguments: characterId -- 角色Id ''' title1 = TextLoading.getTextData(TextLoading.stageWordPath, '1') EraPrint.plt(title1) characterIdText = f"{TextLoading.getTextData(TextLoading.stageWordPath, '0')}{characterId}" characterData = CacheContorl.characterData['character'][characterId] name = characterData.Name nickName = characterData.NickName characterName = TextLoading.getTextData(TextLoading.stageWordPath,'13') + name characterNickName = TextLoading.getTextData(TextLoading.stageWordPath,'12') + nickName sex = characterData.Sex sexText = TextLoading.getTextData(TextLoading.stageWordPath, '2') + AttrText.getSexText(sex) nameText = characterIdText + ' ' + characterName + ' ' + characterNickName + ' ' + sexText hpBar = AttrPrint.getHpOrMpBar(characterId,'HitPoint',GameConfig.text_width / 2 - 4) EraPrint.plist([nameText,hpBar],2,'center') EraPrint.pl() stateText = AttrText.getStateText(characterId) mpBar = AttrPrint.getHpOrMpBar(characterId,'ManaPoint',GameConfig.text_width / 2 - 4) EraPrint.plist([stateText,mpBar],2,'center') EraPrint.pl() EraPrint.plittleline() statureText = AttrText.getStatureText(characterId) EraPrint.pl(statureText) EraPrint.pline('.') EraPrint.pl(AttrText.getCharacterDormitoryPathText(characterId)) EraPrint.plittleline() characterSpecies = f"{TextLoading.getTextData(TextLoading.stageWordPath, '15')}{characterData.Species}" characterAge = f"{TextLoading.getTextData(TextLoading.stageWordPath, '3')}{characterData.Age}" birthdayText = f"{TextLoading.getTextData(TextLoading.stageWordPath,'140')}{characterData.Birthday['month']}{TextLoading.getTextData(TextLoading.stageWordPath,'60')}{characterData.Birthday['day']}{TextLoading.getTextData(TextLoading.stageWordPath,'61')}" EraPrint.plist([characterSpecies,characterAge,birthdayText],3,'center') EraPrint.pline('.') characterIntimate = f"{TextLoading.getTextData(TextLoading.stageWordPath, '16')}{characterData.Intimate}" characterGraces = f"{TextLoading.getTextData(TextLoading.stageWordPath, '17')}{characterData.Graces}" EraPrint.plist([characterIntimate,characterGraces],2,'center') EraPrint.pline('.') characterChest = characterData.Chest['NowChest'] chestGroup = AttrCalculation.judgeChestGroup(characterChest) chestText = TextLoading.getTextData(TextLoading.stageWordPath,'141') + TextLoading.getTextData(TextLoading.stageWordPath,'142')[chestGroup] EraPrint.plist([chestText],1,'center') EraPrint.pline('.') characterHeight = characterData.Height['NowHeight'] characterWeight = characterData.Weight characterHeightText = str(round(characterHeight,2)) characterWeightText = str(round(characterWeight,2)) characterHeightInfo = TextLoading.getTextData(TextLoading.stageWordPath,'80') + characterHeightText characterWeightInfo = TextLoading.getTextData(TextLoading.stageWordPath,'81') + characterWeightText EraPrint.plist([characterHeightInfo,characterWeightInfo],2,'center') EraPrint.pline('.') characterMeasurements = characterData.Measurements characterBust = str(round(characterMeasurements['Bust'],2)) characterWaist = str(round(characterMeasurements['Waist'],2)) characterHip = str(round(characterMeasurements['Hip'],2)) characterBustInfo = TextLoading.getTextData(TextLoading.stageWordPath,'82') + characterBust characterWaistInfo = TextLoading.getTextData(TextLoading.stageWordPath,'83') + characterWaist characterHipInfo = TextLoading.getTextData(TextLoading.stageWordPath,'84') + characterHip EraPrint.plist([characterBustInfo,characterWaistInfo,characterHipInfo],3,'center') EraPrint.pline('.')
def seeCharacterMainAttrPanel(characterId): title1 = TextLoading.getTextData(TextLoading.stageWordPath, '1') EraPrint.plt(title1) characteridText = TextLoading.getTextData(TextLoading.stageWordPath, '0') + characterId EraPrint.p(characteridText) panelState = CacheContorl.panelState['CharacterMainAttrPanel'] if panelState == "0": PyCmd.pcmd(panelStateOffText, 'CharacterMainAttrPanel', None) EraPrint.p('\n') attrListString = [] characterData = AttrHandle.getAttrData(characterId) characterSexId = characterData['Sex'] characterSex = AttrText.getSexText(characterSexId) characterAge = characterData['Age'] characterName = characterData['Name'] fixCharacterName = TextLoading.getTextData(TextLoading.stageWordPath, '13') characterName = fixCharacterName + characterName attrListString.append(characterName) characterSelfName = characterData['SelfName'] fixCharacterSelfName = TextLoading.getTextData( TextLoading.stageWordPath, '11') characterSelfName = fixCharacterSelfName + characterSelfName attrListString.append(characterSelfName) characterNickName = characterData['NickName'] characterNickName = TextLoading.getTextData(TextLoading.stageWordPath, '12') + characterNickName attrListString.append(characterNickName) relationship = characterData['Relationship'] relationship = TextLoading.getTextData(TextLoading.stageWordPath, '14') + relationship attrListString.append(relationship) characterSpecies = characterData['Species'] characterSpecies = TextLoading.getTextData(TextLoading.stageWordPath, '15') + characterSpecies attrListString.append(characterSpecies) characterSex = TextLoading.getTextData(TextLoading.stageWordPath, '2') + characterSex attrListString.append(characterSex) characterAge = TextLoading.getTextData(TextLoading.stageWordPath, '3') + str(characterAge) attrListString.append(characterAge) EraPrint.p('\n') characterSan = characterData['San'] characterSan = TextLoading.getTextData(TextLoading.stageWordPath, '10') + characterSan attrListString.append(characterSan) characterHeight = characterData['Height']['NowHeight'] characterWeight = characterData['Weight'] characterMeasurements = characterData['Measurements'] characterHeightText = str(round(characterHeight, 2)) characterWeightText = str(round(characterWeight, 2)) characterBust = str(round(characterMeasurements['Bust'], 2)) characterWaist = str(round(characterMeasurements['Waist'], 2)) characterHip = str(round(characterMeasurements['Hip'], 2)) characterHeightInfo = TextLoading.getTextData( TextLoading.stageWordPath, '80') + characterHeightText attrListString.append(characterHeightInfo) characterWeightInfo = TextLoading.getTextData( TextLoading.stageWordPath, '81') + characterWeightText attrListString.append(characterWeightInfo) characterBustInfo = TextLoading.getTextData(TextLoading.stageWordPath, '82') + characterBust characterWaistInfo = TextLoading.getTextData(TextLoading.stageWordPath, '83') + characterWaist characterHipInfo = TextLoading.getTextData(TextLoading.stageWordPath, '84') + characterHip characterIntimate = characterData['Intimate'] characterIntimate = TextLoading.getTextData(TextLoading.stageWordPath, '16') + characterIntimate attrListString.append(characterIntimate) characterGraces = characterData['Graces'] characterGraces = TextLoading.getTextData(TextLoading.stageWordPath, '17') + characterGraces attrListString.append(characterGraces) attrListString.append(characterBustInfo) attrListString.append(characterWaistInfo) attrListString.append(characterHipInfo) EraPrint.plist(attrListString, 4, 'center') EraPrint.p('\n') AttrPrint.printHpAndMpBar(characterId) return 'CharacterMainAttrPanel' else: characterName = CacheContorl.characterData['character'][characterId][ 'Name'] EraPrint.p(' ' + characterName + ' ') PyCmd.pcmd(panelStateOnText, 'CharacterMainAttrPanel', None) EraPrint.p('\n') return 'CharacterMainAttrPanel'