Commit dd80c5fb authored by wildfirecode's avatar wildfirecode

Merge branch 'hotfix20200330_' into dev

parents 4150daa9 8a5ee75a
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
background-color: #000; background-color: #000;
background-size: 100%; background-size: 100%;
background-position: center; background-position: center;
background-image: url("https://yun.duiba.com.cn/db_games/activity/game/0217/startscenebg2.jpg"); background-image: url("https://yun.duiba.com.cn/db_games/activity/game/0327/startscenebg.jpg");
/* background-image: url("https://yun.duiba.com.cn/db_games/activity/game/1565600901/resource/assets/startScene/startscenebg.jpg"); */ /* background-image: url("https://yun.duiba.com.cn/db_games/activity/game/1565600901/resource/assets/startScene/startscenebg.jpg"); */
padding: 0; padding: 0;
border: 0; border: 0;
......
...@@ -307,6 +307,8 @@ export default class MainBase extends eui.UILayer { ...@@ -307,6 +307,8 @@ export default class MainBase extends eui.UILayer {
} }
RES.getResAsync("ele34_png"); RES.getResAsync("ele34_png");
RES.getResAsync("ele36_png"); RES.getResAsync("ele36_png");
RES.getResAsync("ele38_png");
RES.getResAsync("ele39_png");
for (var i = 1; i <= 27; i++) { for (var i = 1; i <= 27; i++) {
RES.getResAsync("bonusFra" + i + "_png") RES.getResAsync("bonusFra" + i + "_png")
} }
......
...@@ -71,7 +71,8 @@ import { ...@@ -71,7 +71,8 @@ import {
FiveBaseElementTypes, FiveBaseElementTypes,
MonsterBaseElementType, MonsterBaseElementType,
monsterElementMap, monsterElementMap,
submitTran submitTran,
forwardDirection
} from '../something/enum/ElementType'; } from '../something/enum/ElementType';
import { isIce, isSpecialLattice, isSand, isBlock } from '../something/enum/LatticeType'; import { isIce, isSpecialLattice, isSand, isBlock } from '../something/enum/LatticeType';
import { PassType } from '../something/enum/PassType'; import { PassType } from '../something/enum/PassType';
...@@ -280,6 +281,10 @@ export default class MainScene extends Scene { ...@@ -280,6 +281,10 @@ export default class MainScene extends Scene {
private _steps: number; private _steps: number;
private stepNumber: StepNumber; private stepNumber: StepNumber;
//新增炮台,地图上所有的炮台
cannoArr:Array<{idx:number,ele:Element}> = [];
//准备发射的炮台
readyCannoArr:number[] = [];
get steps(): number { get steps(): number {
return this._steps return this._steps
} }
...@@ -418,9 +423,13 @@ export default class MainScene extends Scene { ...@@ -418,9 +423,13 @@ export default class MainScene extends Scene {
if(!svgaParser) svgaParser = new window["SVGA"].Parser(); if(!svgaParser) svgaParser = new window["SVGA"].Parser();
var svgas = ["amazing", "great", "wonderful", "bonusTime"]; var svgas = ["amazing", "great", "wonderful", "bonusTime"];
//如果有节日的加 //如果有节日的加
if(this.festivalTarget) svgas.push("redBombLight"); if (this.festivalTarget) svgas.push("redBombLight");
for(let i = 0; i < svgas.length; i++) { svgas.push(...["canno","cannofire","cannolight","cannoparticle"]);//新增大炮的动画
if(movieClips[svgas[i]]) continue;
for (let i = 0; i < svgas.length; i++) {
if (movieClips[svgas[i]]) continue;
let mvname = svgas[i];
svgaParser.load(resPath + 'resource/assets/svgas/' + svgas[i] + ".svga", (videoItem) => { svgaParser.load(resPath + 'resource/assets/svgas/' + svgas[i] + ".svga", (videoItem) => {
var mv = new window["SVGA"].EgretMovieClip(videoItem); var mv = new window["SVGA"].EgretMovieClip(videoItem);
mv.lockStep = true; mv.lockStep = true;
...@@ -432,7 +441,7 @@ export default class MainScene extends Scene { ...@@ -432,7 +441,7 @@ export default class MainScene extends Scene {
let fun; let fun;
mv.addEventListener(egret.Event.COMPLETE, fun = function(e) { mv.addEventListener(egret.Event.COMPLETE, fun = function(e) {
e.target.stop() e.target.stop()
if(e.target.parent) { if (e.target.parent&&mvname!="canno") {
e.target.parent.removeChild(e.target) e.target.parent.removeChild(e.target)
} }
}, this) }, this)
...@@ -746,6 +755,7 @@ export default class MainScene extends Scene { ...@@ -746,6 +755,7 @@ export default class MainScene extends Scene {
//初始化地图元素 //初始化地图元素
initElement() { initElement() {
this.cannoArr = new Array();
//没有就根据地图格子随机元素 //没有就根据地图格子随机元素
var elements = this.chapterData.map.elements || Tool.setNumber01(this.chapterData.map.lattices.slice()); var elements = this.chapterData.map.elements || Tool.setNumber01(this.chapterData.map.lattices.slice());
for(var i = 0; i < elements.length; i++) { for(var i = 0; i < elements.length; i++) {
...@@ -877,12 +887,35 @@ export default class MainScene extends Scene { ...@@ -877,12 +887,35 @@ export default class MainScene extends Scene {
this.elementContainer.addChild(egg); this.elementContainer.addChild(egg);
this.lattices[i].element = egg; this.lattices[i].element = egg;
break; break;
case ElementConfigType.CANNO_DIR_TOP:
case ElementConfigType.CANNO_DIR_BOTTOM:
case ElementConfigType.CANNO_DIR_LEFT:
case ElementConfigType.CANNO_DIR_RIGHT:
let canno:Element = Tool.getElement(ElementType.CANNO);
canno.x = p[0];
canno.y = p[1];
this.elementContainer.addChild(canno);
this.lattices[i].element = canno;
this.cannoArr.push({
idx:i,
ele:canno
});
break;
case ElementConfigType.CANNO_BLOCK:
let canno_block:Element = Tool.getElement(ElementType.CANNO_BLOCK);
canno_block.x = p[0];
canno_block.y = p[1];
this.elementContainer.addChild(canno_block);
this.lattices[i].element = canno_block;
break;
default: default:
//其他标识按空元素记 //其他标识按空元素记
this.emptys.push(i); this.emptys.push(i);
break break
} }
} }
console.log("关卡大炮配置",this.cannoArr);
} }
//重置基础元素及特效类型 //重置基础元素及特效类型
...@@ -895,10 +928,12 @@ export default class MainScene extends Scene { ...@@ -895,10 +928,12 @@ export default class MainScene extends Scene {
const baseElement = elements[i]; const baseElement = elements[i];
const isCandyEle = elementConfig == ElementConfigType.CANDY; const isCandyEle = elementConfig == ElementConfigType.CANDY;
const isMonsterEle = elementConfig == ElementConfigType.MONSTER; const isMonsterEle = elementConfig == ElementConfigType.MONSTER;
const isCanno = Tool.IsCanno(elementConfig);
//不是基础元素,跳过, //不是基础元素,跳过,
if(!Tool.judgeBaseEle(this.lattices[i]) && !isCandyEle && !isMonsterEle) continue; if (!Tool.judgeBaseEle(this.lattices[i]) && !isCandyEle && !isMonsterEle && !isCanno) continue;
//是0,跳过 //是0,跳过
if(!baseElement && !isCandyEle && !isMonsterEle) continue if (!baseElement && !isCandyEle && !isMonsterEle && !isCanno) continue
const ele: Element = this.lattices[i].element; const ele: Element = this.lattices[i].element;
if(isCandyEle) { //糖果元素 if(isCandyEle) { //糖果元素
if(baseElement == CandyBaseElementType.RANDOM) {//如果是随机糖果,目前只有随机糖果 if(baseElement == CandyBaseElementType.RANDOM) {//如果是随机糖果,目前只有随机糖果
...@@ -913,7 +948,12 @@ export default class MainScene extends Scene { ...@@ -913,7 +948,12 @@ export default class MainScene extends Scene {
ele.resetType(monsterElementMap[baseElement]);//先重置ele类型 ele.resetType(monsterElementMap[baseElement]);//先重置ele类型
} }
ele.resetToMonsterView(elementMonsterResMap[ele.type]); ele.resetToMonsterView(elementMonsterResMap[ele.type]);
} else { }
else if(isCanno){//是炮台
var dirType = Tool.getCannoDir(elementConfig);
ele.resetToCannoView(dirType);
}
else {
//解析elements[i]; //解析elements[i];
var arr: number[] = Tool.returnTO(elements[i]); var arr: number[] = Tool.returnTO(elements[i]);
//基础类型,没有就是null,有就-1,对ElementType对应 //基础类型,没有就是null,有就-1,对ElementType对应
...@@ -1029,8 +1069,6 @@ export default class MainScene extends Scene { ...@@ -1029,8 +1069,6 @@ export default class MainScene extends Scene {
this.soundBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTap_soundBtnn, this) this.soundBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTap_soundBtnn, this)
this.musicBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTap_musicBtn, this) this.musicBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTap_musicBtn, this)
this.quitBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTap_quitBtn, this) this.quitBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTap_quitBtn, this)
} }
removeEvents() { removeEvents() {
...@@ -1198,6 +1236,8 @@ export default class MainScene extends Scene { ...@@ -1198,6 +1236,8 @@ export default class MainScene extends Scene {
var ele = e.target.parent var ele = e.target.parent
if(ele instanceof Element && if(ele instanceof Element &&
// ele.type != ElementType.ROCK && // ele.type != ElementType.ROCK &&
ele.type != ElementType.CANNO &&
ele.type != ElementType.CANNO_BLOCK &&
!ele.hasState(StateType.BLOCK_LOCK) && //石门无法消除 !ele.hasState(StateType.BLOCK_LOCK) && //石门无法消除
ele.type != ElementType.LOLLIPOP) { ele.type != ElementType.LOLLIPOP) {
this.elementContainer.removeEventListener(egret.TouchEvent.TOUCH_BEGIN, fun, this); this.elementContainer.removeEventListener(egret.TouchEvent.TOUCH_BEGIN, fun, this);
...@@ -1254,21 +1294,40 @@ export default class MainScene extends Scene { ...@@ -1254,21 +1294,40 @@ export default class MainScene extends Scene {
var rc = Tool.indexToRc(index); var rc = Tool.indexToRc(index);
var p = Tool.getPositionByIndex(index); var p = Tool.getPositionByIndex(index);
this.playAni(RecoverName.CROSS_ANI, p); this.playAni(RecoverName.CROSS_ANI, p);
for(var i = 0; i < this.lattices.length; i++) { // for (var i = 0; i < this.lattices.length; i++) {
var lat = this.lattices[i]; // var lat = this.lattices[i];
if(Tool.judgeEliminate(lat) && (lat.row == rc[0] || lat.column == rc[1])) { // if (Tool.judgeEliminate(lat) && (lat.row == rc[0] || lat.column == rc[1])) {
if(this.eliminatedElements.indexOf(i) == -1) { // if (this.eliminatedElements.indexOf(i) == -1) {
this.eliminatedElements.push(i); // this.eliminatedElements.push(i);
if(this.lattices[i].element.type == ElementType.FISH) { // if (this.lattices[i].element.type == ElementType.FISH) {
this.lattices[i].element.nextFishState(); // this.lattices[i].element.nextFishState();
} // }
if(Tool.judgeHasScore(lat.element)) { // if (Tool.judgeHasScore(lat.element)) {
//算直线+直线LL // //算直线+直线LL
this.pushScoreAni(baseScore * 1 * effectBaseTimes.LL, Tool.getPositionByIndex(i)) // this.pushScoreAni(baseScore * 1 * effectBaseTimes.LL, Tool.getPositionByIndex(i))
} // }
// }
// }
// }
//新增石头阻挡
var elimitarr = this.getEliPassCannoStone(rc[0],rc[1]);
for(var j=0;j<elimitarr.length;j++){
var jelidx = elimitarr[j];
var jlat = this.lattices[jelidx];
if(this.eliminatedElements.indexOf(jelidx)==-1){
this.eliminatedElements.push(jelidx);
if(jlat.element.type == ElementType.FISH){
jlat.element.nextFishState();
}
if(Tool.judgeHasScore(jlat.element)){
//算直线+直线LL
this.pushScoreAni(baseScore * 1 * effectBaseTimes.LL, Tool.getPositionByIndex(jelidx))
} }
} }
} }
setTimeout(() => { setTimeout(() => {
this._converyorTag = true; this._converyorTag = true;
this.eliminate(); this.eliminate();
...@@ -1306,6 +1365,77 @@ export default class MainScene extends Scene { ...@@ -1306,6 +1365,77 @@ export default class MainScene extends Scene {
} }
}, prop) }, prop)
} }
//横向消除,不包括炮台石头
getEliHorPassCannoStone(row:number,col:number){
var elimitarr:number[] = new Array();
//向左
for(var i=col;i>=0;i--){
var iemitidx = Tool.rcToIndex(row,i);
var lat = this.lattices[iemitidx];
var caneliminate = Tool.judgeEliminate(lat);
var iscannoblock = Tool.judgeIscannoBlock(lat);
if(caneliminate){
elimitarr.push(iemitidx);
}
if(iscannoblock){
break;
}
}
//向右
for(var i=col;i<Tool.colNum;i++){
var iemitidx = Tool.rcToIndex(row,i);
var lat = this.lattices[iemitidx];
var caneliminate = Tool.judgeEliminate(lat);
var iscannoblock = Tool.judgeIscannoBlock(lat);
if(caneliminate){
elimitarr.push(iemitidx);
}
if(iscannoblock){
break;
}
}
return elimitarr;
}
//竖向消除,不包括炮台石头
getEliVerPassCannoStone(row:number,col:number){
var elimitarr:number[] = new Array();
//向上
for(var i=row;i>=0;i--){
var iemitidx = Tool.rcToIndex(i,col);
var lat = this.lattices[iemitidx];
var caneliminate = Tool.judgeEliminate(lat);
var iscannoblock = Tool.judgeIscannoBlock(lat);
if(caneliminate){
elimitarr.push(iemitidx);
}
if(iscannoblock){
break;
}
}
//向下
for(var i=row;i<Tool.rowNum;i++){
var iemitidx = Tool.rcToIndex(i,col);
var lat = this.lattices[iemitidx];
var caneliminate = Tool.judgeEliminate(lat);
var iscannoblock = Tool.judgeIscannoBlock(lat);
if(caneliminate){
elimitarr.push(iemitidx);
}
if(iscannoblock){
break;
}
}
return elimitarr;
}
//一般横向竖向消除,不过炮台石头
getEliPassCannoStone(row:number,col:number){
var elimitarr:number[] = new Array();
var elimitarrhor = this.getEliHorPassCannoStone(row,col);
var elimitarrver = this.getEliVerPassCannoStone(row,col);
elimitarr.push(...elimitarrhor);
elimitarr.push(...elimitarrver);
return elimitarr;
}
mouseDownE(e: egret.TextEvent) { mouseDownE(e: egret.TextEvent) {
// if (!this.enableTouch) return // if (!this.enableTouch) return
...@@ -2024,6 +2154,29 @@ export default class MainScene extends Scene { ...@@ -2024,6 +2154,29 @@ export default class MainScene extends Scene {
this.pushScoreAni(baseScore * this.commonContinuityTimes, Tool.getPositionByIndex(index)) this.pushScoreAni(baseScore * this.commonContinuityTimes, Tool.getPositionByIndex(index))
} }
} }
// if(this.eliminatedElements.length>0){
// for(var i=0;i<this.eliminatedElements.length;i++){
// var ielimidx = this.eliminatedElements[i];
// for(var p=0;p<this.cannoArr.length;p++){
// var pcannoidx = this.cannoArr[p].idx;
// var isnext = Tool.checkNebByidx(pcannoidx,ielimidx);
// if(isnext){
// var pcannoele = this.cannoArr[p].ele;
// pcannoele.addOneCannoStat();
// var pcannostat = pcannoele.checkCannoStat();
// if(pcannostat){
// if(this.readyCannoArr.indexOf(p)==-1){
// this.readyCannoArr.push(p);
// }
// }
// }
// }
// }
// }
return this.eliminatedElements.length > 0; return this.eliminatedElements.length > 0;
} }
...@@ -2084,7 +2237,28 @@ export default class MainScene extends Scene { ...@@ -2084,7 +2237,28 @@ export default class MainScene extends Scene {
this.eliminate(); this.eliminate();
return return
} }
if(this._converyorTag) {
//炮台充能发射
var emitcanno:Element;
if(this.readyCannoArr.length>0){
var readyCannoIdx = this.readyCannoArr[0];
emitcanno = this.cannoArr[readyCannoIdx].ele;
}
// for(var p=0;p<this.cannoArr.length;p++){
// var pcanno = this.cannoArr[p].ele;
// var pcannostat = pcanno.checkCannoStat();
// if(pcannostat){
// emitcanno = pcanno;
// break;
// }
// }
if(emitcanno){
this.fireCanno(emitcanno);
return;
}
if (this._converyorTag) {
await doConveyorAI(this); await doConveyorAI(this);
this._converyorTag = false; this._converyorTag = false;
} }
...@@ -2222,6 +2396,56 @@ export default class MainScene extends Scene { ...@@ -2222,6 +2396,56 @@ export default class MainScene extends Scene {
}) })
} }
//大炮发射
fireCanno(canno:Element){
var cannodir = canno._cannoDir;
var cannorow = canno.row;
var cannocol = canno.column;
var cannoFireArr:number[] = new Array();
if(cannodir==forwardDirection.left){
for(var i=cannocol;i>=0;i--){
var iemitidx = Tool.rcToIndex(cannorow,i);
cannoFireArr.push(iemitidx);
}
}else if(cannodir==forwardDirection.up){
for(var i=cannorow;i>=0;i--){
var iemitidx = Tool.rcToIndex(i,cannocol);
cannoFireArr.push(iemitidx);
}
}else if(cannodir==forwardDirection.right){
for(var i=cannocol;i<Tool.colNum;i++){
var iemitidx = Tool.rcToIndex(cannorow,i);
cannoFireArr.push(iemitidx);
}
}else if(cannodir==forwardDirection.down){
for(var i=cannorow;i<Tool.rowNum;i++){
var iemitidx = Tool.rcToIndex(i,cannocol);
cannoFireArr.push(iemitidx);
}
}
for(var j=0;j<cannoFireArr.length;j++){
var jemitidx = cannoFireArr[j];
var lat = this.lattices[jemitidx];
var caneliminate = Tool.judgeEliminate(lat);
var iscannoblock = Tool.judgeIscannoBlock(lat);
if(lat&&(caneliminate||iscannoblock)){
if(this.eliminatedElements.indexOf(jemitidx)==-1){
this.eliminatedElements.push(jemitidx);
}
//加分
if(iscannoblock){
// console.log("炮台石头消除");
break;
}
}
}
setTimeout(()=>{
this.eliminate();
this.readyCannoArr.shift();
canno.resetCannoStat();
},200);
}
checkAllBlock() { checkAllBlock() {
// this.lattices.filter(item => item.block).forEach((item) => { // this.lattices.filter(item => item.block).forEach((item) => {
// item.block.nextState(); // item.block.nextState();
...@@ -2392,19 +2616,37 @@ export default class MainScene extends Scene { ...@@ -2392,19 +2616,37 @@ export default class MainScene extends Scene {
this.recoverEle(one) this.recoverEle(one)
this.recoverEle(two) this.recoverEle(two)
//添加消除元素two,同行或同列 //添加消除元素two,同行或同列
for(var i = 0; i < this.lattices.length; i++) { // for (var i = 0; i < this.lattices.length; i++) {
var lat = this.lattices[i]; // var lat = this.lattices[i];
if(Tool.judgeEliminate(lat) && (lat.row == lat1.row || lat.column == lat1.column)) { // if (Tool.judgeEliminate(lat) && (lat.row == lat1.row || lat.column == lat1.column)) {
if(this.eliminatedElements.indexOf(i) == -1) this.eliminatedElements.push(i); // if (this.eliminatedElements.indexOf(i) == -1) this.eliminatedElements.push(i);
if(this.lattices[i].element.type == ElementType.FISH) { // if (this.lattices[i].element.type == ElementType.FISH) {
this.lattices[i].element.nextFishState(); // this.lattices[i].element.nextFishState();
// }
// if (Tool.judgeHasScore(lat.element)) {
// //线与线
// this.pushScoreAni(baseScore * this.effectContinuityTimes * effectBaseTimes.LL, Tool.getPositionByIndex(i))
// }
// }
// }
//新增石头阻挡
var elimitarr = this.getEliPassCannoStone(lat1.row,lat1.column);
for(var j=0;j<elimitarr.length;j++){
var jelidx = elimitarr[j];
var jlat = this.lattices[jelidx];
if(this.eliminatedElements.indexOf(jelidx)==-1){
this.eliminatedElements.push(jelidx);
if(jlat.element.type == ElementType.FISH){
jlat.element.nextFishState();
} }
if(Tool.judgeHasScore(lat.element)) { if(Tool.judgeHasScore(jlat.element)){
//线与线 //线与线
this.pushScoreAni(baseScore * this.effectContinuityTimes * effectBaseTimes.LL, Tool.getPositionByIndex(i)) this.pushScoreAni(baseScore * this.effectContinuityTimes * effectBaseTimes.LL, Tool.getPositionByIndex(jelidx));
} }
} }
} }
} }
//一个方向,一个爆炸 //一个方向,一个爆炸
else if((ele1.effectType < 2 || ele2.effectType < 2) && else if((ele1.effectType < 2 || ele2.effectType < 2) &&
...@@ -2644,6 +2886,10 @@ export default class MainScene extends Scene { ...@@ -2644,6 +2886,10 @@ export default class MainScene extends Scene {
//统一逻辑,个数等,都进里面 //统一逻辑,个数等,都进里面
this.removeFestivalEleSmall(index); this.removeFestivalEleSmall(index);
} }
//炮台石头
else if (ele.type == ElementType.CANNO_BLOCK){
this.removeCannoBlock(index);
}
} }
} }
//从消除列表移除 //从消除列表移除
...@@ -2732,18 +2978,33 @@ export default class MainScene extends Scene { ...@@ -2732,18 +2978,33 @@ export default class MainScene extends Scene {
//动画移除自己 //动画移除自己
this.playAni(RecoverName.HORIZONTAL_ANI, p); this.playAni(RecoverName.HORIZONTAL_ANI, p);
this.recoverEle(index); this.recoverEle(index);
for(var i = 0; i < Tool.colNum; i++) { // for (var i = 0; i < Tool.colNum; i++) {
var ein = Tool.rcToIndex(row, i); // var ein = Tool.rcToIndex(row, i);
if(Tool.judgeEliminate(this.lattices[ein])) { // if (Tool.judgeEliminate(this.lattices[ein])) {
if(this.eliminatedElements.indexOf(ein) < 0 && effectIndexs.indexOf(ein) < 0) { // if (this.eliminatedElements.indexOf(ein) < 0 && effectIndexs.indexOf(ein) < 0) {
this.eliminatedElements.push(ein); // this.eliminatedElements.push(ein);
if(this.lattices[ein].element.type == ElementType.FISH) { // if (this.lattices[ein].element.type == ElementType.FISH) {
this.lattices[ein].element.nextFishState(); // this.lattices[ein].element.nextFishState();
} // }
//加分 // //加分
if(Tool.judgeHasScore(this.lattices[ein].element)) { // if (Tool.judgeHasScore(this.lattices[ein].element)) {
this.pushScoreAni(baseScore * this.effectContinuityTimes * effectBaseTimes["0"], Tool.getPositionByIndex(ein)) // this.pushScoreAni(baseScore * this.effectContinuityTimes * effectBaseTimes["0"], Tool.getPositionByIndex(ein))
} // }
// }
// }
// }
//新增石头阻挡
var elimitarr = this.getEliHorPassCannoStone(row,lat.column);
for(var j=0;j<elimitarr.length;j++){
var jelidx = elimitarr[j];
var jlat = this.lattices[jelidx];
if(this.eliminatedElements.indexOf(jelidx)==-1&&effectIndexs.indexOf(jelidx)==-1){
this.eliminatedElements.push(jelidx);
if(jlat.element.type==ElementType.FISH){
jlat.element.nextFishState();
}
if(Tool.judgeHasScore(jlat.element)){
this.pushScoreAni(baseScore * this.effectContinuityTimes * effectBaseTimes["0"], Tool.getPositionByIndex(jelidx));
} }
} }
} }
...@@ -2754,18 +3015,32 @@ export default class MainScene extends Scene { ...@@ -2754,18 +3015,32 @@ export default class MainScene extends Scene {
//动画移除自己 //动画移除自己
this.playAni(RecoverName.VERTICAL_ANI, p); this.playAni(RecoverName.VERTICAL_ANI, p);
this.recoverEle(index); this.recoverEle(index);
for(var i = 0; i < Tool.rowNum; i++) { // for (var i = 0; i < Tool.rowNum; i++) {
var ein = Tool.rcToIndex(i, col); // var ein = Tool.rcToIndex(i, col);
if(Tool.judgeEliminate(this.lattices[ein])) { // if (Tool.judgeEliminate(this.lattices[ein])) {
if(this.eliminatedElements.indexOf(ein) < 0 && effectIndexs.indexOf(ein) < 0) { // if (this.eliminatedElements.indexOf(ein) < 0 && effectIndexs.indexOf(ein) < 0) {
this.eliminatedElements.push(ein); // this.eliminatedElements.push(ein);
if(this.lattices[ein].element.type == ElementType.FISH) { // if (this.lattices[ein].element.type == ElementType.FISH) {
this.lattices[ein].element.nextFishState(); // this.lattices[ein].element.nextFishState();
} // }
//加分 // //加分
if(Tool.judgeHasScore(this.lattices[ein].element)) { // if (Tool.judgeHasScore(this.lattices[ein].element)) {
this.pushScoreAni(baseScore * this.effectContinuityTimes * effectBaseTimes["1"], Tool.getPositionByIndex(ein)) // this.pushScoreAni(baseScore * this.effectContinuityTimes * effectBaseTimes["1"], Tool.getPositionByIndex(ein))
} // }
// }
// }
// }
var elimitarr = this.getEliVerPassCannoStone(lat.row,col);
for(var j=0;j<elimitarr.length;j++){
var jelidx = elimitarr[j];
var jlat = this.lattices[jelidx];
if(this.eliminatedElements.indexOf(jelidx)==-1&&effectIndexs.indexOf(jelidx)==-1){
this.eliminatedElements.push(jelidx);
if(jlat.element.type==ElementType.FISH){
jlat.element.nextFishState();
}
if(Tool.judgeHasScore(jlat.element)){
this.pushScoreAni(baseScore * this.effectContinuityTimes * effectBaseTimes["1"], Tool.getPositionByIndex(jelidx));
} }
} }
} }
...@@ -3294,7 +3569,13 @@ export default class MainScene extends Scene { ...@@ -3294,7 +3569,13 @@ export default class MainScene extends Scene {
//播放动效 //播放动效
this.playAni(RecoverName.ROCK_ANI, Tool.getPositionByIndex(index)) this.playAni(RecoverName.ROCK_ANI, Tool.getPositionByIndex(index))
} }
/**
* 炮台石头的动效
*/
removeCannoBlock(index:number){
this.removeOperation(index);
//炮台石头的动效
}
/** /**
* 果冻的移除,包括动效 * 果冻的移除,包括动效
* @param index * @param index
...@@ -3380,6 +3661,22 @@ export default class MainScene extends Scene { ...@@ -3380,6 +3661,22 @@ export default class MainScene extends Scene {
//置空格子的element, //置空格子的element,
this.lattices[index].element = null; this.lattices[index].element = null;
//返回下,有地方要用 //返回下,有地方要用
//炮台充能
for(var p=0;p<this.cannoArr.length;p++){
var pcannoidx = this.cannoArr[p].idx;
var isnext = Tool.checkNebByidx(pcannoidx,index);
if(isnext){
var pcannoele = this.cannoArr[p].ele;
pcannoele.addOneCannoStat();
var pcannostat = pcannoele.checkCannoStat();
if(pcannostat){
if(this.readyCannoArr.indexOf(p)==-1){
this.readyCannoArr.push(p);
}
}
}
}
return ele return ele
} }
......
...@@ -16,7 +16,7 @@ export default async (thisObj: MainScene) => { ...@@ -16,7 +16,7 @@ export default async (thisObj: MainScene) => {
const sandLattices = thisObj.lattices.filter(lattice => { const sandLattices = thisObj.lattices.filter(lattice => {
return lattice.sand; return lattice.sand;
}); });
console.log(sandLattices); // console.log(sandLattices);
//map promise //map promise
//先判断是否能跳动,目前都能跳 //先判断是否能跳动,目前都能跳
const promiseList: Promise<any>[] = []; const promiseList: Promise<any>[] = [];
......
...@@ -2,13 +2,14 @@ import { Element } from "./class/Element"; ...@@ -2,13 +2,14 @@ import { Element } from "./class/Element";
import { Lattice } from "./class/Lattice"; import { Lattice } from "./class/Lattice";
import { RectMask } from "./class/RectMask"; import { RectMask } from "./class/RectMask";
import { EffectType } from "./enum/EffectType"; import { EffectType } from "./enum/EffectType";
import { ElementType, FiveBaseElementTypes } from "./enum/ElementType"; import { ElementType, FiveBaseElementTypes, forwardDirection } from "./enum/ElementType";
import { RecoverName } from "./enum/RecoverName"; import { RecoverName } from "./enum/RecoverName";
import { StateType } from "./enum/StateType"; import { StateType } from "./enum/StateType";
import { FallType } from "./interface/FallAniData"; import { FallType } from "./interface/FallAniData";
import { GenerateLatData } from "./interface/GenerateLatData"; import { GenerateLatData } from "./interface/GenerateLatData";
import { Pool } from "./Pool"; import { Pool } from "./Pool";
import HoneyPotElement from "./class/HoneyPotElement"; import HoneyPotElement from "./class/HoneyPotElement";
import { ElementConfigType } from "./enum/ElementConfigType";
//两种,0无棒棒糖,1有 //两种,0无棒棒糖,1有
const offsetYTwo: number[] = []; const offsetYTwo: number[] = [];
...@@ -230,6 +231,21 @@ export class Tool { ...@@ -230,6 +231,21 @@ export class Tool {
} }
return false return false
} }
/**
* 根据idx判断相邻
* @param a
* @param b
*/
public static checkNebByidx(a:number,b:number){
var arc = this.indexToRc(a);
var brc = this.indexToRc(b);
if (Math.abs(arc[0] - brc[0]) == 1 && Math.abs(arc[1] - brc[1]) == 0) {
return true
} else if (Math.abs(arc[0] - brc[0]) == 0 && Math.abs(arc[1] - brc[1]) == 1) {
return true
}
return false
}
/** /**
* 数组中插入一个数值,按顺序的 * 数组中插入一个数值,按顺序的
...@@ -281,8 +297,10 @@ export class Tool { ...@@ -281,8 +297,10 @@ export class Tool {
lat.element.type == ElementType.JELLY_MONSTER || lat.element.type == ElementType.JELLY_MONSTER ||
lat.element.type == ElementType.FIREWORKS_SHOOTER || lat.element.type == ElementType.FIREWORKS_SHOOTER ||
lat.element.type == ElementType.CHICKEN_EGG || lat.element.type == ElementType.CHICKEN_EGG ||
lat.element.type == ElementType.FESTIVALELE_BIG //|| lat.element.type == ElementType.FESTIVALELE_BIG ||
// lat.element.type == ElementType.FESTIVALELE_SMALL // lat.element.type == ElementType.FESTIVALELE_SMALL
lat.element.type == ElementType.CANNO ||
lat.element.type == ElementType.CANNO_BLOCK
) { ) {
return false return false
} }
...@@ -344,7 +362,9 @@ export class Tool { ...@@ -344,7 +362,9 @@ export class Tool {
//上方元素为冰淇淋 //上方元素为冰淇淋
else if (lat.element.type == ElementType.LOLLIPOP || else if (lat.element.type == ElementType.LOLLIPOP ||
lat.element.type == ElementType.JELLY_MONSTER || lat.element.type == ElementType.JELLY_MONSTER ||
lat.element.type == ElementType.FIREWORKS_SHOOTER lat.element.type == ElementType.FIREWORKS_SHOOTER ||
lat.element.type == ElementType.CANNO ||
lat.element.type == ElementType.CANNO_BLOCK
) { ) {
return false return false
} }
...@@ -353,6 +373,21 @@ export class Tool { ...@@ -353,6 +373,21 @@ export class Tool {
return true return true
} }
} }
/**
* 判断是否是炮台石头
* @param lat
*/
public static judgeIscannoBlock(lat:Lattice){
if(!lat||!lat.element){
return false;
}
else if(lat.element.type==ElementType.CANNO_BLOCK){
return true;
}
else{
return false;
}
}
/** /**
* 判断格子上是基础元素,包括各种状态的 * 判断格子上是基础元素,包括各种状态的
...@@ -428,7 +463,9 @@ export class Tool { ...@@ -428,7 +463,9 @@ export class Tool {
ele.type == ElementType.FIREWORKS_SHOOTER || ele.type == ElementType.FIREWORKS_SHOOTER ||
ele.type == ElementType.CHICKEN_EGG || ele.type == ElementType.CHICKEN_EGG ||
ele.type == ElementType.FESTIVALELE_BIG || ele.type == ElementType.FESTIVALELE_BIG ||
ele.type == ElementType.FESTIVALELE_SMALL ele.type == ElementType.FESTIVALELE_SMALL ||
ele.type == ElementType.CANNO ||
ele.type == ElementType.CANNO_BLOCK
) { ) {
return false; return false;
} }
...@@ -454,7 +491,9 @@ export class Tool { ...@@ -454,7 +491,9 @@ export class Tool {
ele.hasState(StateType.HAIRBALLGREY) || ele.hasState(StateType.HAIRBALLGREY) ||
ele.hasState(StateType.BLOCK_LOCK) || ele.hasState(StateType.BLOCK_LOCK) ||
ele.hasState(StateType.HAIRBALLBLACK) || ele.hasState(StateType.HAIRBALLBLACK) ||
ele.hasState(StateType.HAIRBALLBROWN) ele.hasState(StateType.HAIRBALLBROWN) ||
ele.type == ElementType.CANNO ||
ele.type == ElementType.CANNO_BLOCK
) { ) {
return false; return false;
} }
...@@ -474,7 +513,9 @@ export class Tool { ...@@ -474,7 +513,9 @@ export class Tool {
ele.hasState(StateType.BLOCK_LOCK) || ele.hasState(StateType.BLOCK_LOCK) ||
ele.monster || ele.monster ||
ele.hasState(StateType.HAIRBALLBLACK) || ele.hasState(StateType.HAIRBALLBLACK) ||
ele.hasState(StateType.HAIRBALLBROWN) ele.hasState(StateType.HAIRBALLBROWN) ||
ele.type == ElementType.CANNO ||
ele.type == ElementType.CANNO_BLOCK
) { ) {
return false; return false;
} }
...@@ -860,7 +901,6 @@ export class Tool { ...@@ -860,7 +901,6 @@ export class Tool {
} }
return Tool.randomT(arr); return Tool.randomT(arr);
} }
/** /**
* 根据关卡的地图数据generateLats * 根据关卡的地图数据generateLats
* *
...@@ -1177,4 +1217,36 @@ export class Tool { ...@@ -1177,4 +1217,36 @@ export class Tool {
} }
return outArr return outArr
} }
/**
* 判断是否是炮台
* @param type
*/
public static IsCanno(type:ElementConfigType){
if(type==ElementConfigType.CANNO_DIR_TOP||
type==ElementConfigType.CANNO_DIR_BOTTOM||
type==ElementConfigType.CANNO_DIR_LEFT||
type==ElementConfigType.CANNO_DIR_RIGHT
){
return true;
}
return false;
}
public static getCannoDir(type:ElementConfigType){
if(type==ElementConfigType.CANNO_DIR_TOP){
return forwardDirection.up;
}
else if(type==ElementConfigType.CANNO_DIR_BOTTOM){
return forwardDirection.down;
}
else if(type==ElementConfigType.CANNO_DIR_LEFT){
return forwardDirection.left;
}
else if(type==ElementConfigType.CANNO_DIR_RIGHT){
return forwardDirection.right;
}else{
console.error("未定义跑跳");
}
}
} }
\ No newline at end of file
import { ChapterData } from "../interface/ChapterData"; import { ChapterData } from "../interface/ChapterData";
import { PassType } from "../enum/PassType";
import { ElementType } from "../enum/ElementType";
//551-575 //551-575
export const Chapters22: ChapterData[] = [ export const Chapters22: ChapterData[] = [
//551
{
baseElementTypes: [0, 1, 2, 3, 4],
bubbleProbability: 0,
stepCount: 35,
passTarget: {
type: 1,
elements: [{
type: 1,
count: 155
}, {
type: 34,
count: 15
}]
},
starScores: [15000, 20000, 25000],
map: {
lattices: [
1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 1, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 1, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 4, 1, 0, 1, 0, 1, 4, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 1, 1, 1, 1, 1, 0, 1
],
connectedLats: [],
conveyor: [
[9, 63],
[17, 71]
],
conveyorConnectedLats: [
[63, 9],
[71, 17]
],
elements: [
1, 19, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 2, 1, 1, 20, 1,
1, 1, 1, 2, 2, 2, 1, 1, 1,
1, 6, 1, 1, 1, 1, 1, 6, 1,
1, 1, 1, 1, 16, 1, 1, 1, 1,
1, 1, 1, 1, 16, 1, 1, 1, 1,
1, 22, 1, 1, 16, 1, 1, 1, 1,
5, 6, 1, 1, 2, 1, 1, 6, 5,
1, 1, 1, 2, 2, 2, 1, 1, 1
],
baseElements: [
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0
],
recycles: [],
generateLats: [{
index: 0,
type: null
}, {
index: 1,
type: null
}, {
index: 2,
type: null
}, {
index: 3,
type: null
}, {
index: 4,
type: null
}, {
index: 5,
type: null
}, {
index: 6,
type: null
}, {
index: 7,
type: null
}, {
index: 8,
type: null
}]
}
}
] ]
...@@ -69,7 +69,7 @@ chapters.forEach((chapter,index) => { ...@@ -69,7 +69,7 @@ chapters.forEach((chapter,index) => {
*/ */
export function getChapterData(index: number): ChapterData { export function getChapterData(index: number): ChapterData {
//没有数据就返回第一关数据 //没有数据就返回第一关数据
return chapters[index] || chapters[1]; return chapters[index] || chapters[551];
} }
var a = { var a = {
......
...@@ -13,7 +13,7 @@ import { createCandyDis3Ani } from "../anis/candy/createCandyDis3Ani"; ...@@ -13,7 +13,7 @@ import { createCandyDis3Ani } from "../anis/candy/createCandyDis3Ani";
import { createCandyDis4Ani } from "../anis/candy/createCandyDis4Ani"; import { createCandyDis4Ani } from "../anis/candy/createCandyDis4Ani";
import { createCandySubAni } from "../anis/candy/createCandySubAni"; import { createCandySubAni } from "../anis/candy/createCandySubAni";
import { EffectType } from "../enum/EffectType"; import { EffectType } from "../enum/EffectType";
import { CandyBaseElementType, ElementType, FiveBaseElementTypes, transElementRes } from "../enum/ElementType"; import { CandyBaseElementType, ElementType, FiveBaseElementTypes, transElementRes, forwardDirection } from "../enum/ElementType";
import { RecoverName } from "../enum/RecoverName"; import { RecoverName } from "../enum/RecoverName";
import { stateDatas, StateType } from "../enum/StateType"; import { stateDatas, StateType } from "../enum/StateType";
import { ExplosiveBgAni } from "../periodAni/ExplosiveBgAni"; import { ExplosiveBgAni } from "../periodAni/ExplosiveBgAni";
...@@ -35,11 +35,18 @@ import { Fish } from "./Fish"; ...@@ -35,11 +35,18 @@ import { Fish } from "./Fish";
* 坐标原点需要坐落在格子的中心点 * 坐标原点需要坐落在格子的中心点
* 最好到时按,底图,动效,气泡,笼子,毛球,进行分层,如果多个状态要共存时,必须分层,到时气泡的动画,要写再自己的层里 * 最好到时按,底图,动效,气泡,笼子,毛球,进行分层,如果多个状态要共存时,必须分层,到时气泡的动画,要写再自己的层里
*/ */
//加载器
let svgaParser;
export class Element extends eui.Component { export class Element extends eui.Component {
private _fishState = 0; private _fishState = 0;
private _isNeb: boolean;//是否 private _isNeb: boolean;//是否
get isNeb() { return this._isNeb } get isNeb() { return this._isNeb }
fishCanEliFlag: boolean; fishCanEliFlag: boolean;
cannoMoveClip:any;
cannoStat:number[] = [1,61,121,181,241,361];
//尝试设置碰撞状态,如果之前被特效集中,那么可以设置碰撞状态。碰撞状态之后可以准备消除。 //尝试设置碰撞状态,如果之前被特效集中,那么可以设置碰撞状态。碰撞状态之后可以准备消除。
setFishNebFlag() { setFishNebFlag() {
if (this._fishState > 0) { if (this._fishState > 0) {
...@@ -188,6 +195,50 @@ export class Element extends eui.Component { ...@@ -188,6 +195,50 @@ export class Element extends eui.Component {
this.addCandyStandbyAni(); this.addCandyStandbyAni();
} }
_cannoDir:forwardDirection;
private _cannoStat:number = 0;
resetToCannoView(cannodir:forwardDirection){
this._cannoDir = cannodir;
this.resetCannoStat();
// this.showImage.x = 0;
// this.showImage.y = 0;
// this.showImage.anchorOffsetX = this.showImage.width / 2;
// this.showImage.anchorOffsetY = this.showImage.height / 2;
var roaidx:number;
if(cannodir==forwardDirection.left){
roaidx = 0;
}else if(cannodir==forwardDirection.up){
roaidx = 1;
}else if(cannodir==forwardDirection.right){
roaidx = 2;
}else if(cannodir==forwardDirection.down){
roaidx = 3;
}
this.cannobox.rotation = [-90,0,90,180][roaidx];
}
changeShowCannoStat(){
this.cannolab.text = this._cannoStat+"";
this.cannoMoveClip&&this.cannoMoveClip.gotoAndPlay(this.cannoStat[this._cannoStat]);
}
checkCannoStat(){
if(this._cannoStat==3){
return true;
}
return false;
}
resetCannoStat(){
this._cannoStat = 0;
this.changeShowCannoStat();
}
addOneCannoStat(){
this._cannoStat += 1;
if(this._cannoStat>3){
this._cannoStat = 3;
}
this.changeShowCannoStat();
}
playCandyDieAni() { playCandyDieAni() {
var p = Tool.getPositionByIndex(this.index); var p = Tool.getPositionByIndex(this.index);
createCandyDieBgAni(p[0], p[1], this.stage); createCandyDieBgAni(p[0], p[1], this.stage);
...@@ -255,6 +306,9 @@ export class Element extends eui.Component { ...@@ -255,6 +306,9 @@ export class Element extends eui.Component {
* 显示的图片,直接改source,"ele"+type * 显示的图片,直接改source,"ele"+type
*/ */
protected showImage: eui.Image; protected showImage: eui.Image;
protected cannobox:eui.Group;
cannoboxwid:number = 116;
cannoboxhei:number = 116;
temEffectType: EffectType = null; temEffectType: EffectType = null;
/** /**
...@@ -358,6 +412,8 @@ export class Element extends eui.Component { ...@@ -358,6 +412,8 @@ export class Element extends eui.Component {
*/ */
private states: State[] = [] private states: State[] = []
//模拟炮台发射情况
protected cannolab: eui.Label;
/** /**
* *
* @param type 只应该是基础元素和特殊元素 * @param type 只应该是基础元素和特殊元素
...@@ -366,8 +422,28 @@ export class Element extends eui.Component { ...@@ -366,8 +422,28 @@ export class Element extends eui.Component {
super(); super();
this._type = type; this._type = type;
this.showImage = new eui.Image(); this.showImage = new eui.Image();
this.changeSource("ele" + this.type + "_png"); this.changeSource("ele" + this.type + "_png");
this.addChild(this.showImage); this.addChild(this.showImage);
this.cannobox = new eui.Group();
this.cannobox.width = this.cannoboxwid;
this.cannobox.height = this.cannoboxhei;
this.cannobox.anchorOffsetX = this.cannoboxwid/2;
this.cannobox.anchorOffsetY = this.cannoboxhei/2;
this.addChild(this.cannobox);
this.cannolab = new eui.Label();
this.cannolab.size = 30;
this.cannolab.textColor = 0xff0000;
this.cannolab.x = 0;
this.cannolab.y = 0;
this.addChild(this.cannolab);
this.cannobox.visible = this.cannolab.visible = type == ElementType.CANNO;
this.showImage.visible = type != ElementType.CANNO;
this.cannolab.visible = false;
//鸡蛋 //鸡蛋
if (type == ElementType.CHICKEN_EGG) { if (type == ElementType.CHICKEN_EGG) {
this.chickenEgg = Pool.takeOut(RecoverName.CHICKEN_EGG) this.chickenEgg = Pool.takeOut(RecoverName.CHICKEN_EGG)
...@@ -389,6 +465,61 @@ export class Element extends eui.Component { ...@@ -389,6 +465,61 @@ export class Element extends eui.Component {
} }
this.addChild(this.festivalEle) this.addChild(this.festivalEle)
} }
this.createCanno();
}
//添加炮台
createCanno(){
if(this.type==ElementType.CANNO){
if(this.cannoMoveClip){
return;
}
if (!svgaParser) svgaParser = new window["SVGA"].Parser();
svgaParser.load(resPath + 'resource/assets/svgas/canno.svga', (videoItem) => {
this.cannoMoveClip = new window["SVGA"].EgretMovieClip(videoItem);
this.cannoMoveClip.lockStep = true;
var mvwidth = 102;
var mvheight = 116;
this.cannoMoveClip.x = (this.cannoboxwid-mvwidth)/2;
this.cannoMoveClip.y = 0;
this.cannobox.addChild(this.cannoMoveClip);
console.log("paotai",this.cannoMoveClip);
//1空,121,181,241,361
// this.cannoMoveClip.gotoAndStop(1);
// this.cannoMoveClip.gotoAndStop(120);
// this.cannoMoveClip.gotoAndStop(120);
// this.cannoMoveClip.gotoAndStop(180);
this.cannoMoveClip.addEventListener(egret.Event.ENTER_FRAME,this.listenCn,this);
this.cannoMoveClip.addEventListener(egret.Event.COMPLETE,this.playComplete,this);
});
}
}
// curframeidx:number = 1;
// testChangeMoveClip(num:number){
// this.curframeidx += num;
// this.cannoMoveClip.gotoAndStop(this.curframeidx);
// }
/**
* 炮台充能
* @param source
*/
listenCn(){
var statend = this.cannoStat[this._cannoStat+1];
if(this.cannoMoveClip.currentFrame>=statend){
// console.log("炮台阶段动画播放完毕",this.cannoMoveClip.currentFrame);
this.cannoMoveClip.stop();
}
}
/**
* 炮台动画播放一次完毕
*/
playComplete(){
this.cannoMoveClip.stop();
} }
/** /**
...@@ -398,7 +529,7 @@ export class Element extends eui.Component { ...@@ -398,7 +529,7 @@ export class Element extends eui.Component {
changeSource(source: string) { changeSource(source: string) {
// this.showImage.source = source; // this.showImage.source = source;
var texture: egret.Texture = RES.getRes(source); var texture: egret.Texture = RES.getRes(source);
if (!texture) { return; } if (!texture) { return console.error("未找到纹理",source,this.type); }
this.showImage.texture = texture this.showImage.texture = texture
this.showImage.x = -texture.textureWidth / 2; this.showImage.x = -texture.textureWidth / 2;
...@@ -429,6 +560,10 @@ export class Element extends eui.Component { ...@@ -429,6 +560,10 @@ export class Element extends eui.Component {
egret.Tween.removeTweens(this.showImage); egret.Tween.removeTweens(this.showImage);
//类型重置,showImage修改 //类型重置,showImage修改
this._type = type; this._type = type;
this.cannolab.visible = type == ElementType.CANNO;
this.showImage.visible = type != ElementType.CANNO;
this.changeSource("ele" + type + "_png"); this.changeSource("ele" + type + "_png");
//特效重置 //特效重置
this.effectType = null; this.effectType = null;
......
...@@ -67,4 +67,11 @@ export enum ElementConfigType { ...@@ -67,4 +67,11 @@ export enum ElementConfigType {
FISH = 15, FISH = 15,
HONEY_POT = 16, HONEY_POT = 16,
FLOWER = 17, FLOWER = 17,
/** 大炮 */
CANNO_DIR_TOP = 18,
CANNO_DIR_BOTTOM = 19,
CANNO_DIR_LEFT = 20,
CANNO_DIR_RIGHT = 21,
/** 大炮石头 */
CANNO_BLOCK = 22,
} }
\ No newline at end of file
...@@ -30,34 +30,36 @@ export enum ElementType { ...@@ -30,34 +30,36 @@ export enum ElementType {
FESTIVALELE_BIG, //节日元素大中间一个13 FESTIVALELE_BIG, //节日元素大中间一个13
FESTIVALELE_SMALL, //节日元素飞溅的小元素14 FESTIVALELE_SMALL, //节日元素飞溅的小元素14
CANDY_RABBIT,//兔子 CANDY_RABBIT,//兔子15
CANDY_CHICKEN,//鸟 CANDY_CHICKEN,//鸟16
CANDY_CATTLE,//牛 CANDY_CATTLE,//牛17
CANDY_LION,//狮子 CANDY_LION,//狮子18
CANDY_PIG,//猪 CANDY_PIG,//猪19
MONSTER_JELLY1, MONSTER_JELLY1,//20
JELLY_MONSTER, JELLY_MONSTER,//21
FIREWORKS_RABBIT,//烟花目标元素,下同 FIREWORKS_RABBIT,//烟花目标元素,下同22
FIREWORKS_CHICKEN, FIREWORKS_CHICKEN,//23
FIREWORKS_CATTLE, FIREWORKS_CATTLE,//24
FIREWORKS_LION, FIREWORKS_LION,//25
FIREWORKS_PIG, FIREWORKS_PIG,//26
FIREWORKS_SHOOTER,//烟花 FIREWORKS_SHOOTER,//烟花27
MONSTER_RABBIT,//独眼怪 MONSTER_RABBIT,//独眼怪28
MONSTER_CHICKEN, MONSTER_CHICKEN,//29
MONSTER_CATTLE, MONSTER_CATTLE,//30
MONSTER_LION, MONSTER_LION,//31
MONSTER_PIG, MONSTER_PIG,//32
FISH,//气鼓鱼 FISH,//气鼓鱼33
HONEY,// 蜂蜜 HONEY,// 蜂蜜34
HONEY_POT,//蜂蜜罐 HONEY_POT,//蜂蜜罐35
SAND, SAND,//36
FLOWER, FLOWER,//37
CANNO,//38
CANNO_BLOCK,//39
} }
export const isMonsterEle = (t: ElementType) => { export const isMonsterEle = (t: ElementType) => {
...@@ -88,6 +90,12 @@ export enum MonsterBaseElementType { ...@@ -88,6 +90,12 @@ export enum MonsterBaseElementType {
} }
export enum forwardDirection{
left="left",
up="up",
right="right",
down="down",
}
export const fireworksTypeMap: any = {} export const fireworksTypeMap: any = {}
fireworksTypeMap[ElementType.RABBIT] = ElementType.FIREWORKS_RABBIT; fireworksTypeMap[ElementType.RABBIT] = ElementType.FIREWORKS_RABBIT;
fireworksTypeMap[ElementType.CHICKEN] = ElementType.FIREWORKS_CHICKEN; fireworksTypeMap[ElementType.CHICKEN] = ElementType.FIREWORKS_CHICKEN;
...@@ -151,6 +159,13 @@ export const monsterElementMap = { ...@@ -151,6 +159,13 @@ export const monsterElementMap = {
"5": ElementType.PIG, "5": ElementType.PIG,
} }
export const connoDirection = {
"1":forwardDirection.left,
"2":forwardDirection.up,
"3":forwardDirection.right,
"4":forwardDirection.down,
}
export const elementMonsterResMap = { export const elementMonsterResMap = {
"0": ElementType.MONSTER_RABBIT, "0": ElementType.MONSTER_RABBIT,
"1": ElementType.MONSTER_CHICKEN, "1": ElementType.MONSTER_CHICKEN,
......
import { GenerateLatData } from "./GenerateLatData"; import { GenerateLatData } from "./GenerateLatData";
import { LatticeType } from "../enum/LatticeType"; import { LatticeType } from "../enum/LatticeType";
import { ElementConfigType } from "../enum/ElementConfigType";
/** /**
* 地图数据接口 * 地图数据接口
* 包括地图格子,和地图上的特殊元素,生成口,联通口 * 包括地图格子,和地图上的特殊元素,生成口,联通口
*/ */
export interface MapData { export interface MapData {
/**
* 传送带
*/
conveyor?:number[][]; conveyor?:number[][];
conveyorConnectedLats?:number[][]; conveyorConnectedLats?:number[][];
/** /**
...@@ -42,7 +46,7 @@ export interface MapData { ...@@ -42,7 +46,7 @@ export interface MapData {
* 9褐色毛球 特效消除,分裂 * 9褐色毛球 特效消除,分裂
* 10黑色毛球 两次消除,一次眩晕, * 10黑色毛球 两次消除,一次眩晕,
*/ */
elements?: number[]; elements?: ElementConfigType[];
/** /**
* 9*9的格子,不修改写null或[] * 9*9的格子,不修改写null或[]
* 十位是基础元素类型,对应数字减1就是基础元素类型 * 十位是基础元素类型,对应数字减1就是基础元素类型
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment