Przeglądaj źródła

Make automatic digestion toggleable.

This replaces the old behavior of setting digestion time to 0.
Doing so does still work, but it is no longer mentioned.
This introduces a save migration, since the option needs to be
set based on the digestion times.
tags/v1.1.0
Fen Dweller 5 lat temu
rodzic
commit
9a36ed3b1e
3 zmienionych plików z 221 dodań i 77 usunięć
  1. +168
    -60
      features.js
  2. +17
    -15
      game.js
  3. +36
    -2
      migrations.js

+ 168
- 60
features.js Wyświetl plik

@@ -843,11 +843,20 @@ options = [
"entries":
[
{
"name": "Digestion time",
"id": "oralDigestTime",
"type": "float",
"default": "15"
},
"name": "Automatic digestion",
"id": "oralDigestAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "oralDigestTime",
"type": "float",
"default": "15"
}
]
},
{
"name": "Manual digestion",
"id": "oralDigestManual",
@@ -884,11 +893,20 @@ options = [
"unit": "length"
},
{
"name": "Digestion time",
"id": "analDigestTime",
"type": "float",
"default": "15"
},
"name": "Automatic digestion",
"id": "analDigestAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "analDigestTime",
"type": "float",
"default": "15"
}
]
},
{
"name": "Anal autogrowth factor",
"id": "assGrowthFactor",
@@ -1068,11 +1086,20 @@ options = [
"tooltip": "How much this part grows during part specific digestion. This is relative to overall growth, [1]:all mass goes to this part [.2]:20% part growth-80% overall growth."
},
{
"name": "Digestion time",
"id": "tailDigestTime",
"type": "float",
"default": "15"
},
"name": "Automatic digestion",
"id": "tailDigestAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "tailDigestTime",
"type": "float",
"default": "15"
}
]
},
{
"name": "Manual digestion",
"id": "tailDigestManual",
@@ -1201,11 +1228,20 @@ options = [
"default": "1"
},
{
"name": "Digestion time",
"id": "cockDigestTime",
"type": "float",
"default": "15"
},
"name": "Automatic digestion",
"id": "cockDigestAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "cockDigestTime",
"type": "float",
"default": "15"
}
]
},
{
"name": "Manual digestion",
"id": "cockDigestManual",
@@ -1356,11 +1392,20 @@ options = [
"tooltip": "How much this part grows during part specific digestion. This is relative to overall growth, [1]:all mass goes to this part [.2]:20% part growth-80% overall growth."
},
{
"name": "Digestion time",
"id": "unbirthDigestTime",
"type": "float",
"default": "15"
},
"name": "Automatic digestion",
"id": "unbirthDigestAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "unbirthDigestTime",
"type": "float",
"default": "15"
}
]
},
{
"name": "Manual digestion",
"id": "unbirthDigestManual",
@@ -1470,11 +1515,20 @@ options = [
"tooltip": "How much this part grows during part specific digestion. This is relative to overall growth, [1]:all mass goes to this part [.2]:20% part growth-80% overall growth."
},
{
"name": "Digestion time",
"id": "breastDigestTime",
"type": "float",
"default": "15"
},
"name": "Automatic digestion",
"id": "breastDigestAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "breastDigestTime",
"type": "float",
"default": "15"
}
]
},
{
"name": "Manual digestion",
"id": "breastDigestManual",
@@ -1594,11 +1648,20 @@ options = [
"tooltip": "How much you grow when absorbing souls. [1]-you will gain equal mass to the souls you absorb. [.01]- you will grow by 1% of the mass of the souls you absorb. This does not stack with Prey growth factor"
},
{
"name": "Digestion time",
"id": "soulDigestTime",
"type": "float",
"default": "15"
},
"name": "Automatic digestion",
"id": "soulDigestAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "soulDigestTime",
"type": "float",
"default": "15"
}
]
},
{
"name": "Manual digestion",
"id": "soulDigestManual",
@@ -1677,11 +1740,20 @@ options = [
"default": "1"
},
{
"name": "Digestion time",
"id": "bladderDigestTime",
"type": "float",
"default": "15"
},
"name": "Automatic digestion",
"id": "bladderDigestAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "bladderDigestTime",
"type": "float",
"default": "15"
}
]
},
{
"name": "Manual digestion",
"id": "bladderDigestManual",
@@ -1763,11 +1835,20 @@ options = [
"tooltip": "How much you grow when absorbing people via goo. [1]-you will gain equal mass to the souls you absorb. [.01]- you will grow by 1% of the mass of the souls you absorb. This does not stack with Prey growth factor"
},
{
"name": "Digestion time",
"id": "gooDigestTime",
"type": "float",
"default": "15"
},
"name": "Automatic digestion",
"id": "gooDigestAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "gooDigestTime",
"type": "float",
"default": "15"
}
]
},
{
"name": "Manual digestion",
"id": "gooDigestManual",
@@ -1792,11 +1873,20 @@ options = [
"tooltip": "How much this part grows during part specific digestion. This is relative to overall growth, [1]:all mass goes to this part [.2]:20% part growth-80% overall growth."
},
{
"name": "Digestion time",
"id": "pawDigestTime",
"type": "float",
"default": "15"
},
"name": "Automatic digestion",
"id": "pawDigestAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "pawDigestTime",
"type": "float",
"default": "15"
}
]
},
{
"name": "Manual digestion",
"id": "pawDigestManual",
@@ -1819,11 +1909,20 @@ options = [
"entries":
[
{
"name": "Transfer time",
"id": "cropTransferTime",
"type": "float",
"default": "10"
}
"name": "Automatic transfer",
"id": "cropTransferAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "cropTransferTime",
"type": "float",
"default": "10"
}
]
},
]
},
{
@@ -1964,11 +2063,20 @@ options = [
"tooltip": "How much this part grows during part specific digestion. This is relative to overall growth, [1]:all mass goes to this part [.2]:20% part growth-80% overall growth."
},
{
"name": "Digestion time",
"id": "wingDigestTime",
"type": "float",
"default": "15"
},
"name": "Automatic digestion",
"id": "wingDigestAuto",
"type": "subcategory",
"default": true,
"entries":
[
{
"name": "Digestion time",
"id": "wingDigestTime",
"type": "float",
"default": "15"
}
]
},
{
"name": "Manual digestion",
"id": "wingDigestManual",


+ 17
- 15
game.js Wyświetl plik

@@ -527,10 +527,12 @@ let macro = //macro controls every customizable part of the players body
return this.scaling(this.droolBaseVolume / 1000 , this.scale, 3);
},

