1
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f600b7e509b166244a37c240ffee12ba
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,64 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 属性 - 数据
|
||||
/// </summary>
|
||||
public class DataAttribute {
|
||||
/// <summary> 力量(strength) </summary>
|
||||
public int Str;
|
||||
/// <summary> 敏捷(dexterity) </summary>
|
||||
public int Dex;
|
||||
/// <summary> 体质(constitution) </summary>
|
||||
public int Con;
|
||||
/// <summary> 智力(intelligence) </summary>
|
||||
public int Int;
|
||||
/// <summary> 感知(wisdom) </summary>
|
||||
public int Wis;
|
||||
/// <summary> 魅力(charisma) </summary>
|
||||
public int Cha;
|
||||
|
||||
/// <summary> 创建初始属性 </summary>
|
||||
public static DataAttribute Initial() {
|
||||
DataAttribute attribute = new DataAttribute();
|
||||
attribute.Str = Dice.RollAttribute();
|
||||
attribute.Dex = Dice.RollAttribute();
|
||||
attribute.Con = Dice.RollAttribute();
|
||||
attribute.Int = Dice.RollAttribute();
|
||||
attribute.Wis = Dice.RollAttribute();
|
||||
attribute.Cha = Dice.RollAttribute();
|
||||
return attribute;
|
||||
}
|
||||
// 计算属性调整值(属性值-10)/2 向下取整
|
||||
public int Modifier(int value) {
|
||||
return (int)System.Math.Floor((value - 10) / 2.0);
|
||||
}
|
||||
/// <summary> 添加属性 </summary>
|
||||
public void Add(DataAttribute value) {
|
||||
Str += value.Str;
|
||||
Dex += value.Dex;
|
||||
Con += value.Con;
|
||||
Int += value.Int;
|
||||
Wis += value.Wis;
|
||||
Cha += value.Cha;
|
||||
}
|
||||
/// <summary> 减少属性 </summary>
|
||||
public void Sub(DataAttribute value) {
|
||||
Str -= value.Str;
|
||||
Dex -= value.Dex;
|
||||
Con -= value.Con;
|
||||
Int -= value.Int;
|
||||
Wis -= value.Wis;
|
||||
Cha -= value.Cha;
|
||||
}
|
||||
/// <summary> 覆盖属性 </summary>
|
||||
public void Cover(DataAttribute value) {
|
||||
Str = value.Str;
|
||||
Dex = value.Dex;
|
||||
Con = value.Con;
|
||||
Int = value.Int;
|
||||
Wis = value.Wis;
|
||||
Cha = value.Cha;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fb070bc540efae048ae79c8319c0c0e2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,87 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 角色 - 数据
|
||||
/// </summary>
|
||||
public class DataCharacter : DataAttribute {
|
||||
/// <summary> 角色名字 </summary>
|
||||
public string name;
|
||||
/// <summary> 战斗等级 </summary>
|
||||
public int level = 0;
|
||||
/// <summary> 护甲等级 </summary>
|
||||
public int armorClass = 0;
|
||||
/// <summary> 经验点 </summary>
|
||||
public Vector2Int expPoint;
|
||||
/// <summary> 生命点 </summary>
|
||||
public Vector2Int hitPoint;
|
||||
|
||||
/// <summary> 基础属性 </summary>
|
||||
public DataAttribute basic = Initial();
|
||||
/// <summary> 种族 </summary>
|
||||
public DataRace race = DataRace.None();
|
||||
/// <summary> 职业 </summary>
|
||||
public DataProfession profession = DataProfession.None();
|
||||
/// <summary> 装备栏 </summary>
|
||||
public DataEquipmentSlot equipmentSlot = new DataEquipmentSlot();
|
||||
|
||||
/// <summary> 力量调整值(strength) </summary>
|
||||
public int StrModifier => Modifier(Str);
|
||||
/// <summary> 敏捷调整值(dexterity) </summary>
|
||||
public int DexModifier => Modifier(Dex);
|
||||
/// <summary> 体质调整值(constitution) </summary>
|
||||
public int ConModifier => Modifier(Con);
|
||||
/// <summary> 智力调整值(intelligence) </summary>
|
||||
public int IntModifier => Modifier(Int);
|
||||
/// <summary> 感知调整值(wisdom) </summary>
|
||||
public int WisModifier => Modifier(Wis);
|
||||
/// <summary> 魅力调整值(charisma) </summary>
|
||||
public int ChaModifier => Modifier(Cha);
|
||||
|
||||
/// <summary> 更新角色状态 </summary>
|
||||
public void Update() {
|
||||
// 更新属性
|
||||
Cover(basic);
|
||||
// 添加种族属性
|
||||
Add(race);
|
||||
// 添加职业属性
|
||||
Add(profession);
|
||||
// 战斗等级
|
||||
level = profession.level;
|
||||
// 护甲等级
|
||||
armorClass = 10 + DexModifier;
|
||||
// 升级经验 = 100 * 3^level
|
||||
expPoint.y = 100 * (int)Mathf.Pow(3, level);
|
||||
// 最大生命值
|
||||
hitPoint.y = race.HitPoint() + profession.HitPoint();
|
||||
}
|
||||
// 计算护甲等级(AC)
|
||||
|
||||
// 无甲基础AC = 10
|
||||
|
||||
// 护甲
|
||||
// 重甲 敏捷加值无效
|
||||
// 中甲 敏捷加值上限+2
|
||||
// 轻甲 敏捷加值全额生效
|
||||
|
||||
// 盾牌 直接增加
|
||||
|
||||
// 法术 直接增加
|
||||
|
||||
// 打印角色卡
|
||||
public void PrintCharacterSheet() {
|
||||
Debug.Log($"=== {name} LV{level} ===");
|
||||
Debug.Log($"种族: {race.name}");
|
||||
Debug.Log($"职业: {profession.name}");
|
||||
Debug.Log($"力量: {Str} ({StrModifier.ToString("+#;-#;+0")})");
|
||||
Debug.Log($"敏捷: {Dex} ({DexModifier.ToString("+#;-#;+0")})");
|
||||
Debug.Log($"体质: {Con} ({ConModifier.ToString("+#;-#;+0")})");
|
||||
Debug.Log($"智力: {Int} ({IntModifier.ToString("+#;-#;+0")})");
|
||||
Debug.Log($"感知: {Wis} ({WisModifier.ToString("+#;-#;+0")})");
|
||||
Debug.Log($"魅力: {Cha} ({ChaModifier.ToString("+#;-#;+0")})");
|
||||
Debug.Log($"经验值: {expPoint}");
|
||||
Debug.Log($"生命值: {hitPoint}");
|
||||
Debug.Log($"护甲等级: {armorClass})");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 职业 - 数据
|
||||
/// </summary>
|
||||
public class DataProfession : DataAttribute {
|
||||
/// <summary> 职业名称 </summary>
|
||||
public string name;
|
||||
/// <summary> 职业等级 </summary>
|
||||
public int level = 0;
|
||||
/// <summary> 生命骰子 </summary>
|
||||
public int hitDice = 0;
|
||||
/// <summary> 累计生命点 </summary>
|
||||
public List<int> hitPoints = new List<int>();
|
||||
|
||||
/// <summary> 升级:骰生命骰子+体质调整值 </summary>
|
||||
public void Upgrade(int modifier) {
|
||||
level++;
|
||||
int hitPoint = Dice.Roll(hitDice) + modifier;
|
||||
hitPoints.Add(hitPoint);
|
||||
}
|
||||
/// <summary> 生命点:每级生命点总和 </summary>
|
||||
public int HitPoint() {
|
||||
return hitPoints.Sum();
|
||||
}
|
||||
|
||||
/// <summary> 无职业 </summary>
|
||||
public static DataProfession None() {
|
||||
return new DataProfession() { name = "无" };
|
||||
}
|
||||
/// <summary> 战士职业 </summary>
|
||||
public static DataProfession Warrior(int modifier) {
|
||||
DataProfession profession = new DataProfession();
|
||||
// 战士,初始1级,1d10生命骰子,初始生命=满生命骰子+体质调整值
|
||||
profession.name = "战士";
|
||||
profession.level = 1;
|
||||
profession.hitDice = 10;
|
||||
profession.hitPoints.Add(profession.hitDice + modifier);
|
||||
// 职业属性加成
|
||||
profession.Str = 2;
|
||||
profession.Con = 1;
|
||||
return profession;
|
||||
}
|
||||
/// <summary> 法师职业 </summary>
|
||||
public static DataProfession Wizard(int modifier) {
|
||||
DataProfession profession = new DataProfession();
|
||||
// 法师,初始1级,1d6生命骰子,初始生命=满生命骰子+体质调整值
|
||||
profession.name = "法师";
|
||||
profession.level = 1;
|
||||
profession.hitDice = 6;
|
||||
profession.hitPoints.Add(profession.hitDice + modifier);
|
||||
// 职业属性加成
|
||||
profession.Int = 2;
|
||||
profession.Dex = 1;
|
||||
return profession;
|
||||
}
|
||||
/// <summary> 牧师职业 </summary>
|
||||
public static DataProfession Cleric(int modifier) {
|
||||
DataProfession profession = new DataProfession();
|
||||
// 牧师,初始1级,1d8生命骰子,初始生命=满生命骰子+体质调整值
|
||||
profession.name = "牧师";
|
||||
profession.level = 1;
|
||||
profession.hitDice = 8;
|
||||
profession.hitPoints.Add(profession.hitDice + modifier);
|
||||
// 职业属性加成
|
||||
profession.Wis = 2;
|
||||
profession.Con = 1;
|
||||
return profession;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9fd9942ce333fa94aa2297f3569a4939
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,24 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 种族 - 数据
|
||||
/// </summary>
|
||||
public class DataRace : DataAttribute {
|
||||
/// <summary> 种族名称 </summary>
|
||||
public string name;
|
||||
/// <summary> 基础生命点 </summary>
|
||||
public int hitPoint = 10;
|
||||
|
||||
/// <summary> 生命点:每级生命点总和 </summary>
|
||||
public int HitPoint() {
|
||||
return hitPoint;
|
||||
}
|
||||
|
||||
/// <summary> 无种族 </summary>
|
||||
public static DataRace None() {
|
||||
// 初始生命值10点
|
||||
return new DataRace() { name = "无" };
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e444293bdefc67346a3d80901305e4c7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,38 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 角色 - 数据
|
||||
/// </summary>
|
||||
public class DataCharacter {
|
||||
/// <summary> 角色名字 </summary>
|
||||
public string name;
|
||||
/// <summary> 基础属性 </summary>
|
||||
public DataAttribute basic;
|
||||
/// <summary> 角色职业 </summary>
|
||||
public DataProfession profession;
|
||||
}
|
||||
/// <summary>
|
||||
/// 属性 - 数据
|
||||
/// </summary>
|
||||
public class DataAttribute {
|
||||
/// <summary> 力量(strength) </summary>
|
||||
public int Str;
|
||||
/// <summary> 敏捷(dexterity) </summary>
|
||||
public int Dex;
|
||||
/// <summary> 体质(constitution) </summary>
|
||||
public int Con;
|
||||
/// <summary> 智力(intelligence) </summary>
|
||||
public int Int;
|
||||
/// <summary> 感知(wisdom) </summary>
|
||||
public int Wis;
|
||||
/// <summary> 魅力(charisma) </summary>
|
||||
public int Cha;
|
||||
}
|
||||
/// <summary>
|
||||
/// 职业 - 数据
|
||||
/// </summary>
|
||||
public class DataProfession : DataAttribute {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 31e213ee804e43848b56cd336a8025d4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,18 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataBackpack : MonoBehaviour
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6f54ab1b3cd1a8f4d9ec1fb975e05ef6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,49 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 装备栏 - 数据
|
||||
/// </summary>
|
||||
public class DataEquipmentSlot : DataInventory {
|
||||
/// <summary> 武器1 </summary>
|
||||
public DataWeapon Weapon1;
|
||||
/// <summary> 武器2 </summary>
|
||||
public DataWeapon Weapon2;
|
||||
/// <summary> 护甲 </summary>
|
||||
public DataArmor Armor;
|
||||
/// <summary> 头盔 </summary>
|
||||
public DataEquipment Helmets;
|
||||
/// <summary> 手套 </summary>
|
||||
public DataEquipment Gloves;
|
||||
/// <summary> 鞋子 </summary>
|
||||
public DataEquipment Shoes;
|
||||
|
||||
public override bool Add(DataItem item) {
|
||||
// 如果是武器,则尝试装备
|
||||
if (item is DataWeapon weapon) { return Wear(weapon); }
|
||||
// 如果是护甲,则尝试装备
|
||||
if (item is DataArmor armor) { return Wear(armor); }
|
||||
// 如果是其他,则尝试装备
|
||||
if (item is DataEquipment equipment) { return Wear(equipment); }
|
||||
return false;
|
||||
}
|
||||
public override bool Remove(DataItem item) {
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
private bool Wear(DataWeapon weapon) {
|
||||
Weapon1 = weapon;
|
||||
return true;
|
||||
}
|
||||
private bool Wear(DataArmor armor) {
|
||||
Armor = armor;
|
||||
return true;
|
||||
}
|
||||
private bool Wear(DataEquipment equipment) {
|
||||
if (equipment.equipmentType == EquipmentType.Helmets) { Helmets = equipment; return true; }
|
||||
if (equipment.equipmentType == EquipmentType.Gloves) { Gloves = equipment; return true; }
|
||||
if (equipment.equipmentType == EquipmentType.Shoes) { Shoes = equipment; return true; }
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 83edeb48630d62a44a8d7c7551e9f0fb
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 物品库存 - 数据
|
||||
/// </summary>
|
||||
public abstract class DataInventory {
|
||||
/// <summary> 库存类型 </summary>
|
||||
public InventoryType inventoryType;
|
||||
|
||||
/// <summary> 添加物品 </summary>
|
||||
public abstract bool Add(DataItem item);
|
||||
/// <summary> 移除物品 </summary>
|
||||
public abstract bool Remove(DataItem item);
|
||||
}
|
||||
/// <summary>
|
||||
/// 库存类型枚举,区分背包、仓库等不同库存。
|
||||
/// </summary>
|
||||
public enum InventoryType { EquipmentSlot, Backpack, Storage }
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 278351779c3c1514bbcce18723dd500c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,18 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DataStorage : MonoBehaviour
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 943f05d3866fd8e4cb463a4f0597d0c5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: da6831802283b3643bf03d784ccc5813
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,25 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 装备 - 数据
|
||||
/// </summary>
|
||||
public class DataEquipment : DataItem {
|
||||
/// <summary> 装备类型 </summary>
|
||||
public EquipmentType equipmentType;
|
||||
}
|
||||
/// <summary>
|
||||
/// 武器 - 数据
|
||||
/// </summary>
|
||||
public class DataWeapon : DataEquipment {
|
||||
/// <summary> 武器类型 </summary>
|
||||
public WeaponType weaponType;
|
||||
}
|
||||
/// <summary>
|
||||
/// 护甲 - 数据
|
||||
/// </summary>
|
||||
public class DataArmor : DataEquipment {
|
||||
/// <summary> 护甲类型 </summary>
|
||||
public ArmorType armorType;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c500c73626d889c4c8cac76a53f95b2d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,48 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 物品 - 数据
|
||||
/// </summary>
|
||||
public class DataItem {
|
||||
/// <summary> 物品名称 </summary>
|
||||
public string name;
|
||||
/// <summary> 物品类型 </summary>
|
||||
public ItemType itemType;
|
||||
}
|
||||
/// <summary>
|
||||
/// 物品类型。
|
||||
/// </summary>
|
||||
public enum ItemType {
|
||||
Material, // 材料
|
||||
Equipment // 装备
|
||||
}
|
||||
/// <summary>
|
||||
/// 装备类型。
|
||||
/// </summary>
|
||||
public enum EquipmentType {
|
||||
Weapon, // 武器
|
||||
Armor, // 护甲
|
||||
Helmets, //头盔
|
||||
Gloves, // 手套
|
||||
Shoes, // 鞋子
|
||||
}
|
||||
/// <summary>
|
||||
/// 武器类型。
|
||||
/// </summary>
|
||||
public enum WeaponType {
|
||||
LightWeapon, // 轻型武器
|
||||
MediumWeapon, // 中型武器
|
||||
HeavyWeapon, //重型武器
|
||||
Shield, // 盾牌
|
||||
}
|
||||
/// <summary>
|
||||
/// 护甲类型。
|
||||
/// </summary>
|
||||
public enum ArmorType {
|
||||
ClothArmor, // 布甲
|
||||
LightArmor, // 轻甲
|
||||
MediumArmor, // 中甲
|
||||
HeavyArmor, // 重甲
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 557ad290ccf27454baad3a04e41aec95
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,13 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 材料 - 数据
|
||||
/// </summary>
|
||||
public class DataMaterial : DataItem {
|
||||
/// <summary> 物品数量 </summary>
|
||||
public int quantity;
|
||||
/// <summary> 堆叠上限 </summary>
|
||||
public int maxStack;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d8fb2ebbb537271478ec399677a1b08a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using MuHua;
|
||||
|
||||
/// <summary>
|
||||
/// 模拟器 - 管理
|
||||
/// </summary>
|
||||
public class ManagerSimulator : ModuleSingle<ManagerSimulator> {
|
||||
|
||||
public DataCharacter character;
|
||||
|
||||
protected override void Awake() => NoReplace(false);
|
||||
|
||||
private void Start() {
|
||||
character = new DataCharacter();
|
||||
character.Update();
|
||||
character.PrintCharacterSheet();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3ce4cafcd40fff3428928289fa060de4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -8,9 +8,13 @@ using Random = UnityEngine.Random;
|
||||
/// 骰子
|
||||
/// </summary>
|
||||
public static class Dice {
|
||||
// 生成4d6弃最低的随机属性值
|
||||
/// <summary> 掷一次骰子 </summary>
|
||||
public static int Roll(int value) {
|
||||
return Random.Range(1, value + 1);
|
||||
}
|
||||
/// <summary> Attribute规则:投4次d6,去掉最低值 </summary>
|
||||
public static int RollAttribute() {
|
||||
int[] rolls = { Random.Range(1, 7), Random.Range(1, 7), Random.Range(1, 7), Random.Range(1, 7) };
|
||||
int[] rolls = { Roll(6), Roll(6), Roll(6), Roll(6) };
|
||||
Array.Sort(rolls);
|
||||
return rolls[1] + rolls[2] + rolls[3]; // 弃最低值
|
||||
}
|
||||
|
||||
@@ -122,6 +122,50 @@ NavMeshSettings:
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &169597751
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 169597752}
|
||||
- component: {fileID: 169597753}
|
||||
m_Layer: 0
|
||||
m_Name: ManagerSimulator
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &169597752
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 169597751}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1439912283}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &169597753
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 169597751}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3ce4cafcd40fff3428928289fa060de4, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &670296962
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -140,7 +184,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
m_IsActive: 0
|
||||
--- !u!114 &670296963
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -417,6 +461,7 @@ Transform:
|
||||
- {fileID: 963194228}
|
||||
- {fileID: 705507995}
|
||||
- {fileID: 1586181182}
|
||||
- {fileID: 169597752}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1439912284
|
||||
|
||||
Reference in New Issue
Block a user