migration from new repo
This commit is contained in:
commit
423134a840
26930 changed files with 3458568 additions and 0 deletions
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"name": "Adventurer.Runtime",
|
||||
"rootNamespace": "Adventurer.Runtime",
|
||||
"references": [
|
||||
"GUID:2ca720bbf8aa349608caa5ce4acaa603",
|
||||
"GUID:6055be8ebefd69e48b49212b09b47b2f"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d01b71ecbce444a299cc1623f29e9d35
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
211
Assets/_/Features/Adventurers/Runtime/AdventurerClass.cs
Normal file
211
Assets/_/Features/Adventurers/Runtime/AdventurerClass.cs
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Adventurer.Runtime
|
||||
{
|
||||
public class AdventurerClass
|
||||
{
|
||||
|
||||
#region Getters and Setters
|
||||
|
||||
public Guid ID
|
||||
{
|
||||
get { return _id; }
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return _name; }
|
||||
set { _name = value; }
|
||||
}
|
||||
|
||||
public AdventurerClassEnum AdventurerClassEnum
|
||||
{
|
||||
get { return _adventurerClassEnum; }
|
||||
}
|
||||
|
||||
public int Level
|
||||
{
|
||||
get { return _level; }
|
||||
set { _level = value; }
|
||||
}
|
||||
|
||||
public int Experience
|
||||
{
|
||||
get { return _experience; }
|
||||
set { _experience = value; }
|
||||
}
|
||||
|
||||
public int Health
|
||||
{
|
||||
get { return _health; }
|
||||
set { _health = value; }
|
||||
}
|
||||
|
||||
public int MaxHealth
|
||||
{
|
||||
get { return _maxHealth; }
|
||||
set { _maxHealth = value; }
|
||||
}
|
||||
|
||||
public int Strength
|
||||
{
|
||||
get { return _strength; }
|
||||
set { _strength = value; }
|
||||
}
|
||||
|
||||
public int Defense
|
||||
{
|
||||
get { return _defense; }
|
||||
set { _defense = value; }
|
||||
}
|
||||
|
||||
public int Intelligence
|
||||
{
|
||||
get { return _intelligence; }
|
||||
set { _intelligence = value; }
|
||||
}
|
||||
|
||||
public int Agility
|
||||
{
|
||||
get { return _agility; }
|
||||
set { _agility = value; }
|
||||
}
|
||||
|
||||
public bool IsAvailable
|
||||
{
|
||||
get { return _isAvailable; }
|
||||
set { _isAvailable = value; }
|
||||
}
|
||||
|
||||
public DateTime RecruitmentDate
|
||||
{
|
||||
get { return _recruitmentDate; }
|
||||
set { _recruitmentDate = value; }
|
||||
}
|
||||
|
||||
public Dictionary<string, string> Equipments
|
||||
{
|
||||
get { return _equipments; }
|
||||
set { _equipments = value; }
|
||||
}
|
||||
|
||||
public Dictionary<string, string> ModelParts { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Parameters
|
||||
|
||||
Guid _id;
|
||||
string _name;
|
||||
AdventurerClassEnum _adventurerClassEnum;
|
||||
int _level;
|
||||
int _experience;
|
||||
|
||||
int _health;
|
||||
int _maxHealth;
|
||||
|
||||
int _strength;
|
||||
int _defense;
|
||||
int _intelligence;
|
||||
int _agility;
|
||||
|
||||
bool _isAvailable;
|
||||
DateTime _recruitmentDate;
|
||||
Dictionary<string, string> _equipments;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
|
||||
public AdventurerClass(Guid id, string name, AdventurerClassEnum adventurerClassEnum, int level, int experience,
|
||||
int strength, int defense,
|
||||
int intelligence, int agility, Dictionary<string, string> modelParts, DateTime RecruitmentDate = default(DateTime))
|
||||
{
|
||||
_id = id;
|
||||
_name = name;
|
||||
_adventurerClassEnum = adventurerClassEnum;
|
||||
_level = level;
|
||||
_experience = experience;
|
||||
_strength = strength;
|
||||
_defense = defense;
|
||||
_intelligence = intelligence;
|
||||
_agility = agility;
|
||||
ModelParts = modelParts;
|
||||
_recruitmentDate = RecruitmentDate;
|
||||
_isAvailable = true;
|
||||
_equipments = new Dictionary<string, string>();
|
||||
|
||||
// Calcule de la vie Max
|
||||
_maxHealth = CalculateMaxHp();
|
||||
//Debug.Log($">>>>>>> {_name }[{_adventurerClassEnum}] | Niveau {_level} | {_experience} exp | {_strength} force | {_defense} def | {_agility} agi | {_intelligence} int | {_maxHealth} Hp Max <<<<<<<<<");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
public void SendOnMission()
|
||||
{
|
||||
_isAvailable = false;
|
||||
}
|
||||
|
||||
public void ReturnFromMission()
|
||||
{
|
||||
_isAvailable = true;
|
||||
}
|
||||
|
||||
public void ReceiveXP(int xp)
|
||||
{
|
||||
_experience += xp;
|
||||
}
|
||||
|
||||
private void TryLevelUp()
|
||||
{
|
||||
int requiredXP = _level * 100;
|
||||
if (_experience >= requiredXP)
|
||||
{
|
||||
_level++;
|
||||
_experience -= requiredXP;
|
||||
}
|
||||
}
|
||||
|
||||
int CalculateMaxHp()
|
||||
{
|
||||
float classMultiplier = GetClassMultiplier();
|
||||
return Mathf.RoundToInt((_strength + _defense + _level * 2) * classMultiplier);
|
||||
}
|
||||
|
||||
private float GetClassMultiplier()
|
||||
{
|
||||
switch (_adventurerClassEnum)
|
||||
{
|
||||
case AdventurerClassEnum.Barbarian: return 1.5f;
|
||||
case AdventurerClassEnum.Warrior: return 1.3f;
|
||||
case AdventurerClassEnum.Paladin: return 1.2f;
|
||||
case AdventurerClassEnum.Archer: return 1.0f;
|
||||
case AdventurerClassEnum.Thief: return 0.9f;
|
||||
case AdventurerClassEnum.Priest: return 0.8f;
|
||||
default: return 1.0f;
|
||||
}
|
||||
}
|
||||
|
||||
public void TakeDamage(int effectValue)
|
||||
{
|
||||
Debug.Log($"Taking damage: {effectValue}");
|
||||
}
|
||||
|
||||
public void Heal(int effectValue)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void ApplyBuff(int effectValue)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e46147717be340f99310b7ca71940eb1
|
||||
timeCreated: 1753475759
|
||||
13
Assets/_/Features/Adventurers/Runtime/AdventurerClassEnum.cs
Normal file
13
Assets/_/Features/Adventurers/Runtime/AdventurerClassEnum.cs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
namespace Adventurer.Runtime
|
||||
{
|
||||
public enum AdventurerClassEnum
|
||||
{
|
||||
Thief,
|
||||
Warrior,
|
||||
Archer,
|
||||
Paladin,
|
||||
Priest,
|
||||
Mage,
|
||||
Barbarian,
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 54b4d05cd4924762ab71f0aa436dfa0c
|
||||
timeCreated: 1753475959
|
||||
99
Assets/_/Features/Adventurers/Runtime/AdventurerFactorySO.cs
Normal file
99
Assets/_/Features/Adventurers/Runtime/AdventurerFactorySO.cs
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
namespace Adventurer.Runtime
|
||||
{
|
||||
[CreateAssetMenu(fileName = "AdventurerClass Factory", menuName = "Guild Tycoon/Adventurers/Factory", order = 0)]
|
||||
public class AdventurerFactorySO : ScriptableObject
|
||||
{
|
||||
public List<string> m_names;
|
||||
public List<AdventurerClassEnum> m_classes;
|
||||
public int m_baseLevel;
|
||||
public int m_minStat;
|
||||
public int m_maxStat;
|
||||
|
||||
public AdventurerClass CreateAdventurer()
|
||||
{
|
||||
string name = m_names[Random.Range(0, m_names.Count)];
|
||||
AdventurerClassEnum chosenClassEnum = m_classes[Random.Range(0, m_classes.Count)];
|
||||
|
||||
int level = m_baseLevel;
|
||||
int xp = 0;
|
||||
|
||||
int strength = 0;
|
||||
int defense = 0;
|
||||
int agility = 0;
|
||||
int intelligence = 0;
|
||||
|
||||
switch (chosenClassEnum)
|
||||
{
|
||||
case AdventurerClassEnum.Warrior:
|
||||
strength = Random.Range(14, 20);
|
||||
defense = Random.Range(10, 16);
|
||||
agility = Random.Range(6, 14);
|
||||
intelligence = Random.Range(4, 8);
|
||||
break;
|
||||
case AdventurerClassEnum.Mage:
|
||||
strength = Random.Range(4, 8);
|
||||
defense = Random.Range(6, 10);
|
||||
agility = Random.Range(6, 10);
|
||||
intelligence = Random.Range(14, 20);
|
||||
break;
|
||||
case AdventurerClassEnum.Archer:
|
||||
strength = Random.Range(4, 8);
|
||||
defense = Random.Range(6, 10);
|
||||
agility = Random.Range(14, 20);
|
||||
intelligence = Random.Range(4, 8);
|
||||
break;
|
||||
case AdventurerClassEnum.Paladin:
|
||||
strength = Random.Range(10, 14);
|
||||
defense = Random.Range(14, 20);
|
||||
agility = Random.Range(4, 8);
|
||||
intelligence = Random.Range(8, 12);
|
||||
break;
|
||||
case AdventurerClassEnum.Priest:
|
||||
strength = Random.Range(6, 10);
|
||||
defense = Random.Range(8, 12);
|
||||
agility = Random.Range(8, 12);
|
||||
intelligence = Random.Range(14, 20);
|
||||
break;
|
||||
case AdventurerClassEnum.Thief:
|
||||
strength = Random.Range(8, 14);
|
||||
defense = Random.Range(8, 12);
|
||||
agility = Random.Range(14, 20);
|
||||
intelligence = Random.Range(4, 8);
|
||||
break;
|
||||
case AdventurerClassEnum.Barbarian:
|
||||
strength = Random.Range(16, 20);
|
||||
defense = Random.Range(10, 14);
|
||||
agility = Random.Range(6, 10);
|
||||
intelligence = Random.Range(2, 6);
|
||||
break;
|
||||
default:
|
||||
// Classe non gérée
|
||||
break;
|
||||
}
|
||||
|
||||
var modelParts = new Dictionary<string, string>();
|
||||
modelParts["Ears"] = $"EARS/Ears Type {Random.Range(1, 2)}";
|
||||
modelParts["Eyebrows"] = $"EYEBROWS/Eyebrow Type {Random.Range(1, 5)} Color {Random.Range(1, 5)}";
|
||||
modelParts["Eyes"] = $"EYES/Eyes Type {Random.Range(1, 5)} Color {Random.Range(1, 5)}";
|
||||
modelParts["Face Hair"] = $"FACE HAIRS/Face Hair Type {Random.Range(1, 5)} Color {Random.Range(1, 5)}";
|
||||
modelParts["Hair"] = $"HAIRS/Hair Type {Random.Range(1, 5)} Color {Random.Range(1, 5)}";
|
||||
modelParts["Nose"] = $"NOSES/Nose Type {Random.Range(1, 5)}";
|
||||
|
||||
modelParts["Feet Armor"] = $"FEETS/Feet Armor Type {Random.Range(1, 5)} Color {Random.Range(1, 3)}";
|
||||
modelParts["Legs Armor"] = $"LEGS/Legs Armor Type {Random.Range(1, 5)} Color {Random.Range(1, 3)}";
|
||||
modelParts["Belts Armor"] = $"BELTS/Belts Armor Type {Random.Range(1, 6)} Color {Random.Range(1, 3)}";
|
||||
modelParts["Arm Armor"] = $"ARMORS/Arm Armor Type {Random.Range(1, 5)} Color {Random.Range(1, 3)}";
|
||||
modelParts["Chest Armor"] = $"CHESTS/Chest Armor Type {Random.Range(1, 5)} Color {Random.Range(1, 3)}";
|
||||
modelParts["Head Armor"] = $"HEADS/Head Armor Type {Random.Range(1, 6)} Color {Random.Range(1, 3)}";
|
||||
|
||||
DateTime now = DateTime.Now;
|
||||
|
||||
return new AdventurerClass(Guid.NewGuid(), name, chosenClassEnum, level, xp, strength, defense, intelligence, agility, modelParts, now);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4c824ea52e0c4c33bd42fdbb00a0b5a7
|
||||
timeCreated: 1753476587
|
||||
Loading…
Add table
Add a link
Reference in a new issue