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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux使用docker_docker bash

    linux使用docker_docker bash安装命令sudoaptinstalldocker.io查看安装sudodocker–version添加用户到docker组sudogpasswd-a$USERdocker重启dockersudosystemctlrestartdocker查看状态sudodockerps-a查看镜像sudodockerimages创建容器dockerrun-it–nameubuntu1ubuntudockerrun-…

    2022年9月17日
    1
  • sql中declare的用法_sql局部变量

    sql中declare的用法_sql局部变量换工作了,以后主要和SqlServer打交道了,仿佛回到了大学,不知道学校的饭还是那么好吃又便宜吗?北京的饭好贵;不知道门口哪家板面的生意是不是还是那么红火,好想再去吃一碗。。。咳咳,不多说了,直接进入主题declare这个类型,其实可以理解为Java里面的public类型变量,全局有效,当然非要较真的话,我觉得归到protected类也可以(不理解的话不要看后半段,只是为了严谨)Java修饰符 public:对所有类可见。使用对象:类、接口、变量、方法 protect..

    2022年8月20日
    5
  • 微信公众号网页开发,获取 调用微信公众号接口后 的返回值,PHP

    微信公众号网页开发,获取 调用微信公众号接口后 的返回值,PHP在微信公众号网页开发中,我们通常会用到许多微信团队提供的接口,我们在运行单个php调用接口的时候,返回值直接出现在php的echo中,我们根据这个值来判断代码正确与否,但是当php文件和微信公众号连接起来的时候,我们无法获取返回值,下面就展示一下如何将返回值的信息写入txt文件中。测试代码段<?php$myfile=fopen("fanhui.txt","a+")ordie("U…

    2022年6月5日
    121
  • 二进制与十进制的转换教案「建议收藏」

    二进制与十进制的转换教案「建议收藏」【教学目的与要求】1、熟悉数制的概念;2、掌握位权表示法; 3、熟练掌握二进制与十进制之间的转换方法。【课时安排】1课时。【教学重点与难点】1、难点:位权表示法 十进制转化为二进制   2、重点:二、十进制间相互转换【教学过程】(以下教师的语言、活动简称“师”,学生的活动简称“生”)新课导入师:猜一猜:简单的数字:10,这是几?     我认为这是2…

    2022年10月17日
    0
  • python编辑时怎样换行_python怎么换行输入[通俗易懂]

    python中可以进行换行输入,具体可以参考本经验。工具/原料deepinlinuxpython3.5方法一、使用“\”进行换行输入1在python中,Python用反斜线(“\”)作为续行符(换行符),这里以python3.5为例。首先运行终端或者cmd命令行(windows下)。执行python3.5的命令。2然后输入如下图所示的内容。本身就是输出helloworld!的字符串。但是…

    2022年4月15日
    2.3K
  • STM32+MFRC522完成IC卡号读取、密码修改、数据读写

    一、环境介绍MCU:STM32F103ZET6开发软件:Keil5非接触式读写卡模块:MFRC522完整工程源码下载:https://download.csdn.net/download/xiaolong1126626497/18905806二、功能介绍使用MFRC522模块完成对IC卡卡号读取、卡类型区分、IC卡扇区密码修改、扇区数据读写等功能;底层采用SPI模拟时序,可以很方便的移植到其他设备,完成项目开发。现在很多嵌入式方向的毕业设计经常使用到该模块,比如:校园…

    2022年4月8日
    61

发表回复

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

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