Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Logg-y/blessgen
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.0.1
Choose a base ref
...
head repository: Logg-y/blessgen
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
  • 5 commits
  • 6 files changed
  • 2 contributors

Commits on Apr 24, 2022

  1. Copy the full SHA
    bc28777 View commit details

Commits on Apr 28, 2022

  1. Copy the full SHA
    39ce02b View commit details
  2. effect -> addeffect

    Logg-y committed Apr 28, 2022
    Copy the full SHA
    a992794 View commit details

Commits on Jun 20, 2022

  1. v1.0.5

    Logg-y committed Jun 20, 2022
    Copy the full SHA
    eb77311 View commit details

Commits on Nov 2, 2022

  1. Copy the full SHA
    297685c View commit details
Showing with 269 additions and 140 deletions.
  1. +17 −4 blessgen.py
  2. +35 −0 changelog.txt
  3. +141 −65 data/blesseffects/combat.txt
  4. +56 −52 data/blesseffects/effect10buffs.txt
  5. +1 −1 data/blesseffects/templetrain.txt
  6. +19 −18 data/blesseffects/utility.txt
21 changes: 17 additions & 4 deletions blessgen.py
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@
import traceback
from blessgenerationsettings import BlessGenerationSettings

ver = "1.0.1"
ver = "1.0.6"

def _parseDataFiles():
if len(utils.blesseffects) < 0:
@@ -19,7 +19,7 @@ class BlessGenerator(object):
def __init__(self, **options):
self.blessEffectPool = _parseDataFiles()
self.options = options
self.numToGenerate = options.get("numtogenerate", 99)
self.numToGenerate = options.get("numtogenerate", 98)
self.blessEffectsByPath = {}
self.blessEffectsByCrosspath = {}
self.crosspathChance = options.get("crosspathchance", 20)
@@ -62,7 +62,7 @@ def _buildRarestCombinationPool(self):
numEffects = len(blessList)
# Give more non-incarnate effects
if level < 5:
numEffects -= 1
numEffects -= 2
if numEffects - lowestEffectCount <= self.combinationTolerance:
combo = BlessGenerationSettings(path, None, level)
pathAndLevelCombinationPool.append(combo)
@@ -86,7 +86,20 @@ def selectBlessSettings(self):
self._buildRarestCombinationPool()
if self.combinationTolerance > 5:
raise ValueError("Failed to build an effect from the least common path/level combination pool")
settings = self._cachedCombinationPool.pop()
# Skew even further to nonincarnate (or lesser primary path cost effects)
tries = 0
while True:
settings = self._cachedCombinationPool.pop()
if tries >= 10:
break
if settings.primarypath > 4:
skipchance = 10 + (settings.primarypath*5)
if random.random() * 100 < skipchance:
self._cachedCombinationPool.append(settings)
tries += 1
continue
break

return settings

def generateBless(self, settings):
35 changes: 35 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,38 @@
TODO

Secondshapes reportedly work, test this (should look for a code basis for units not secondshaping into themselves via disassembly)

v1.0.6 - 02/11/22

Defaults to generating only 98 blesses, in accordance with blessmodder v1.0.2 and the unterminated table problems.

v1.0.5 - 20/06/22

Capped elegist's value at 2 to prevent it from becoming incarnate (thanks Andy for pointing this one out)
Disabled extra arm bless due to glitchiness with shrouds (thanks kurtcop for this one)
Fixed vine ogre temple train so it doesn't make tigers (thanks Imperator for finding that)
Nerfed reduce unrest down to a bit under half what it was
Increased resist power again somewhat, but it's still below vanilla
Increased cost of damage reversal somewhat (14 -> 16)
Attempted to reduce the number of high level effects generated, but due to the small effect pool this won't always happen
Disabled various aura effects because they only work on commanders when added via bless
Penetration bonus is no longer stackable
Increased the base cost of strength by 1 (now X2 for 1 point, increasing returns with scaling)
Added percentage more likely to cause afflictions
Added nonstackable X1 resist options that give 2 in the resistance type related to the path

v1.0.4 - 28/04/22

Fixed a very stupid mistake in the previous version that broke everything

v1.0.3 - 28/04/22

Removed various buff effects that don't actually work. Some of these even showed up on the UI but didn't actually do anything...

v1.0.2 - 24/04/22

Damage Reversal given Astral crosspath, path level 14 from 10 (this will now be split into 8+8 S/B or something around here)

v1.0.1 - 19/04/22

Automatically created the /output folder. Thanks to Imperator for picking up on what my sleepy brain forgot
206 changes: 141 additions & 65 deletions data/blesseffects/combat.txt
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@
#newbless "Strength"
#name eb "Strength +[EFFECT151]"
#paths eb
#pathlevel 1
#pathlevel 2
#addeffect 151 1
#scaleeffect 151 1.2
#maxeffectvalue 151 8
@@ -73,21 +73,21 @@
#paths s
#pathlevel 3
#addeffect 162 1
#scaleeffect 162 0.3
#maxeffectvalue 162 2
#multipick 1
#scaleeffect 162 0.25
#maxeffectvalue 162 3
#end

#newbless "Plague Carrier"
#name d "Disease Aura [EFFECT172] + Disease Immune"
#paths d
#pathlevel 5
#addeffect 172 2 -- disease aura
#addeffect 513 100 -- disease resist
#scaleeffect 172 1
#negscaleaffinity 3 100
#maxeffectvalue 172 4
#end
-- Works on commanders only
-- #newbless "Plague Carrier"
-- #name d "Disease Aura [EFFECT172] + Disease Immune"
-- #paths d
-- #pathlevel 5
-- #addeffect 172 2 -- disease aura
-- #addeffect 513 100 -- disease resist
-- #scaleeffect 172 1
-- #negscaleaffinity 3 100
-- #maxeffectvalue 172 4
-- #end

#newbless "Disease Explosion"
#name d "Disease Explosion [EFFECT401] + Immunity"
@@ -164,43 +164,103 @@
#maxeffectvalue 190 10
#end

#newbless "Fire Resistance"

#newbless "Fire Resistance Minor"
#name f "Fire Resistance +[EFFECT198]"
#paths f
#pathlevel 1
#addeffect 198 1
#scaleeffect 198 1.2
#maxeffectvalue 198 5
#addeffect 198 2
#end

#newbless "Cold Resistance Minor"
#name w "Cold Resistance +[EFFECT201]"
#paths w
#pathlevel 1
#addeffect 201 2
#end

#newbless "Shock Resistance Minor"
#name a "Shock Resistance +[EFFECT199]"
#paths a
#pathlevel 1
#addeffect 199 2
#end

#newbless "Poison Resistance Minor"
#name n "Poison Resistance +[EFFECT200]"
#paths n
#pathlevel 1
#addeffect 200 2
#end

#newbless "Cold Resistance"
#name w "Cold Resistance +[EFFECT201]"
#paths w
#pathlevel 4
#addeffect 201 5
#scaleeffect 201 2
#maxeffectvalue 201 10
#multipick 1
#end

#newbless "Shock Resistance"
#name a "Shock Resistance +[EFFECT199]"
#paths a
#pathlevel 4
#addeffect 199 5
#scaleeffect 199 2
#maxeffectvalue 199 10
#multipick 1
#end

#newbless "Poison Resistance"
#name n "Poison Resistance +[EFFECT200]"
#paths n
#pathlevel 4
#addeffect 200 5
#scaleeffect 200 2
#maxeffectvalue 200 10
#multipick 1
#end


#newbless "Fire Resistance"
#name f "Fire Resistance +[EFFECT198]"
#paths f
#pathlevel 4
#addeffect 198 5
#scaleeffect 198 2
#maxeffectvalue 198 10
#multipick 1
#end

#newbless "Cold Resistance"
#name w "Cold Resistance +[EFFECT201]"
#paths w
#pathlevel 1
#addeffect 201 1
#scaleeffect 201 1.2
#maxeffectvalue 201 5
#pathlevel 4
#addeffect 201 5
#scaleeffect 201 2
#maxeffectvalue 201 10
#multipick 1
#end

#newbless "Shock Resistance"
#name a "Shock Resistance +[EFFECT199]"
#paths a
#pathlevel 1
#addeffect 199 1
#scaleeffect 199 1.2
#maxeffectvalue 199 5
#pathlevel 4
#addeffect 199 5
#scaleeffect 199 2
#maxeffectvalue 199 10
#multipick 1
#end

