a
This commit is contained in:
parent
d163ceb291
commit
f6d7412744
94 changed files with 3836 additions and 1226 deletions
|
|
@ -249,10 +249,13 @@ function tarinaiSpriteReversesFacing(sprite) {
|
|||
const fearShakeY = this.intimidatedTimer > 0.04 ? Math.sin(t * 52 + this.age * 0.7) * this.radius * 0.11 : 0;
|
||||
const birthShake = this.birthRitualTimer > 0.04 ? Math.sin(t * 34 + this.age) * this.radius * 0.07 : 0;
|
||||
const coldStatus = this.temperatureStatus || this.world?.temperatureStatusFor?.(this.feltTemperature ?? this.tempComfort ?? (CONFIG.standardTemperature ?? 15), this) || null;
|
||||
const trappedShakeActive = Number(this._bearTrapHoldUntil || 0) > Number(this.world?.time || 0);
|
||||
const coldShakeActive = Boolean(coldStatus && coldStatus.direction === "cold" && (coldStatus.discomfort || 0) > 0.5 && this.state !== "sunbath");
|
||||
const coldShakeStrength = coldShakeActive ? clamp((coldStatus.discomfort || 0) / 12, 0.25, 1.25) : 0;
|
||||
const coldShakeX = coldShakeActive ? (Math.sin(t * 46 + this.age * 0.9) + Math.sin(t * 71 + this.age * 0.31) * 0.55) * this.radius * 0.035 * coldShakeStrength : 0;
|
||||
const coldShakeY = coldShakeActive ? Math.sin(t * 58 + this.age * 0.47) * this.radius * 0.012 * coldShakeStrength : 0;
|
||||
const trapShakeStrength = trappedShakeActive ? 1.05 : 0;
|
||||
const shakeStrength = Math.max(coldShakeStrength, trapShakeStrength);
|
||||
const coldShakeX = (coldShakeActive || trappedShakeActive) ? (Math.sin(t * 46 + this.age * 0.9) + Math.sin(t * 71 + this.age * 0.31) * 0.55) * this.radius * 0.035 * shakeStrength : 0;
|
||||
const coldShakeY = (coldShakeActive || trappedShakeActive) ? Math.sin(t * 58 + this.age * 0.47) * this.radius * 0.012 * shakeStrength : 0;
|
||||
const bob = breathing * (this.state === "sleep" ? 0.9 : 1.2 + gait * 1.6) + headbuttPulse * 0.9 + fallLift + birthShake * 0.25;
|
||||
const blastSpin = this.blastSpinTimer > 0.04 ? this.fallDir * ((this.blastSpinMax || 1) - this.blastSpinTimer) * Math.PI * 70.0 : 0;
|
||||
const fallSpin = this.blastSpinTimer > 0.04 ? blastSpin : (fallPose > 0 ? this.fallDir * (1 - fallPose) * Math.PI * 2 : 0);
|
||||
|
|
@ -467,17 +470,19 @@ function tarinaiSpriteReversesFacing(sprite) {
|
|||
ctx.restore();
|
||||
}
|
||||
|
||||
if (showDecor && (this.goodMode === "smile" || this.state === "cursor_friend") && this.mood > 58 && this.stress < 44 && this.state !== "sleep") {
|
||||
const cursorLove = Math.max(0, this.cursorPetting || 0);
|
||||
const cursorPettingActive = cursorLove > 0.035;
|
||||
if (showDecor && this.state !== "sleep" && (cursorPettingActive || ((this.goodMode === "smile" || this.state === "cursor_friend") && this.mood > 58 && this.stress < 44))) {
|
||||
ctx.save();
|
||||
const cursorLove = this.state === "cursor_friend" ? Math.max(0, this.cursorPetting || 0) : 0;
|
||||
ctx.globalAlpha = this.state === "cursor_friend" ? clamp(0.82 + cursorLove * 0.16, 0.82, 1) : 0.34;
|
||||
ctx.fillStyle = this.state === "cursor_friend" ? "#f05b87" : (lightState.nightStrength > 0.20 ? "#eef5ff" : (lightState.goldenStrength > 0.35 ? "#ffe398" : "#d6f5a9"));
|
||||
const count = this.state === "cursor_friend" ? (cursorLove > 1.0 ? 10 : (cursorLove > 0.45 ? 8 : (cursorLove > 0.18 ? 6 : 4))) : 2;
|
||||
const showPettingHearts = cursorPettingActive || this.state === "cursor_friend";
|
||||
ctx.globalAlpha = showPettingHearts ? clamp(0.82 + cursorLove * 0.16, 0.82, 1) : 0.34;
|
||||
ctx.fillStyle = showPettingHearts ? "#f05b87" : (lightState.nightStrength > 0.20 ? "#eef5ff" : (lightState.goldenStrength > 0.35 ? "#ffe398" : "#d6f5a9"));
|
||||
const count = showPettingHearts ? (cursorLove > 1.0 ? 10 : (cursorLove > 0.45 ? 8 : (cursorLove > 0.18 ? 6 : 4))) : 2;
|
||||
for (let i = 0; i < count; i++) {
|
||||
const orbit = 0.24 + (i % 3) * 0.08 + cursorLove * 0.05;
|
||||
const px = Math.cos(t * 2.2 + this.age + i * 1.42) * drawW * orbit;
|
||||
const py = -drawH * (0.22 + (i % 2) * 0.06) + Math.sin(t * 2.9 + this.age * 0.2 + i) * drawH * (0.08 + cursorLove * 0.02);
|
||||
if (this.state === "cursor_friend") {
|
||||
if (showPettingHearts) {
|
||||
const s = Math.max(5, drawW * (0.070 + (i % 3) * 0.012 + cursorLove * 0.01));
|
||||
drawHeartShape(ctx, px, py, s, { fill: "rgba(240,91,135,0.90)", stroke: "rgba(255,252,246,0.92)", alpha: 1, rotation: Math.sin(t * 3 + i) * 0.18 });
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue