@@ -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+ } ) ;
0 commit comments