123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- import { Component, director, find, LabelComponent, loader, Node, SpriteComponent, SpriteFrame, systemEvent, SystemEventType, Touch, Vec2, Vec3, _decorator } from 'cc';
- import { NoticeManager } from '../../../engines/notices/NoticeManager';
- import NodeUtils from '../../../engines/utils/NodeUtils';
- import StringUtils from '../../../engines/utils/StringUtils';
- import GameConfigManager from '../../models/GameConfigManager';
- import { GameModel } from '../../models/GameModel';
- import { WeaponCell } from '../../models/weapons/WeaponCell';
- const { ccclass, property } = _decorator;
- @ccclass('WeaponCellScript')
- export class WeaponCellScript extends Component {
-
- @property({
- type:Node
- })
- useing:Node=null;
- @property({
- type:LabelComponent
- })
- levelLabel:LabelComponent=null;
- @property({
- type:SpriteComponent
- })
- iconLoader:SpriteComponent=null;
- @property({
- type:SpriteComponent
- })
- goldIconLoader:SpriteComponent=null;
-
- @property({
- type:Node
- })
- imgState1:Node=null;
- @property({
- type:Node
- })
- imgState2:Node=null;
-
- @property({
- type:Node
- })
- imgState3:Node=null;
- @property({
- type:Node
- })
- imgState4:Node=null;
- @property({
- type:Node
- })
- labelGroup:Node=null;
- @property({
- type:LabelComponent
- })
- earningsLabel:LabelComponent=null;
- /**
- * 武器槽数据
- */
- public weaponCell:WeaponCell;
- /**
- * 当前武器的配置
- */
- private weaponConfig:any;
- /**
- * 状态 0 空槽状态 1有枪常态 2 可合成
- */
- private state:number=0;
- start () {
- this.AddEvent();
- }
- private AddEvent():void{
-
- }
- private RemoveEvent():void{
-
- }
- public UpdateWeaponCell(value:WeaponCell):void{
- this.weaponCell=value;
- if(this.weaponCell.weaponId<0){
- this.state=0;
-
- }else{
- this.state=1;
- }
- this.RefreshState();
- //取消选中
- this.ChangeSelected(null);
- if(this.weaponCell.weaponId<0){
- this.earningsLabel.node.active=false;
- this.labelGroup.active=false;
- this.levelLabel.string="";
- this.iconLoader.spriteFrame=null;
- this.goldIconLoader.node.active=false;
- }else{
- this.goldIconLoader.node.active=true;
- this.weaponConfig=GameConfigManager.GetWeaponConfig(this.weaponCell.weaponId);
- //收益
- this.earningsLabel.node.active=true;
- let value:number=GameModel.single.earningsInterval/GameModel.single.earningTime;
- this.earningsLabel.string=StringUtils.numberUtilsEn(this.weaponConfig.earnings*GameModel.single.earningsInterval/1000*value);
- //等级
- this.labelGroup.active=true;
- if(GameConfigManager.WeaponIsMaxLevel(this.weaponCell.weaponId)){
- this.levelLabel.string="Max"
- }else{
- this.levelLabel.string=this.weaponConfig.level.toString();
- }
- loader.loadRes(this.weaponConfig.icon+"/spriteFrame",SpriteFrame,this.loadCompleteHandler.bind(this));
- }
- }
-
- private loadCompleteHandler(err:Error,asset:SpriteFrame):void{
- if(err!=null){
- return;
- }
- this.iconLoader.spriteFrame=asset;
- }
- /**
- * 选中
- */
- public ChangeSelected(value:WeaponCell):void{
- if(this.weaponCell==value){
- this.imgState4.active=true;
- }else{
- this.imgState4.active=false;
- }
- }
- /**
- * 标记为可以
- */
- public Mark(value:boolean):void{
- if(value){
- this.state=2;
- this.RefreshState();
- }else{
- this.UpdateWeaponCell(this.weaponCell);
- }
- }
- private RefreshState():void{
- if(this.state==0){//没有武器
- this.imgState1.active=true;
- this.imgState2.active=this.imgState3.active=this.imgState4.active=this.iconLoader.node.active=false;
- }else if(this.state==1){//有武器
- this.imgState1.active=false;
- this.imgState3.active=false;
- this.imgState2.active=true;
- this.iconLoader.node.active=true;
- }else if(this.state==2)//可合成状态
- {
- this.imgState1.active=false;
- this.imgState3.active=true;
- this.imgState2.active=true;
- }
- if(GameModel.single.currentWeaponCell==this.weaponCell){
- this.useing.active=true;
- }else{
- this.useing.active=false;
- }
- }
- update (deltaTime: number) {
- if(this.weaponCell.weaponId<0){
- return;
- }
- let currentTime:number=director.getCurrentTime();
- let IntervalTime:number=GameModel.single.earningsInterval;
- let IntervalTimeS:number=GameModel.single.earningsInterval/1000;
- let value:number=GameModel.single.earningsInterval/GameModel.single.earningTime;
- if(currentTime-this.weaponCell.lastOutputTime>IntervalTime){
- let startPos:Vec3=new Vec3();
- NodeUtils.GetNodePos(this.node,startPos);
- startPos.x+=this.node.width/2;
- NoticeManager.ShowPromptByPos("金币:+"+StringUtils.numberUtilsEn(this.weaponCell.weaponConfig.earnings* IntervalTimeS*value),startPos);
- this.weaponCell.lastOutputTime=currentTime;
- }
- }
- destroy():void{
- super.destroy();
- this.RemoveEvent();
- }
- }
|