#newbless "Poison Resistance"
#name n "Poison Resistance +[EFFECT200]"
#paths n
#pathlevel 1
#addeffect 200 1
#scaleeffect 200 1.2
#maxeffectvalue 200 5
#pathlevel 4
#addeffect 200 5
#scaleeffect 200 2
#maxeffectvalue 200 10
#multipick 1
#end

@@ -212,23 +272,26 @@
#addeffect 199 2
#addeffect 200 2
#addeffect 201 2
#scaleeffect 198 0.5
#scaleeffect 199 0.5
#scaleeffect 200 0.5
#scaleeffect 201 0.5
#maxeffectvalue 200 20
#scaleeffect 198 0.8
#scaleeffect 199 0.8
#scaleeffect 200 0.8
#scaleeffect 201 0.8
#maxeffectvalue 200 10
#multipick 1
#end

-- Astral path ruins the synergy with luck
#newbless "Damage Reversal"
#name b "Damage Reversal"
#paths b
#pathlevel 10
#name s "Damage Reversal"
#paths sb
#reqcrosspath 1
#pathlevel 16
#addeffect 202 1
#end

#newbless "Air Shield"
#name a "Air Shield +[EFFECT208]%"
#name a "Air Shield +[EFFECT208]% (max total 90%)"
#paths a
#pathlevel 2
#addeffect 208 30
@@ -383,15 +446,16 @@
#maxeffectvalue 327 3
#end

#newbless "Poison Aura"
#name n "Poison Aura +[EFFECT106], Poison Res +20"
#paths n
#pathlevel 9
#addeffect 106 2
#addeffect 200 20
#scaleeffect 106 1
#maxeffectvalue 106 5
#end
-- Functions only on commanders, making pricing really really hard
-- #newbless "Poison Aura"
-- #name n "Poison Aura +[EFFECT106], Poison Res +20"
-- #paths n
-- #pathlevel 9
-- #addeffect 106 2
-- #addeffect 200 20
-- #scaleeffect 106 1
-- #maxeffectvalue 106 5
-- #end

#newbless "Reinvigoration"
#name e "Reinvigoration +[EFFECT117]"
@@ -467,10 +531,10 @@
--#end

#newbless "Disbelieve"
#name a "Disbelieve +[EFFECT295]"
#name s "Disbelieve +[EFFECT295]"
#name a "Disbelieve +[EFFECT295] (Cmdr only)"
#name s "Disbelieve +[EFFECT295] (Cmdr only)"
#paths as
#pathlevel 2
#pathlevel 1
#addeffect 295 5
#end

@@ -485,14 +549,15 @@
#multipick 1
#end

#newbless "Sleep Aura"
#name n "Sleep Aura +[EFFECT306]"
#paths n
#pathlevel 8
#addeffect 306 2
#scaleeffect 306 1
#maxeffectvalue 306 5
#end
-- Functions only on commanders, making pricing really really hard
-- #newbless "Sleep Aura"
-- #name n "Sleep Aura +[EFFECT306]"
-- #paths n
-- #pathlevel 8
-- #addeffect 306 2
-- #scaleeffect 306 1
-- #maxeffectvalue 306 5
-- #end

#newbless "Reforming"
#name n "Reforming +[EFFECT337]%"
@@ -642,13 +707,14 @@
#maxeffectvalue 383 20
#end

#newbless "Mind Slimer"
#name s "Mind Slimer [EFFECT402] + Void Sanity"
#paths s
#pathlevel 10
#addeffect 402 2
#addeffect 277 5
#end
-- Functions only on commanders, making pricing really really hard
-- #newbless "Mind Slimer"
-- #name s "Mind Slimer [EFFECT402] + Void Sanity"
-- #paths s
-- #pathlevel 10
-- #addeffect 402 2
-- #addeffect 277 5
-- #end

#newbless "Affliction Resistance"
#name e "Affliction Resistance +[EFFECT406]"
@@ -684,6 +750,16 @@
#multipick 1
#end

#newbless "Affliction Rate"
#name d "+[EFFECT301]% to cause Afflictions"
#paths d
#pathlevel 1
#addeffect 301 35
#scaleeffect 301 50
#maxeffectvalue 301 300
#multipick 1
#end

#newbless "Limited Regen"
#name n "Limited Regeneration +[EFFECT462]%"
#paths n
Loading