Java 枚举活用

Java 枚举活用

  1 /**
  2  * 联盟神兽、神兽资源枚举
  3  *
  4  * @author TonyCody
  5  * @author 13-9-22
  6  * @time 下午5:35
  7  */
  8 public enum LegionDogzType {
  9 
 10     FOOD(1) {
 11         @Override
 12         public int getResource(LegionDogzVO dogz) {
 13             return dogz.getFood();
 14         }
 15 
 16         @Override
 17         public boolean isCDUp(UserLimitVO ul) {
 18             return cdUp(this, ul);
 19         }
 20 
 21         @Override
 22         public int getCDTime(UserLimitVO ul) {
 23             return ul.getDogzFoodSec();
 24         }
 25 
 26         @Override
 27         public void increateCDTime(UserLimitVO ul, int sec) {
 28             ul.setDogzFoodSec(sec);
 29         }
 30 
 31         @Override
 32         public void increateResource(LegionDogzVO dogz, int value) {
 33             dogz.setFood(dogz.getFood() + value);
 34         }
 35     },
 36     WOOD(2) {
 37         @Override
 38         public int getResource(LegionDogzVO dogz) {
 39             return dogz.getWood();
 40         }
 41 
 42         @Override
 43         public int getCDTime(UserLimitVO ul) {
 44             return ul.getDogzWoodSec();
 45         }
 46 
 47         @Override
 48         public boolean isCDUp(UserLimitVO ul) {
 49             return cdUp(this, ul);
 50         }
 51 
 52         @Override
 53         public void increateCDTime(UserLimitVO ul, int sec) {
 54             ul.setDogzWoodSec(sec);
 55         }
 56 
 57         @Override
 58         public void increateResource(LegionDogzVO dogz, int value) {
 59             dogz.setWood(dogz.getWood() + value);
 60         }
 61     },
 62     STONE(3) {
 63         @Override
 64         public int getResource(LegionDogzVO dogz) {
 65             return dogz.getStone();
 66         }
 67 
 68         @Override
 69         public int getCDTime(UserLimitVO ul) {
 70             return ul.getDogzStoneSec();
 71         }
 72 
 73         @Override
 74         public boolean isCDUp(UserLimitVO ul) {
 75             return cdUp(this, ul);
 76         }
 77 
 78         @Override
 79         public void increateCDTime(UserLimitVO ul, int sec) {
 80             ul.setDogzStoneSec(sec);
 81         }
 82 
 83         @Override
 84         public void increateResource(LegionDogzVO dogz, int value) {
 85             dogz.setStone(dogz.getStone() + value);
 86         }
 87     },
 88     BRONZE(4) {
 89         @Override
 90         public int getResource(LegionDogzVO dogz) {
 91             return dogz.getBronze();
 92         }
 93 
 94         @Override
 95         public int getCDTime(UserLimitVO ul) {
 96             return ul.getDogzBronzeSec();
 97         }
 98 
 99         @Override
100         public boolean isCDUp(UserLimitVO ul) {
101             return cdUp(this, ul);
102         }
103 
104         @Override
105         public void increateCDTime(UserLimitVO ul, int sec) {
106             ul.setDogzBronzeSec(sec);
107         }
108 
109         @Override
110         public void increateResource(LegionDogzVO dogz, int value) {
111             dogz.setBronze(dogz.getBronze() + value);
112         }
113     },
114     COPPERS(5) {
115         @Override
116         public int getResource(LegionDogzVO dogz) {
117             return dogz.getCoppers();
118         }
119 
120         @Override
121         public int getCDTime(UserLimitVO ul) {
122             return ul.getDogzCoppersSec();
123         }
124 
125         @Override
126         public boolean isCDUp(UserLimitVO ul) {
127             return cdUp(this, ul);
128         }
129 
130         @Override
131         public void increateCDTime(UserLimitVO ul, int sec) {
132             ul.setDogzCoppersSec(sec);
133         }
134 
135         @Override
136         public void increateResource(LegionDogzVO dogz, int value) {
137             dogz.setCoppers(dogz.getCoppers() + value);
138         }
139     };
140 
141     public static LegionDogzType getLegionDogzType(int type) {
142         for (LegionDogzType e : LegionDogzType.values()) {
143             if (e.getType() == type) {
144                 return e;
145             }
146         }
147         return null;
148     }
149 
150     /**
151      * 增加资源
152      *
153      * @param dogz
154      * @param value
155      */
156     public abstract void increateResource(LegionDogzVO dogz, int value);
157 
158     /**
159      * 获取资源
160      *
161      * @param dogz
162      */
163     public abstract int getResource(LegionDogzVO dogz);
164 
165     /**
166      * 设置 CD 时间
167      *
168      * @param ul
169      * @param sec
170      */
171     public abstract void increateCDTime(UserLimitVO ul, int sec);
172 
173     /**
174      * 获取 CD 时间
175      *
176      * @param ul
177      *
178      * @return
179      */
180     public abstract int getCDTime(UserLimitVO ul);
181 
182     /**
183      * 是否到 CD 时间
184      *
185      * @param ul
186      *
187      * @return
188      */
189     public abstract boolean isCDUp(UserLimitVO ul);
190 
191     private byte type;
192 
193     protected byte getType() {
194         return type;
195     }
196 
197     protected void setType(byte type) {
198         this.type = type;
199     }
200 
201     private LegionDogzType(int type) {
202         this.type = (byte) type;
203     }
204 
205     protected boolean cdUp(LegionDogzType type, UserLimitVO ul) {
206         if (type.getCDTime(ul) > 0) {
207             if (type.getCDTime(ul) - DateUtil.getNowSec() > 0) {
208                 return false;
209             } else {
210                 type.increateCDTime(ul, 0);
211             }
212         }
213         return true;
214     }
215 }

 

