tuipet 0.2.331__py3-none-any.whl → 0.2.332__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
tuipet/pet.py CHANGED
@@ -155,6 +155,16 @@ ITEM_INTEREST_HIGH_TIMER = 80 # ItemInterestHighTimer (disposition -1)
155
155
  PERSONALITY_MOOD_MATCH = 10 # ConsumablePersonalityMatchMoodChange
156
156
  PERSONALITY_MOOD_UNMATCH = -10 # ConsumablePersonalityUnmatchMoodChange
157
157
  EGG_MOOD = 100 # EggMood: a new egg starts warm (Evolution.egg)
158
+ # Evolution.java per-stage ARRIVAL setters (egg/hatch audit 2026-07-06; the
159
+ # shipped ranges are all min==max -> deterministic)
160
+ FRESH_MOOD = -10 # FreshMood: born grumpy (it's a newborn)
161
+ FRESH_OBEDIENCE = 75 # FreshObedienceMin/Max: born TRUSTING
162
+ START_NUTRITION = 6 # StartProtein/StartMineral/StartVitamin
163
+ IN_TRAINING_OBEDIENCE = 50 # InTrainingObedienceMin/Max: toddler rebellion cap
164
+ IN_TRAINING_SLEEP_LAPSE = 360 # InTrainingSleepLapse: wakes with real bedtime pressure
165
+ ROOKIE_OBED_GOOD = 50 # RookieGoodObedience (Happy daily majority)
166
+ ROOKIE_OBED_DEFAULT = 25 # RookieDefaultObedience (Neutral majority)
167
+ ROOKIE_OBED_BAD = 0 # RookieBadObedience (anything else, ties included)
158
168
  # the missed-day / birthday system (setTimeToAge): each game day of AGE the pet
159
169
  # has a birthday judged by the day's MAJOR mood and its missed-day tally
160
170
  MOOD_RECORD_MIN = 5 # MoodRecordMin: sample the mood tier every 5 game-min
@@ -2411,6 +2421,40 @@ class Pet:
2411
2421
  def evolve_to(self, num):
2412
2422
  was_young = self.stage in ("Egg", "Fresh", "InTraining", "Rookie")
2413
2423
  _req = self._become(num)
2424
+ # Evolution.java's per-stage ARRIVAL setters (egg/hatch audit
2425
+ # 2026-07-06 -- none of these were ported; the missing fresh()
2426
+ # obedience 75 was the deepest root of the misbehaving-babies era):
2427
+ if self.stage == "Fresh":
2428
+ # fresh(): born TRUSTING (obedience 75) but grumpy (-10 mood),
2429
+ # hungry, full of energy, with a starter nutrition base 6/6/6
2430
+ lo, hi = self.ideal_temp
2431
+ self.temp = (lo + hi) // 2
2432
+ self._set_mood(FRESH_MOOD)
2433
+ self._set_obedience(FRESH_OBEDIENCE)
2434
+ self.strength = 0
2435
+ self.hunger = 0
2436
+ self.energy = self.max_energy
2437
+ self.nutr_protein = self.nutr_mineral = self.nutr_vitamin = START_NUTRITION
2438
+ elif self.stage == "InTraining":
2439
+ # inTraining(): toddler rebellion -- obedience above 50 KNOCKS
2440
+ # BACK to 50; it wakes with the lights on and real bedtime
2441
+ # pressure (sleepLapse 360)
2442
+ if self.obedience > IN_TRAINING_OBEDIENCE:
2443
+ self._set_obedience(IN_TRAINING_OBEDIENCE)
2444
+ self.asleep, self.nap = False, False
2445
+ self.lights = True
2446
+ self.sleep_lapse = IN_TRAINING_SLEEP_LAPSE
2447
+ elif self.stage == "Rookie":
2448
+ # rookie(): the childhood report card SETS obedience -- a Happy
2449
+ # daily-mood majority earns 50, Neutral 25, anything else 0
2450
+ # (a TIE is Mood.None -> the switch default -> bad, canon exact)
2451
+ counts = self.daily_mood
2452
+ best = max(counts.values()) if counts else 0
2453
+ tops = [k for k, v in counts.items() if v == best and best > 0]
2454
+ major = tops[0] if len(tops) == 1 else None
2455
+ self._set_obedience(ROOKIE_OBED_GOOD if major == "Happy"
2456
+ else ROOKIE_OBED_DEFAULT if major == "Neutral"
2457
+ else ROOKIE_OBED_BAD)
2414
2458
  if was_young and self.stage == "Champion":
