Sfoglia il codice sorgente

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 anni fa
parent
commit
9a36ed3b1e
3 ha cambiato i file con 221 aggiunte e 77 eliminazioni
  1. +168
    -60
      features.js
  2. +17
    -15
      game.js
  3. +36
    -2
      migrations.js

+ 168
- 60
features.js Vedi File

@@ -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 Vedi File

@@ -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 Vedi File

@@ -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;
}


Loading…
Annulla
Salva