Reworked Tartaric Gems so that they contain specific demon will types (work for the future)
This commit is contained in:
parent
e681085d8b
commit
035ba94976
11 changed files with 142 additions and 76 deletions
|
@ -63,9 +63,6 @@ public class TileDemonCrucible extends TileInventory implements ITickable, IDemo
|
|||
conduitList.add(newPos.subtract(getPos()));
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("List size: " + conduitList.size());
|
||||
System.out.println("Current amount: " + getCurrentWill(EnumDemonWillType.DEFAULT));
|
||||
}
|
||||
|
||||
internalCounter++;
|
||||
|
@ -79,19 +76,22 @@ public class TileDemonCrucible extends TileInventory implements ITickable, IDemo
|
|||
if (stack.getItem() instanceof IDemonWillGem)
|
||||
{
|
||||
IDemonWillGem gemItem = (IDemonWillGem) stack.getItem();
|
||||
if (willMap.containsKey(EnumDemonWillType.DEFAULT))
|
||||
for (EnumDemonWillType type : EnumDemonWillType.values())
|
||||
{
|
||||
double current = willMap.get(EnumDemonWillType.DEFAULT);
|
||||
double fillAmount = Math.min(gemDrainRate, Math.min(current, gemItem.getMaxWill(stack) - gemItem.getWill(stack)));
|
||||
if (fillAmount > 0)
|
||||
if (willMap.containsKey(type))
|
||||
{
|
||||
gemItem.setWill(stack, fillAmount + gemItem.getWill(stack));
|
||||
if (willMap.get(EnumDemonWillType.DEFAULT) - fillAmount <= 0)
|
||||
double current = willMap.get(type);
|
||||
double fillAmount = Math.min(gemDrainRate, Math.min(current, gemItem.getMaxWill(type, stack) - gemItem.getWill(type, stack)));
|
||||
if (fillAmount > 0)
|
||||
{
|
||||
willMap.remove(EnumDemonWillType.DEFAULT);
|
||||
} else
|
||||
{
|
||||
willMap.put(EnumDemonWillType.DEFAULT, willMap.get(EnumDemonWillType.DEFAULT) - fillAmount);
|
||||
gemItem.setWill(type, stack, fillAmount + gemItem.getWill(type, stack));
|
||||
if (willMap.get(type) - fillAmount <= 0)
|
||||
{
|
||||
willMap.remove(type);
|
||||
} else
|
||||
{
|
||||
willMap.put(type, willMap.get(type) - fillAmount);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -105,16 +105,19 @@ public class TileDemonCrucible extends TileInventory implements ITickable, IDemo
|
|||
if (stack.getItem() instanceof IDemonWillGem)
|
||||
{
|
||||
IDemonWillGem gemItem = (IDemonWillGem) stack.getItem();
|
||||
if (!willMap.containsKey(EnumDemonWillType.DEFAULT))
|
||||
for (EnumDemonWillType type : EnumDemonWillType.values())
|
||||
{
|
||||
willMap.put(EnumDemonWillType.DEFAULT, 0d);
|
||||
}
|
||||
if (!willMap.containsKey(type))
|
||||
{
|
||||
willMap.put(type, 0d);
|
||||
}
|
||||
|
||||
if (willMap.get(EnumDemonWillType.DEFAULT) < maxWill)
|
||||
{
|
||||
double drainAmount = Math.min(maxWill - willMap.get(EnumDemonWillType.DEFAULT), gemDrainRate);
|
||||
double drained = gemItem.drainWill(stack, drainAmount);
|
||||
willMap.put(EnumDemonWillType.DEFAULT, willMap.get(EnumDemonWillType.DEFAULT) + drained);
|
||||
if (willMap.get(type) < maxWill)
|
||||
{
|
||||
double drainAmount = Math.min(maxWill - willMap.get(type), gemDrainRate);
|
||||
double drained = gemItem.drainWill(type, stack, drainAmount);
|
||||
willMap.put(type, willMap.get(type) + drained);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -174,7 +174,7 @@ public class TileSoulForge extends TileInventory implements ITickable, IDemonWil
|
|||
if (soulStack.getItem() instanceof IDemonWillGem)
|
||||
{
|
||||
IDemonWillGem soul = (IDemonWillGem) soulStack.getItem();
|
||||
return soul.getWill(soulStack);
|
||||
return soul.getWill(EnumDemonWillType.DEFAULT, soulStack);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -201,7 +201,7 @@ public class TileSoulForge extends TileInventory implements ITickable, IDemonWil
|
|||
if (soulStack.getItem() instanceof IDemonWillGem)
|
||||
{
|
||||
IDemonWillGem soul = (IDemonWillGem) soulStack.getItem();
|
||||
return soul.drainWill(soulStack, requested);
|
||||
return soul.drainWill(EnumDemonWillType.DEFAULT, soulStack, requested);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -258,8 +258,8 @@ public class TileSoulForge extends TileInventory implements ITickable, IDemonWil
|
|||
|
||||
IDemonWillGem willGem = (IDemonWillGem) stack.getItem();
|
||||
|
||||
double maxWill = willGem.getMaxWill(stack);
|
||||
double current = willGem.getWill(stack);
|
||||
double maxWill = willGem.getMaxWill(type, stack);
|
||||
double current = willGem.getWill(type, stack);
|
||||
|
||||
if (!doFill)
|
||||
{
|
||||
|
@ -270,11 +270,11 @@ public class TileSoulForge extends TileInventory implements ITickable, IDemonWil
|
|||
|
||||
if (amount < filled)
|
||||
{
|
||||
willGem.setWill(stack, current + amount);
|
||||
willGem.setWill(type, stack, current + amount);
|
||||
filled = amount;
|
||||
} else
|
||||
{
|
||||
willGem.setWill(stack, maxWill);
|
||||
willGem.setWill(type, stack, maxWill);
|
||||
}
|
||||
|
||||
return filled;
|
||||
|
@ -292,7 +292,7 @@ public class TileSoulForge extends TileInventory implements ITickable, IDemonWil
|
|||
IDemonWillGem willGem = (IDemonWillGem) stack.getItem();
|
||||
|
||||
double drained = amount;
|
||||
double current = willGem.getWill(stack);
|
||||
double current = willGem.getWill(type, stack);
|
||||
if (current < drained)
|
||||
{
|
||||
drained = current;
|
||||
|
@ -300,7 +300,7 @@ public class TileSoulForge extends TileInventory implements ITickable, IDemonWil
|
|||
|
||||
if (doDrain)
|
||||
{
|
||||
drained = willGem.drainWill(stack, drained);
|
||||
drained = willGem.drainWill(type, stack, drained);
|
||||
}
|
||||
|
||||
return drained;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue