/**
* 联盟神兽、神兽资源枚举
*
* @author TonyCody
* @author 13-9-22
* @time 下午5:35
*/
public enum LegionDogzType { FOOD(1) {
@Override
public int getResource(LegionDogzVO dogz) {
return dogz.getFood();
} @Override
public boolean isCDUp(UserLimitVO ul) {
return cdUp(this, ul);
} @Override
public int getCDTime(UserLimitVO ul) {
return ul.getDogzFoodSec();
} @Override
public void increateCDTime(UserLimitVO ul, int sec) {
ul.setDogzFoodSec(sec);
} @Override
public void increateResource(LegionDogzVO dogz, int value) {
dogz.setFood(dogz.getFood() + value);
}
},
WOOD(2) {
@Override
public int getResource(LegionDogzVO dogz) {
return dogz.getWood();
} @Override
public int getCDTime(UserLimitVO ul) {
return ul.getDogzWoodSec();
} @Override
public boolean isCDUp(UserLimitVO ul) {
return cdUp(this, ul);
} @Override
public void increateCDTime(UserLimitVO ul, int sec) {
ul.setDogzWoodSec(sec);
} @Override
public void increateResource(LegionDogzVO dogz, int value) {
dogz.setWood(dogz.getWood() + value);
}
},
STONE(3) {
@Override
public int getResource(LegionDogzVO dogz) {
return dogz.getStone();
} @Override
public int getCDTime(UserLimitVO ul) {
return ul.getDogzStoneSec();
} @Override
public boolean isCDUp(UserLimitVO ul) {
return cdUp(this, ul);
} @Override
public void increateCDTime(UserLimitVO ul, int sec) {
ul.setDogzStoneSec(sec);
} @Override
public void increateResource(LegionDogzVO dogz, int value) {
dogz.setStone(dogz.getStone() + value);
}
},
BRONZE(4) {
@Override
public int getResource(LegionDogzVO dogz) {
return dogz.getBronze();
} @Override
public int getCDTime(UserLimitVO ul) {
return ul.getDogzBronzeSec();
} @Override
public boolean isCDUp(UserLimitVO ul) {
return cdUp(this, ul);
} @Override
public void increateCDTime(UserLimitVO ul, int sec) {
ul.setDogzBronzeSec(sec);
} @Override
public void increateResource(LegionDogzVO dogz, int value) {
dogz.setBronze(dogz.getBronze() + value);
}
},
COPPERS(5) {
@Override
public int getResource(LegionDogzVO dogz) {
return dogz.getCoppers();
} @Override
public int getCDTime(UserLimitVO ul) {
return ul.getDogzCoppersSec();
} @Override
public boolean isCDUp(UserLimitVO ul) {
return cdUp(this, ul);
} @Override
public void increateCDTime(UserLimitVO ul, int sec) {
ul.setDogzCoppersSec(sec);
} @Override
public void increateResource(LegionDogzVO dogz, int value) {
dogz.setCoppers(dogz.getCoppers() + value);
}
}; public static LegionDogzType getLegionDogzType(int type) {
for (LegionDogzType e : LegionDogzType.values()) {
if (e.getType() == type) {
return e;
}
}
return null;
} /**
* 增加资源
*
* @param dogz
* @param value
*/
public abstract void increateResource(LegionDogzVO dogz, int value); /**
* 获取资源
*
* @param dogz
*/
public abstract int getResource(LegionDogzVO dogz); /**
* 设置 CD 时间
*
* @param ul
* @param sec
*/
public abstract void increateCDTime(UserLimitVO ul, int sec); /**
* 获取 CD 时间
*
* @param ul
*
* @return
*/
public abstract int getCDTime(UserLimitVO ul); /**
* 是否到 CD 时间
*
* @param ul
*
* @return
*/
public abstract boolean isCDUp(UserLimitVO ul); private byte type; protected byte getType() {
return type;
} protected void setType(byte type) {
this.type = type;
} private LegionDogzType(int type) {
this.type = (byte) type;
} protected boolean cdUp(LegionDogzType type, UserLimitVO ul) {
if (type.getCDTime(ul) > 0) {
if (type.getCDTime(ul) - DateUtil.getNowSec() > 0) {
return false;
} else {
type.increateCDTime(ul, 0);
}
}
return true;
}
}

