game/addons/game_ai_npc/views/npc_views.xml

117 lines
4.5 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- ============ NPC 角色 ============ -->
<record id="action_game_npc" model="ir.actions.act_window">
<field name="name">NPC 角色</field>
<field name="res_model">game.npc</field>
<field name="view_mode">list,form</field>
<field name="context">{'group_by': 'archetype'}</field>
</record>
<record id="view_game_npc_list" model="ir.ui.view">
<field name="name">game.npc.list</field>
<field name="model">game.npc</field>
<field name="arch" type="xml">
<list>
<field name="archetype" column_invisible="1"/>
<field name="name"/>
<field name="title"/>
<field name="current_activity"/>
<field name="mood" widget="badge"/>
<field name="energy" widget="progressbar"/>
<field name="hunger" widget="progressbar"/>
<field name="goal_progress" widget="progressbar"/>
<field name="tick_count"/>
<field name="tick_enabled"/>
</list>
</field>
</record>
<record id="view_game_npc_form" model="ir.ui.view">
<field name="name">game.npc.form</field>
<field name="model">game.npc</field>
<field name="arch" type="xml">
<form>
<header>
<button name="action_tick" type="object" string="手动 Tick" class="btn-primary"/>
<field name="tick_enabled" widget="boolean_toggle"/>
</header>
<sheet>
<field name="tick_enabled" widget="boolean_toggle"/>
<group>
<group string="身份">
<field name="name"/>
<field name="title"/>
<field name="code"/>
<field name="archetype"/>
<field name="personality"/>
<field name="origin"/>
<field name="affiliation"/>
</group>
<group string="状态">
<field name="current_activity" widget="badge" decoration-success="1"/>
<field name="mood" widget="badge"/>
<field name="activity_label"/>
<field name="current_area"/>
<field name="energy" widget="progressbar"/>
<field name="hunger" widget="progressbar"/>
<field name="safety" widget="progressbar"/>
<field name="goal_progress" widget="progressbar"/>
<field name="tick_count"/>
<field name="last_tick"/>
</group>
</group>
<group string="目标">
<field name="current_goal"/>
<field name="goal_detail" placeholder="详细描述当前目标"/>
</group>
<group string="背景">
<field name="bio" placeholder="NPC 的完整故事……"/>
</group>
<notebook>
<page string="行为日志 (最近 20 条)" name="logs">
<field name="behavior_log_ids" nolabel="1" readonly="1">
<list limit="20">
<field name="tick_time"/>
<field name="activity"/>
<field name="location"/>
<field name="summary"/>
</list>
</field>
</page>
<page string="关系网" name="relations">
<field name="relationship_ids" nolabel="1">
<list>
<field name="target_npc_id"/>
<field name="affinity" widget="progressbar" options="{'max_value': 100}"/>
<field name="status"/>
<field name="last_interaction"/>
</list>
</field>
</page>
<page string="所知信息" name="knowledge">
<field name="knowledge_ids" nolabel="1">
<list>
<field name="topic"/>
<field name="content"/>
<field name="accuracy" widget="progressbar" options="{'max_value': 1.0}"/>
<field name="source"/>
</list>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- ============ Cron每 15 分钟批量 Tick ============ -->
<record id="cron_npc_tick" model="ir.cron">
<field name="name">NPC 定时行为刻</field>
<field name="model_id" ref="model_game_npc"/>
<field name="state">code</field>
<field name="code">model.cron_batch_tick()</field>
<field name="interval_number">15</field>
<field name="interval_type">minutes</field>
<field name="active" eval="True"/>
</record>
</odoo>