转载于:https://www.cnblogs.com/tonycody/p/3334013.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110009.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 如何在Mac中打开pdm文件「建议收藏」

    在windows系统我们打开pdm文件同样都是使用powerdesigner,功能齐全强大,但是powerdesigner没有Mac版本。网上有个parsePDM下下来了也根本不能使用。下面我给上一个我目前在使用的工具,简单易用。使用起来十分方便点击这里下载文件

    2022年4月12日
  • idea 2022 mac 激活码(JetBrains全家桶)[通俗易懂]

    (idea 2022 mac 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月31日
  • 细数人们对安卓的误解

    误解一:安卓是iOS的后辈不知不觉,安卓已经成为了世界上最流行的移动智能系统,就市场占有率来看,安卓甚至要高于引领了智能机和平板电脑革命的iOS。安卓的红火深远地影响了IT行业,全球最大的社交网络F

    2021年12月27日
  • tortoisesvn如何下载(Snes汉化教程)

    (本操作是已经下载TortoiseSVN后,通过官网下载汉化包进行的操作)1、首先进入到官网https://tortoisesvn.net/downloads.html2、进入到官网首页,点击Translations3、进入到翻译页面,点击download4、进入到下载页面,选择适合自己版本的安装包,我下载的是1.14.1-64-bit;5、找到自己下载的汉化包,点击下一步,依次进行即可,便会自动同步6、右键打开TortoiseSVN,选择Sett…

    2022年4月17日
  • seo网站排名策划_网站SEO诊断优化方案

    seo网站排名策划_网站SEO诊断优化方案SEO新人在刚接手网站优化项目的时候,往往无从下手,因为了解的太少,经验也不足,有时候会避重就轻,今天SEO禅要来拉个清单,列出大部分在SEO优化过程中需要注意的点,在进行搜索引擎优化的时候有方案可以参考,就像一张待完成清单,可以参考参考,检查下有什么项目做了,有什么项目没做。站内优化SEO站内优化TDK标签检查每个页面是否有独立的TDK标签,每个页面的标题和描述尽量不要重复,尤其是需要排名的界面,描述最好的手写,把关键词安排进去。关键词优化首页核心关键词3-5个,其他长尾关键词

    2022年9月2日
  • js获取现在时间_js中如何动态显示日期时间

    js获取现在时间_js中如何动态显示日期时间js可以通过Date对象获取当前日期和时间,使用Date()获取系统当前时间,在使用getFullYear()、getMonth()、getDate()、getHours()等方法获取特定格式的时间,在使用innerHTM方法显示。首先我们来了解一下js获取当前时间所需的一些方法:获取当前时间:vard=newDate();//获取系统当前时间获取特定格式的时间:1、获取当前年份getYear()方法:可以获取年份(2位或4位),其返回值是表示当前Date对象的年份字

    2022年9月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号