天亮了 昨晚2号玩家死亡
洛神:昨晚2号玩家被杀死了,邪恶阵营获胜,可以向我许一个愿望,我都会帮助胜利的一方实现
5号:好,Lulu肯请洛神让森林所有 animals 都忘记我跟8号玩家真实身份是狼人
洛神:好,我答应你
迷雾森林的天空在洛神纤细的手一挥
落下一道紫色闪电,洛神便随着烟云消散而去
所有人已经忘记刚刚死去的好人、忘了游戏的输赢,两位底牌为邪恶阵营的狼,从粉红矩形门框中
与3号、10号勾着肩膀像是朋友般的从方舟甲板上悠然自在地回到舞会现场,失去记忆的阿虎,请 animal 合唱团演奏着蓝调曲The Thrill Is Gone
待续..
那...我们再次调整一下架构(遮脸)
这边架构实在是有点复杂 但也是一个很好的练习
最後根据昨天列的需求 决定把技能(:skill)抽出来独立一个table并与villages关联
原因是因为技能不只是要记住有什麽技能
对技能的需求我们也在这编列一下
因应上面这些条件 最後还是要处理技能能不能倍的用的判段
所以我们还是将技能抽象化出来
这样同时更符合策略模式
也就是技能可以共用与封装到每个游戏角色身上
先创建一个新的model
$ rails g model skill
/models/skill.rb
class Skill < ApplicationRecord
belongs_to :village
PERIODS = %w(once every_day every_night first_night)
enum period: PERIODS
TREES = %w(prophet potion antidote gun shield knife)
enum tree: TREES
end
建立关联
每个村庄里的游戏角色可以有很多技能
/models/village.rb
class Village < ApplicationRecord
has_many :games
has_many :seats, through: :games
has_many :skills
...
因为还是没有commit(遮脸)
然後再将db还原
$ bundle exec rake db:rollback
$ bundle exec rake db:rollback
并修正db的资料结构
class CreateVillages < ActiveRecord::Migration[6.1]
def change
create_table :villages do |t|
t.string :title
t.string :skill_tree_ids, default: [], array: true
t.integer :role
t.integer :party
t.timestamps
end
end
end
对应上面的需求先暂时新增四个栏位,其中一个对应到游戏角色(:village)
class CreateSkills < ActiveRecord::Migration[6.1]
def change
create_table :skills do |t|
t.boolean :available, default: true
t.integer :tree
t.integer :period
t.references :village, null: false, foreign_key: true
t.timestamps
end
end
end
然後我们建立一个公版的rake task
/app/libs/tasks/default_roles.rake
namespace :default_role do
desc "Create villager role template"
task generate_villager: :environment do
Village.create(title:'村民', role: 0, party: 0)
Village.create(title:'预言家', role: 1, party: 0)
Village.create(title:'女巫', role: 2, party: 0)
Village.create(title:'猎人', role: 3, party: 0)
Village.create(title:'守卫', role: 4, party: 0)
Village.create(title:'狼王', role: 5, party: 1)
Village.create(title:'小狼', role: 6, party: 1)
end
end
在cli上跑起来
$ bundle exec rake default_role:generate
这样我们就设定好了第一个板子全部的游戏角色了
$reef 过 $0.02375後起飞
天黑请闭眼
实体、身份和关联属性 所谓的实体(entity)是指任何具有身份(identity)的人或东西。例...
准备讯息文本 依照参数说明,建立订单的资料结构(DAY3-参考),详细参数规格可以在永丰API技术规...
射击幽浮 教学原文参考:射击幽浮 这篇文章会介绍如何使用「建立游戏角色」、「游戏角色座标」、「游戏角...
1.除错 MySQL02影片00:01 2.MAD利用命令列进入MySQL $ % = 终端机 (1...
今天去做大肠镜,实际上不是个很好的经历。 前几天跟同事聊到这件事的时候,就发现原来大肠镜有无痛这个选...