RecruitableCharacter.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using UnityEngine;
  2. public class RecruitableCharacter : MonoBehaviour
  3. {
  4. public string characterName = "Kyriela";
  5. public CharacterInGroup.CharacterType characterType = CharacterInGroup.CharacterType.Priest;
  6. public CharacterInGroup.RaceType race = CharacterInGroup.RaceType.Human;
  7. public CharacterInGroup.PersonalityType personality = CharacterInGroup.PersonalityType.Ambitious;
  8. public int age = 28;
  9. public bool isMale = false;
  10. private void OnMouseDown()
  11. {
  12. RecruitDialogueUI.Instance.ShowRecruitDialog(this);
  13. }
  14. public CharacterInGroup GenerateCharacter()
  15. {
  16. // Generate stats based on character type
  17. int str = 8, con = 8, intel = 5, agi = 6;
  18. switch (characterType)
  19. {
  20. case CharacterInGroup.CharacterType.Warrior:
  21. str = 12; con = 10; intel = 4; agi = 6;
  22. break;
  23. case CharacterInGroup.CharacterType.Priest:
  24. str = 6; con = 8; intel = 12; agi = 5;
  25. break;
  26. case CharacterInGroup.CharacterType.Archer:
  27. str = 7; con = 7; intel = 6; agi = 12;
  28. break;
  29. case CharacterInGroup.CharacterType.Thief:
  30. str = 6; con = 7; intel = 8; agi = 11;
  31. break;
  32. case CharacterInGroup.CharacterType.Assassin:
  33. str = 8; con = 6; intel = 7; agi = 11;
  34. break;
  35. case CharacterInGroup.CharacterType.Monk:
  36. str = 9; con = 10; intel = 8; agi = 8;
  37. break;
  38. }
  39. // Calculate HP and Fatigue based on constitution
  40. int baseHP = 50 + (con * 5);
  41. int baseFatigue = 50 + (con * 3);
  42. return new CharacterInGroup
  43. {
  44. characterName = characterName,
  45. characterType = characterType,
  46. race = race,
  47. personality = personality,
  48. age = age,
  49. isMale = isMale,
  50. strength = str,
  51. constitution = con,
  52. agility = agi,
  53. intelligence = intel,
  54. currentHP = baseHP,
  55. maxHP = baseHP,
  56. currentFatigue = baseFatigue,
  57. maxFatigue = baseFatigue,
  58. experience = 0,
  59. level = 1,
  60. learnedSkills = new System.Collections.Generic.List<LearnedSkill>()
  61. };
  62. }
  63. }