package org.skfiy.typhon.spi.hero; import java.util.Calendar; import java.util.List; import javax.inject.Inject; import org.skfiy.typhon.Typhons; import org.skfiy.typhon.domain.Normal; import org.skfiy.typhon.domain.Player; import org.skfiy.typhon.domain.PveProgress; import org.skfiy.typhon.domain.item.RecordObject; import org.skfiy.typhon.spi.Event; import org.skfiy.typhon.spi.activity.ActivityProvider; import org.skfiy.typhon.spi.society.Society; import org.skfiy.typhon.spi.society.SocietyProvider; public class ResetLotteryEvent implements Event<Player> { @Inject private SocietyProvider societyProvider; @Inject private ActivityProvider activityProvider; @Override public void invoke(Player player) { Normal normal = player.getNormal(); normal.setFreeCount(Typhons.getInteger("typhon.spi.hero.copperLottery.freeCount")); // 重置管卡挑战次数 reset(normal.getHdpveProgresses()); reset(normal.getHpveProgresses()); reset(normal.getSpveProgresses()); // 重置每日任务 normal.getDailyTask().cleanProperties(); // 重置摇钱树次数 normal.setCashCowCounts(0); // 签到 normal.setNowSign(normal.getSigns().size() + 1); // 援军赠送体力 for (int i = normal.getAidReceiveCounts().size() - 1; i >= 0; i--) { RecordObject object = normal.getAidReceiveCounts().get(i); if (object.getState() == 1) { normal.removeAidAccessVigor(object); } } // 玩家每天可以龙脉次数 normal.setDargonVipCount(0); // 如果年份不同签到重置 Calendar calendar = Calendar.getInstance(); Calendar calendarSign = Calendar.getInstance(); calendarSign.setTimeInMillis(player.getRole().getLastLoginedTime()); if ((calendar.get(Calendar.YEAR) != calendarSign.get(Calendar.YEAR) || calendar .get(Calendar.MONTH) != calendarSign.get(Calendar.MONTH))) { normal.setNowSign(1); normal.getSigns().clear(); normal.setSigned(0); } Society society = societyProvider.findBySid(player.getRole().getRid()); if (society != null) { society.getMessages().clear(); } normal.setLuckeyDrawFree(false); if (calendar.get(Calendar.DAY_OF_WEEK) == 2) { if (Typhons.getBoolean("typhon.spi.first.vipRechargingFlags")) { normal.getVipRechargingFlags().clear(); } normal.getVipReceive().clear(); normal.setVipFreeGift(-1); } // 活动期间内每天充值领取奖励 normal.getVipReceiveDay().clear(); if (!(player.getInvisible().getVipDate() == calendar.get(Calendar.DAY_OF_YEAR))) { normal.setVipSavingsDay(0); player.getInvisible().setVipDate(calendar.get(Calendar.DAY_OF_YEAR)); } normal.setSocietyRefreshCounts(0); Calendar calendarEnd = Calendar.getInstance(); calendarEnd.setTimeInMillis(activityProvider.getVipActivityEnd()); if (calendar.get(Calendar.DAY_OF_YEAR) >= calendarEnd.get(Calendar.DAY_OF_YEAR) || (player.getInvisible().getVipActivityStarTime() != activityProvider .getVipActivityStar() && player.getInvisible().getVipActivityStarTime() != 0)) { normal.setVipSavingsActivity(0); normal.getVipReceiveActivity().clear(); } // 印花当天购买个数 normal.setStampBuyLimit(0); } private void reset(List<PveProgress> list) { for (PveProgress pve : list) { pve.setCount(0); pve.setResetCount(0); } } }