npcbreeder 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. # npcbreeder
  2. !! Expects Args0 of a boy and Args1 of Girl
  3. $breedboyl = mid($ARGS[0],1,1)
  4. breedboyn = mid($ARGS[0], 2)
  5. $breedgrll = mid($ARGS[1],1,1)
  6. breedgrln = mid($ARGS[1], 2)
  7. !! {Identifying the male potency.}
  8. if $breedboyl = 'A':
  9. breedtemp[0] = Astat_spermpot[breedboyn]
  10. elseif $breedboyl = 'B':
  11. breedtemp[0] = Bstat_spermpot[breedboyn]
  12. elseif $breedboyl = 'C':
  13. breedtemp[0] = Cstat_spermpot[breedboyn]
  14. end
  15. !! {Exiting for impotent or different species.}
  16. if breedtemp[0] <= 0: exit
  17. !! {Identifying the female fertility.}
  18. if $breedgrll = 'A':
  19. if Astat_fert[breedgrln] ! 1: exit
  20. breedtemp[1] = Astat_cyc[breedgrln]
  21. breedtemp[4] = year - ((Astat_dob[breedgrln] - (Astat_dob[breedgrln] mod 10000)) / 10000)
  22. elseif $breedgrll = 'B':
  23. if Bstat_fert[breedgrln] ! 1: exit
  24. Bstat_cyc[breedgrln] = breedtemp[1]
  25. breedtemp[4] = year - ((Astat_dob[breedgrln] - (Astat_dob[breedgrln] mod 10000)) / 10000)
  26. elseif $breedgrll = 'C':
  27. if Cstat_fert[breedgrln] ! 1: exit
  28. Cstat_cyc[breedgrln] = breedtemp[1]
  29. breedtemp[4] = year - ((Astat_dob[breedgrln] - (Astat_dob[breedgrln] mod 10000)) / 10000)
  30. end
  31. !! {Culling the very young}
  32. if breedtemp[4] < 9: exit
  33. !! {Setting Risk of pregnancy. Roughly 1/3 at 300, 1/900 at 1.}
  34. !! {Initial risk is determined by cycle status. 15-16 is "ovulated" and therefore perfect chance.}
  35. if breedtemp[1] > 24 or breedtemp[1] < 7:
  36. breedtemp[2] = 1
  37. elseif breedtemp[1] > 17 or breedtemp[1] < 9:
  38. breedtemp[2] = 5
  39. elseif breedtemp[1] = 9:
  40. breedtemp[2] = 10
  41. elseif breedtemp[1] = 10:
  42. breedtemp[2] = 50
  43. elseif breedtemp[1] = 11 or breedtemp[1] > 16:
  44. breedtemp[2] = 100
  45. elseif breedtemp[1] = 12:
  46. breedtemp[2] = 200
  47. elseif breedtemp[1] = 13:
  48. breedtemp[2] = 250
  49. elseif breedtemp[1] = 14:
  50. breedtemp[2] = 280
  51. else
  52. breedtemp[2] = 300
  53. end
  54. !! {Adjusting risk of pregnancy based on age. 1% change for each year, with a mean of 26.}
  55. breedtemp[4] = 26 - breedtemp[4]
  56. breedtemp[4] = (breedtemp[2] / 100) * breedtemp[4]
  57. !! {Final chance calcuation}
  58. breedtemp[3] = (breedtemp[0] * (breedtemp[2] + breedtemp[4])
  59. !! {Checking if she got knocked up, and setting the stats if she did.}
  60. if rand(0,9000000) < breedtemp[3]
  61. if $breedgrll = 'A':
  62. Astat_fert[breedgrln] = 5
  63. Astat_cyc[breedgrln] = 1
  64. $Astat_kidpater[breedgrln] = $ARGS[0]
  65. elseif $breedgrll = 'B':
  66. Bstat_fert[breedgrln] = 5
  67. Bstat_cyc[breedgrln] = 1
  68. $Bstat_kidpater[breedgrln] = $ARGS[0]
  69. elseif $breedgrll = 'C':
  70. Cstat_fert[breedgrln] = 5
  71. Cstat_cyc[breedgrln] = 1
  72. $Cstat_kidpater[breedgrln] = $ARGS[0]
  73. end
  74. end
  75. killvar '$breedgrll'
  76. killvar 'breedgrln'
  77. killvar '$breedboyl'
  78. killvar 'breedboyn'
  79. killvar 'breedtemp'
  80. --- npcbreeder ---------------------------------