Skip to content

Commit 9979175

Browse files
committed
Refactor plant creation logic by consolidating CPlants functionality into Cfunction.js and removing CreateCPlants.js
1 parent ea45871 commit 9979175

File tree

3 files changed

+194
-194
lines changed

3 files changed

+194
-194
lines changed

game/index.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1153,7 +1153,6 @@
11531153
<script src="js/Menus.js"></script>
11541154
<script src="js/Custom.js"></script>
11551155
<script src="js/Cheatcodes.js"></script>
1156-
<script src="js/CreateCPlants.js"></script>
11571156
<script src="js/CPlants.js" type="module"></script>
11581157
<script src="js/CZombie.js"></script>
11591158
<script src="js/IZombie.js"></script>

game/js/Cfunction.js

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4035,3 +4035,197 @@ const izombiePlantsMap = [
40354035
"oBigChomper",
40364036
"oFlamesMushroom",
40374037
];
4038+
4039+
var CPlants = NewO({
4040+
name: "Plants",
4041+
HP: 300,
4042+
PKind: 1,
4043+
beAttackedPointL: 20,
4044+
CardGif: 0,
4045+
StaticGif: 1,
4046+
NormalGif: 2,
4047+
AlmanacGif: 2,
4048+
BookHandBack: "Day",
4049+
canEat: 1,
4050+
zIndex: 0,
4051+
AudioArr: [],
4052+
coolTime: 7.5,
4053+
CanSelect: 1,
4054+
canTrigger: 1,
4055+
Stature: 0,
4056+
4057+
Sleep: 0,
4058+
CanGrow(c, b, e) {
4059+
var a = b + "_" + e;
4060+
var d = oS.ArP;
4061+
// oxlint-disable-next-line no-nested-ternary
4062+
return d
4063+
? oGd.$LF[b] === 1
4064+
? e > 0 && e < d.ArC[1] && !(oGd.$Crater[a] || oGd.$Tombstones[a] || c[1])
4065+
: c[0] && !c[1]
4066+
: oGd.$LF[b] === 1
4067+
? !(e < 1 || e > 9 || oGd.$Crater[a] || oGd.$Tombstones[a] || c[1])
4068+
: c[0] && !c[1];
4069+
},
4070+
getHurt(e, c, b) {
4071+
var d = this;
4072+
var a = d.id;
4073+
!(c % 3) ? (d.HP -= b) < 1 && d.Die() : d.Die();
4074+
},
4075+
GetDY(b, c, a) {
4076+
return a[0] ? -21 : -15;
4077+
},
4078+
GetDX() {
4079+
return -Math.floor(this.width * 0.5);
4080+
},
4081+
GetDBottom() {
4082+
return this.height;
4083+
},
4084+
Birth(d, c, h, a, m, n) {
4085+
var e = this;
4086+
var k = d + e.GetDX();
4087+
var i = c + e.GetDY(h, a, m);
4088+
var l = e.prototype;
4089+
var g = i - e.height;
4090+
var b = (e.id = "P_" + Math.random());
4091+
var j = (e.zIndex += 3 * h);
4092+
var f = NewEle(0, "div", "position:absolute");
4093+
4094+
var isOnLilyPad = false;
4095+
for (var pID in $P) {
4096+
var p = $P[pID];
4097+
if (p && p.R === h && p.C === a && p.EName === "oLilyPad") {
4098+
isOnLilyPad = true;
4099+
break;
4100+
}
4101+
}
4102+
4103+
var isWaterRow = oGd.$LF[h] === 2;
4104+
var isBlacklisted = e.EName === "oPoolCleaner";
4105+
4106+
if ((isOnLilyPad || isWaterRow) && !isBlacklisted) {
4107+
f.className += " floatingPlant";
4108+
}
4109+
4110+
NewImg(0, ShadowPNG, e.getShadow(e), f);
4111+
e.plantImage = NewImg(0, e.PicArr[e.NormalGif], "", f);
4112+
4113+
e.ele = f;
4114+
e.pixelLeft = k;
4115+
e.pixelRight = k + e.width;
4116+
e.pixelTop = g;
4117+
e.pixelBottom = g + e.GetDBottom();
4118+
e.opacity = 1;
4119+
e.InitTrigger(e, b, (e.R = h), (e.C = a), (e.AttackedLX = k + e.beAttackedPointL), (e.AttackedRX = k + e.beAttackedPointR));
4120+
4121+
$P[b] = e;
4122+
$P.length += 1;
4123+
4124+
e.BirthStyle(
4125+
e,
4126+
b,
4127+
f,
4128+
{
4129+
left: k + "px",
4130+
top: g + "px",
4131+
zIndex: j,
4132+
},
4133+
n
4134+
);
4135+
4136+
oGd.add(e, h + "_" + a + "_" + e.PKind);
4137+
e.PrivateBirth(e, n);
4138+
},
4139+
getShadow(a) {
4140+
return "left:" + (a.width * 0.5 - 48) + "px;top:" + (a.height - 22) + "px";
4141+
},
4142+
BirthStyle(c, d, b, a) {
4143+
EditEle(
4144+
b,
4145+
{
4146+
id: d,
4147+
},
4148+
a,
4149+
EDPZ
4150+
);
4151+
},
4152+
PrivateBirth(a) {},
4153+
getTriggerRange(a, b, c) {
4154+
return [[b, oS.W, 0]];
4155+
},
4156+
getTriggerR(a) {
4157+
return [a, a];
4158+
},
4159+
InitTrigger(c, b, f, a, h, g) {
4160+
var j = {};
4161+
var i = c.getTriggerR(f);
4162+
var e = i[0];
4163+
var d = i[1];
4164+
do {
4165+
oT.add(e, (j[e] = c.getTriggerRange(e, h, g)), b);
4166+
} while (e++ !== d);
4167+
c.oTrigger = j;
4168+
},
4169+
TriggerCheck(b, a) {
4170+
this.AttackCheck2(b) && ((this.canTrigger = 0), this.CheckLoop(b.id, a));
4171+
},
4172+
CheckLoop(b, c) {
4173+
var a = this.id;
4174+
this.NormalAttack(b);
4175+
oSym.addTask(
4176+
140,
4177+
(e, f, h) => {
4178+
var g;
4179+
(g = $P[e]) && g.AttackCheck1(f, h);
4180+
},
4181+
[a, b, c]
4182+
);
4183+
},
4184+
AttackCheck1(g, f) {
4185+
var b = this;
4186+
var c = b.oTrigger;
4187+
var a = $Z[g];
4188+
var h;
4189+
var e;
4190+
var k;
4191+
var j;
4192+
if (a && a.PZ && (h = c[a.R])) {
4193+
k = a.ZX;
4194+
e = h.length;
4195+
while (e--) {
4196+
j = h[e];
4197+
if (j[0] <= k && j[1] >= k && b.AttackCheck2(a)) {
4198+
b.CheckLoop(g, j[2]);
4199+
return;
4200+
}
4201+
}
4202+
}
4203+
b.canTrigger = 1;
4204+
},
4205+
AttackCheck2(a) {
4206+
return a.Altitude > 0;
4207+
},
4208+
PrivateDie(a) {},
4209+
BoomDie() {
4210+
var a = this;
4211+
var b = a.id;
4212+
a.oTrigger && oT.delP(a);
4213+
a.HP = 0;
4214+
delete $P[b];
4215+
delete oGd.$[a.R + "_" + a.C + "_" + a.PKind];
4216+
$P.length -= 1;
4217+
ClearChild($(b));
4218+
a.PrivateDie(a);
4219+
},
4220+
Die(a) {
4221+
var b = this;
4222+
var c = b.id;
4223+
b.oTrigger && oT.delP(b);
4224+
b.HP = 0;
4225+
delete $P[c];
4226+
delete oGd.$[b.R + "_" + b.C + "_" + b.PKind];
4227+
$P.length -= 1;
4228+
!a && ClearChild($(c));
4229+
b.PrivateDie(b);
4230+
},
4231+
});

game/js/CreateCPlants.js

Lines changed: 0 additions & 193 deletions
This file was deleted.

0 commit comments

Comments
 (0)