Tweak timing of horny timer and child grow time
This commit is contained in:
parent
6f9f7a2cb9
commit
7913e72e07
1 changed files with 16 additions and 11 deletions
|
@ -6,6 +6,9 @@ mobs.mod = "mrm"
|
||||||
mobs.version = "20180531" -- don't rely too much on this, rarely updated, if ever
|
mobs.version = "20180531" -- don't rely too much on this, rarely updated, if ever
|
||||||
|
|
||||||
local MAX_MOB_NAME_LENGTH = 30
|
local MAX_MOB_NAME_LENGTH = 30
|
||||||
|
local HORNY_TIME = 30
|
||||||
|
local HORNY_AGAIN_TIME = 300
|
||||||
|
local CHILD_GROW_TIME = 60*20
|
||||||
|
|
||||||
local MOB_CAP = {}
|
local MOB_CAP = {}
|
||||||
MOB_CAP.hostile = 70
|
MOB_CAP.hostile = 70
|
||||||
|
@ -1281,12 +1284,13 @@ end
|
||||||
-- find two animals of same type and breed if nearby and horny
|
-- find two animals of same type and breed if nearby and horny
|
||||||
local breed = function(self)
|
local breed = function(self)
|
||||||
|
|
||||||
-- child takes 240 seconds before growing into adult
|
-- child takes a long time before growing into adult
|
||||||
if self.child == true then
|
if self.child == true then
|
||||||
|
|
||||||
|
-- When a child, hornytimer is used to count age until adulthood
|
||||||
self.hornytimer = self.hornytimer + 1
|
self.hornytimer = self.hornytimer + 1
|
||||||
|
|
||||||
if self.hornytimer > 240 then
|
if self.hornytimer >= CHILD_GROW_TIME then
|
||||||
|
|
||||||
self.child = false
|
self.child = false
|
||||||
self.hornytimer = 0
|
self.hornytimer = 0
|
||||||
|
@ -1315,14 +1319,14 @@ local breed = function(self)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- horny animal can mate for 40 seconds,
|
-- horny animal can mate for HORNY_TIME seconds,
|
||||||
-- afterwards horny animal cannot mate again for 200 seconds
|
-- afterwards horny animal cannot mate again for HORNY_AGAIN_TIME seconds
|
||||||
if self.horny == true
|
if self.horny == true
|
||||||
and self.hornytimer < 240 then
|
and self.hornytimer < HORNY_TIME + HORNY_AGAIN_TIME then
|
||||||
|
|
||||||
self.hornytimer = self.hornytimer + 1
|
self.hornytimer = self.hornytimer + 1
|
||||||
|
|
||||||
if self.hornytimer >= 240 then
|
if self.hornytimer >= HORNY_TIME + HORNY_AGAIN_TIME then
|
||||||
self.hornytimer = 0
|
self.hornytimer = 0
|
||||||
self.horny = false
|
self.horny = false
|
||||||
end
|
end
|
||||||
|
@ -1330,7 +1334,7 @@ local breed = function(self)
|
||||||
|
|
||||||
-- find another same animal who is also horny and mate if nearby
|
-- find another same animal who is also horny and mate if nearby
|
||||||
if self.horny == true
|
if self.horny == true
|
||||||
and self.hornytimer <= 40 then
|
and self.hornytimer <= HORNY_TIME then
|
||||||
|
|
||||||
local pos = self.object:get_pos()
|
local pos = self.object:get_pos()
|
||||||
|
|
||||||
|
@ -1369,15 +1373,15 @@ local breed = function(self)
|
||||||
if ent
|
if ent
|
||||||
and canmate == true
|
and canmate == true
|
||||||
and ent.horny == true
|
and ent.horny == true
|
||||||
and ent.hornytimer <= 40 then
|
and ent.hornytimer <= HORNY_TIME then
|
||||||
num = num + 1
|
num = num + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
-- found your mate? then have a baby
|
-- found your mate? then have a baby
|
||||||
if num > 1 then
|
if num > 1 then
|
||||||
|
|
||||||
self.hornytimer = 41
|
self.hornytimer = HORNY_TIME + 1
|
||||||
ent.hornytimer = 41
|
ent.hornytimer = HORNY_TIME + 1
|
||||||
|
|
||||||
-- spawn baby
|
-- spawn baby
|
||||||
minetest.after(5, function(parent1, parent2, pos)
|
minetest.after(5, function(parent1, parent2, pos)
|
||||||
|
@ -4262,7 +4266,8 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
|
||||||
-- make children grow quicker
|
-- make children grow quicker
|
||||||
if self.child == true then
|
if self.child == true then
|
||||||
|
|
||||||
self.hornytimer = self.hornytimer + 20
|
-- deduct 10% of the time to adulthood
|
||||||
|
self.hornytimer = self.hornytimer + ((CHILD_GROW_TIME - self.hornytimer) * 0.1)
|
||||||
|
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
Reference in a new issue