"digest": function(owner, organ, time=15) {
"digest": function(owner, organ, time=15, auto=true) {

// ignore if using manual digestion
if (time != 0) {
// we now have an explicit no-auto-digest flag, but
// some saves will wind up a time of 0 anyway, so I'll
// just leave this here to keep that from breaking things
if (auto && time != 0) {
setTimeout(function() { owner.digest(owner, organ, time); }, time * 1000 / organ.stages / macro.fastDigestFactor);
}

@@ -560,7 +562,7 @@ let macro = //macro controls every customizable part of the players body
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.oralDigestTime);
owner.digest(owner, this, owner.oralDigestTime, owner.oralDigestAuto);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
@@ -609,7 +611,7 @@ let macro = //macro controls every customizable part of the players body
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.tailDigestTime);
owner.digest(owner, this, owner.tailDigestTime, owner.tailDigestAuto);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
@@ -664,7 +666,7 @@ let macro = //macro controls every customizable part of the players body
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.analDigestTime);
owner.digest(owner, this, owner.analDigestTime, owner.analDigestAuto);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
@@ -724,7 +726,7 @@ let macro = //macro controls every customizable part of the players body
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.unbirthDigestTime);
owner.digest(owner, this, owner.unbirthDigestTime, owner.unbirthDigestAuto);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
@@ -778,7 +780,7 @@ let macro = //macro controls every customizable part of the players body
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.cockDigestTime);
owner.digest(owner, this, owner.cockDigestTime, owner.cockDigestAuto);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
@@ -832,7 +834,7 @@ let macro = //macro controls every customizable part of the players body
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.breastDigestTime);
owner.digest(owner, this, owner.breastDigestTime, owner.breastDigestAuto);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
@@ -887,7 +889,7 @@ let macro = //macro controls every customizable part of the players body
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.bladderDigestTime);
owner.digest(owner, this, owner.bladderDigestTime, owner.bladderDigestAuto);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
@@ -933,7 +935,7 @@ let macro = //macro controls every customizable part of the players body
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.soulDigestTime);
owner.digest(owner, this, owner.soulDigestTime, owner.soulDigestAuto);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
@@ -979,7 +981,7 @@ let macro = //macro controls every customizable part of the players body
this.contents.push(new Container());

if (owner.gooDigestion) {
owner.digest(owner, this, owner.gooDigestTime);
owner.digest(owner, this, owner.gooDigestTime, owner.gooDigestAuto);
}

},
@@ -1028,7 +1030,7 @@ let macro = //macro controls every customizable part of the players body
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.pawDigestTime);
owner.digest(owner, this, owner.pawDigestTime, owner.pawDigestAuto);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
@@ -1068,7 +1070,7 @@ let macro = //macro controls every customizable part of the players body
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.cropTransferTime);
owner.digest(owner, this, owner.cropTransferTime, owner.cropTransferAuto);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
@@ -1111,7 +1113,7 @@ let macro = //macro controls every customizable part of the players body
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.wingDigestTime);
owner.digest(owner, this, owner.wingDigestTime, owner.wingDigestAuto);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);


+ 36
- 2
migrations.js Wyświetl plik

@@ -1,9 +1,42 @@
// bumps save versions

migrations = [
(save) => {
// does nothing
// 0 -> 1
// does nothing
save => {
},
// 1 -> 2

// automatic digestion is now a subcategory, so anyone with
// a digest time of 0 should have that unset
save => {
if (save.oralDigestTime == 0)
save.oralDigestAuto = false;
if (save.analDigestTime == 0)
save.analDigestAuto = false;
if (save.tailDigestTime == 0)
save.tailDigestAuto = false;
if (save.cockDigestTime == 0)
save.cockDigestAuto = false;
if (save.unbirthDigestTime == 0)
save.unbirthDigestAuto = false;
if (save.breastDigestTime == 0)
save.breastDigestAuto = false;
if (save.soulDigestTime == 0)
save.soulDigestAuto = false;
if (save.bladderDigestTime == 0)
save.bladderDigestAuto = false;
if (save.gooDigestTime == 0)
save.gooDigestAuto = false;
if (save.pawDigestTime == 0)
save.pawDigestAuto = false;
if (save.cropTransferTime == 0)
save.cropTransferAuto = false;
if (save.wingDigestTime == 0)
save.wingDigestAuto = false;
}

];

function migrate(save, target=null) {
@@ -29,6 +62,7 @@ function migrate(save, target=null) {
for (let x = version; x < target; x++) {
migrations[x](save);
}
save.version = target;
} else {
return false;
}


Ładowanie…
Anuluj
Zapisz