2415
2459
  # randOnChampion (taste/rank audit 2026-07-06): the childhood-care
2416
2460
  # tally becomes the adult temperament
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tuipet
3
- Version: 0.2.331
3
+ Version: 0.2.332
4
4
  Summary: A terminal virtual pet (Digimon V-Pet style) rendered with halfblock sprites, built on data extracted from DVPet.
5
5
  Author-email: Joel Taylor <joeltaylor734@gmail.com>
6
6
  License-Expression: MIT
@@ -27,7 +27,7 @@ tuipet/menu.py,sha256=dXMO_KLsjgwYcjiLbzYu_8XWSswcVO2_dtJcfajsXJw,7865
27
27
  tuipet/net.py,sha256=6UD8Lj2pkeS1LT9xv26T-4iBeAyZGvuYP-D_xLB_9-4,10058
28
28
  tuipet/optionsscreen.py,sha256=M16wgcZeli7vYD5wGTiZR29_u20Jn6dRcse7NYxJ3IY,4288
29
29
  tuipet/persistence.py,sha256=yI7I3Khl6JlJBWNLnlPodazCiMQzDPxsidLVcajg4J8,19961
30
- tuipet/pet.py,sha256=UdQm50zhDCMoQtGTQmZ5cud53tVdcROtnzV3yh2v-OA,264964
30
+ tuipet/pet.py,sha256=qDkL44hKBpgYXra2-RAODvOPJWhrMuXFcG4ta4yHDV8,267670
31
31
  tuipet/placeholder.py,sha256=5SfgtVm1WJfl0Gtqu3JAIEJmCavBfuD-nU_gq_vzQPI,780
32
32
  tuipet/render.py,sha256=16PkwRT2vAXu3mPmZAenbyBMczUo51OV9AkWKixOpEc,6413
33
33
  tuipet/shop.py,sha256=pNzmA6wKFNUZjhgiBzpPT2E4QgnuGdXQH9g5oD0fYqQ,11688
@@ -107,9 +107,9 @@ tuipet/data/sounds/trainhit.wav,sha256=c0aDl1uS8RFNVoX_s67szAS3mIxCMSaqCIwXj6LnB
107
107
  tuipet/data/sounds/wash.wav,sha256=SDrxwUV5oFfDynb66bISo-_dA_YJMKvr_UPKSdcpnDc,17684
108
108
  tuipet/data/sounds/win.wav,sha256=ikZul5NPN3tPlEwMfcaZ-3mWad2P73tCgco6ZQ1RD7k,88284
109
109
  tuipet/data/sounds/wind.wav,sha256=Hg0AZTRsQf6cAnfTlgWbgtPUjrrFHPDiwW1iTRmHnjw,259048
110
- tuipet-0.2.331.dist-info/licenses/LICENSE,sha256=7-IPgD56OIs5ZrDQ7INEMvIc-kew73mrRbHo_gLFY8g,1499
111
- tuipet-0.2.331.dist-info/METADATA,sha256=dvYx8Y6hE2CZqqh6PXO735NTH1KorSnd5FR2d6HVesM,11593
112
- tuipet-0.2.331.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
113
- tuipet-0.2.331.dist-info/entry_points.txt,sha256=haVwv35e6nPvE7kWdvn_hVxxsLOKQ8r7uuNeq4HhtIU,43
114
- tuipet-0.2.331.dist-info/top_level.txt,sha256=MlvRl-fPaq1j-L4JAHN4-XaVX_eMqQpik6cn1u1rMMk,7
115
- tuipet-0.2.331.dist-info/RECORD,,
110
+ tuipet-0.2.332.dist-info/licenses/LICENSE,sha256=7-IPgD56OIs5ZrDQ7INEMvIc-kew73mrRbHo_gLFY8g,1499
111
+ tuipet-0.2.332.dist-info/METADATA,sha256=Y_DaYQVc5BnSmme5Qx3i3Angh2dyeB0UPfGnJbRC8aI,11593
112
+ tuipet-0.2.332.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
113
+ tuipet-0.2.332.dist-info/entry_points.txt,sha256=haVwv35e6nPvE7kWdvn_hVxxsLOKQ8r7uuNeq4HhtIU,43
114
+ tuipet-0.2.332.dist-info/top_level.txt,sha256=MlvRl-fPaq1j-L4JAHN4-XaVX_eMqQpik6cn1u1rMMk,7
115
+ tuipet-0.2.332.dist-info/RECORD,,