# -*- coding: utf-8 -*- from odoo import models, fields class YtCodexResource(models.Model): """图鉴-资源(材料/加工品/特殊)""" _name = 'yt.codex.resource' _description = '图鉴-资源' _order = 'category, sequence, id' name = fields.Char(string='名称', required=True, translate=True) code = fields.Char(string='编码', required=True, index=True) icon = fields.Char(string='图标', default='📦') category = fields.Selection([ ('material', '材料'), ('processed', '加工品'), ('special', '特殊'), ], string='分类', required=True, default='material') quality = fields.Selection([ ('common', '普通'), ('uncommon', '优秀'), ('rare', '精良'), ('epic', '史诗'), ('legendary', '传说'), ], string='基准品质', default='common') description = fields.Char(string='描述') source = fields.Char(string='来源') uses = fields.Char(string='用途') recipe = fields.Json(string='配方') # [{"code":"wood","num":3}] sequence = fields.Integer(string='排序', default=10) class YtCodexCreature(models.Model): """图鉴-生物""" _name = 'yt.codex.creature' _description = '图鉴-生物' _order = 'sequence, id' name = fields.Char(string='名称', required=True, translate=True) code = fields.Char(string='编码', required=True, index=True) icon = fields.Char(string='图标', default='🐾') habitat = fields.Char(string='栖息地') tameable = fields.Boolean(string='可驯养', default=False) diet = fields.Char(string='食性') products = fields.Json(string='产物') description = fields.Char(string='描述') sequence = fields.Integer(string='排序', default=10) class YtCodexMonster(models.Model): """图鉴-野怪/精英/Boss""" _name = 'yt.codex.monster' _description = '图鉴-野怪' _order = 'tier, level_min, sequence' name = fields.Char(string='名称', required=True, translate=True) code = fields.Char(string='编码', required=True, index=True) icon = fields.Char(string='图标', default='👹') tier = fields.Selection([ ('normal', '普通野怪'), ('elite', '精英野怪'), ('boss', 'Boss'), ], string='等级', required=True, default='normal') level_min = fields.Integer(string='最小等级', default=1) level_max = fields.Integer(string='最大等级', default=5) habitat = fields.Char(string='栖息地') description = fields.Char(string='描述') drops = fields.Json(string='掉落') sequence = fields.Integer(string='排序', default=10) class YtCodexRace(models.Model): """图鉴-种族""" _name = 'yt.codex.race' _description = '图鉴-种族' _order = 'sequence, id' name = fields.Char(string='名称', required=True, translate=True) code = fields.Char(string='编码', required=True, index=True) icon = fields.Char(string='图标', default='🧑') layer = fields.Char(string='所属层域') description = fields.Char(string='描述') traits = fields.Json(string='天赋/特性') sequence = fields.Integer(string='排序', default=10)