Java 枚举活用的更多相关文章

  1. Java 枚举用法详解

    概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性. 在Java中,被 enum 关键字修饰的类型就是枚举类型.形式如下: enum Color { RED, GR ...

  2. java 枚举类型分析

    最近做android开发,需要用到枚举值,这样可以连续赋值,我按之前c++那样书写,如下所示: public enum ColorSelect { RED_BAGE = 0, GREEN_BAGE, ...

  3. 【转】java枚举类型enum的使用

    原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到 ...

  4. 【转】Java 枚举7常见种用法

    原文网址:http://softbeta.iteye.com/blog/1185573 Java 枚举7常见种用法 博客分类: java java枚举enmu  原创地址:http://blog.li ...

  5. 【转】掌握java枚举类型(enum type)

    原文网址:http://iaiai.iteye.com/blog/1843553 1   背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用 ...

  6. 转载 java枚举类型enum的使用 (原文地址:http://blog.csdn.net/wgw335363240/article/details/6359614)

    java枚举类型enum的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static 类型来定义呢?以前我们都是采 ...

  7. Java枚举类使用

    用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...

  8. Java 枚举类型简介

    目录 Java 枚举示例 Java 枚举构造函数 枚举类型是用于定义常量集合的特殊类型,更确切的说,JAVA枚举类型是一种特殊的 java 类.枚举类型可以包含常量.方法等.在 java5 中添加了 ...

  9. Java 枚举(enum) 详解7种常见的用法

    Java 枚举(enum) 详解7种常见的用法 来源 https://blog.csdn.net/qq_27093465/article/details/52180865 JDK1.5引入了新的类型— ...

随机推荐

  1. Web Service(一) 基础学习

    1 基础的Web Service平台是XML+HTTP. 2 Web Service平台的元素包括:SOAP(Simple Object Access Protocol)简单对象访问协议: UDDI( ...

  2. 初识你---------Swift【下篇】

    Swift中的结构体 Swift的结构体对比OC来说,可以添加初始化方法.可以遵守代理协议等,同时:Swift的Bool类型的变量也是一个结构体,所以只能选择true和false. Swift中声明结 ...

  3. Android笔记——Android中数据的存储方式(二)

    我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效 ...

  4. xscript脚本

    最近看<游戏脚本高级编程>,然后顺便把里面实现的虚拟机,汇编器以及编译器手动用C++重写了一遍,原版书中提供的代码,风格不是很好,而且有几处BUG.我现在开源的代码中已经修复了BUG,而且 ...

  5. Fix Internet Explorer Crashes with SharePoint 2013 Online Presence Indicators

    IE中,只要是鼠标浮动到人名字上面的状态的时候,这个状态是与Lync相连接的,IE就会出现停止工作. 以下是解决方法. Until the other day when I figured this ...

  6. 利用Android多进程机制来分割组件

    android对于内存有一定的限制,很多手机上对内存的限制是完全不同的.我们的应用程序其实就是一个进程,这个进程是完全独立的,这个进程分配的内存是一定的,所以我们经常会遇到OOM的问题.但,你可能不知 ...

  7. 每日vim插件--vim中的文本对象及相关插件

    最近在个人博客上 http://foocoder.com  每天都会介绍一个vim插件,想起来园子也好久没更新了,也来更新一篇. 今天按读者留言的要求,介绍下文本对象.同时还会介绍我在用的几个文本相关 ...

  8. Hibernate的各种关联关系

    1.有多中映射 方法 //用XML配置时 <mapping resource="com/liugch/bean/Student.hbm.xml" /> //用注解配置时 ...

  9. CoreAnimation-05-CABasicAnimation

    概述 简介 CABasicAnimation是抽象类CAPropertyAnimation的子类,可以直接使用 CABasicAnimation又称基本动画,从fromValue到toValue按照指 ...

  10. iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄

    前言:本篇讲解,在前篇iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载的基础上,使用输出流代替文件句柄实现大文件断点续传.    在实际开发中,输入输出流用的比较少,但 ...