Skip to content

Instantly share code, notes, and snippets.

@horace-velmont
Created November 23, 2014 02:30
Show Gist options
  • Save horace-velmont/351a84c7133324efde64 to your computer and use it in GitHub Desktop.
Save horace-velmont/351a84c7133324efde64 to your computer and use it in GitHub Desktop.
Event & Reward
package com.mygdx.event;
import com.mygdx.manager.CurrentManager;
import com.mygdx.unit.Hero;
public class PartyRewardManager extends RewardManager {
private String NpcName = "";
PartyRewardManager() {
NpcName = RewardManager.getInstance().getRewardKey().getKeyOfRewardValue();
}
public String getNpcName() {
return NpcName;
}
public String getRewardMessage() {
NpcName = RewardManager.getInstance().getRewardKey().getKeyOfRewardValue();
return NpcName + "가 파티에 합류했습니다.";
}
public void doReward() {
Hero hero = new Hero(NpcName);
CurrentManager.getInstance().party.addParty(hero);
}
}
package com.mygdx.event;
import com.badlogic.gdx.Gdx;
import com.mygdx.enums.RewardTypeEnum;
import com.mygdx.manager.CurrentManager;
public class Reward {
public void doReward(RewardTypeEnum rewardType, String rewardString) {
switch (rewardType) {
case PARTY:
getPartyReward(rewardString);
break;
case GOLD:
getGoldReward(rewardString);
break;
case EXPERIENCE:
getExperienceReward(rewardString);
break;
case ITEM:
getItemReward(rewardString);
break;
default:
Gdx.app.log("Error", "RewardTypeError");
break;
}
}
private void getPartyReward(String rewardString) {
CurrentManager.getInstance();
}
private void getGoldReward(String rewardString) {
Gdx.app.log("INFO", "Reward : get GOLD!");
}
private void getExperienceReward(String rewardString) {
Gdx.app.log("INFO", "Reward : get Experience!");
}
private void getItemReward(String rewardString) {
Gdx.app.log("INFO", "Reward : get ITEM!");
}
}
package com.mygdx.event;
import com.badlogic.gdx.Gdx;
import com.mygdx.enums.RewardTypeEnum;
public class RewardManager {
private Boolean currentReward;
private RewardKey rewardKey;
private static RewardManager instance;
private String rewardCode;
public RewardManager() {
setRewardCode("none-none");
setCurrentReward(false);
}
public static RewardManager getInstance() {
if (null == instance) {
instance = new RewardManager();
}
return instance;
}
private RewardKey parseRewardCode(String rewardCode) {
if (rewardCode == null) {
Gdx.app.log("error", "rewardCode is null");
}
String[] temp = rewardCode.split("-");
rewardKey = new RewardKey();
rewardKey.setKeyOfRewardType(temp[0]);
rewardKey.setKeyOfRewardValue(temp[1]);
return rewardKey;
}
public RewardKey getRewardKey() {
rewardCode = EventManager.getInstance().getEventKey().getKeyOfReward();
return rewardKey;
}
public RewardKey getRewardKey(String rewardCode) {
parseRewardCode(rewardCode);
return rewardKey;
}
public void setRewardKey(RewardKey rewardKey) {
this.rewardKey = rewardKey;
}
public Boolean isCurrentReward() {
return currentReward;
}
public RewardManager setCurrentReward(Boolean currentReward) {
this.currentReward = currentReward;
return this;
}
public String getRewardCode() {
return rewardCode;
}
public void setRewardCode(String rewardCode) {
parseRewardCode(rewardCode);
this.rewardCode = rewardCode;
}
public void doReward() {
String rewardType = RewardManager.getInstance().rewardKey
.getKeyOfRewardType();
switch (RewardTypeEnum.valueOf(rewardType)) {
case PARTY:
RewardManager rewardManager = new PartyRewardManager();
rewardManager.doReward();
return;
default:
Gdx.app.log("error", "rewardType 주입 오류");
return;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment