game/addons/yt_world/models/yt_codex.py

85 lines
3.1 KiB
Python

# -*- 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)