2017-08-02 5 views
-2

私はRPGキャラクターシートをJavaで作成していますが、DnDなどと考えています。しかし、私は特別に、私は方法giveToとremoveFromを実装することができる方法でlistOfAffectedSkillsに合格する方法の見当もつかない卓上RPG用のバフとデバフシステム

Modifier modifier = new Modifier(bonusValue, listOfAffectedSkills); 
modifier.giveTo(character); 
modifier.removeFrom(character); 

Modifier[] modifiers = character.getModifiers(); 
Modifier[] skillModifiers = character.getSkill().getModifiers(); 

理想的には、私はこれに似た何かをするクラスを望みますそのキャラクターは同じクラスの多くのスキルを持つことができ、これは少数のキャラクターにしか影響を及ぼさないからです。

答えて

0

Peppleはdownvotingする前にコメントを入れてください...あなたのキャラクタークラスがどのように動作するのか、あなたの修飾子もあなたのスキルもわからないので、ほとんどのダウンボウズがあると思います。

個人的には、私はむしろcharacter.give(modifier)new Modifier(bonusValue,MODIFIER.name_of_skill)を持っています。スキルはダイナミックでなければなりません(チャイルドケアではHashMap<String nameOfSkill,Skill s>)、同じ方法でボーナスモディファイアの内側のマップを持つ必要があります。スキルモディファイアが得られるたびに、同じスキル名のボーナスモディファイアがあるかどうか検索し、そのボーナス修飾子とスキル修正。

0

私はあなたが(あなたも、それはそれをより拡張可能になるだろう「Visitorパターン」をサポートしていますが、今何のためにすることができます

List<ModifiableSkills> 

としてlistOfAffectedSkillsを実装する必要があります推測私たちは以下のようにします)

あなたは次のようになります:

修飾子:

public class Modifier { 
    private int statBonus; 
    private int saveBonus; 
    private int armorBonus; 

    // TODO: constructor, etc 

    public int getStatBonus() { 
    return statBonus; 
    } 

    public int getSaveBonus() { 
    return saveBonus; 
    } 

    public int getArmorBonus() { 
    return armorBonus; 
    } 
} 

ModifiableSkills(インターフェース修飾子を変更する機能をサポートするために):

public interface ModifiableSkills { 
    void modify(Modifier modifier); 
} 

モディファイで自身を変更する機能を実装するサンプルスキル、あなたは他のスキルの種類を持つことができます

public class WarriorSkills implements ModifiableSkills { 
    private int str; 
    private int armor; 
    private int save; 

    void modify(Modifier modifier) { 
     str += modifier.getStatBonus(); 
     armor += modifier.getArmorBonus(); 
     save += modifier.getSaveBonus(); 
    } 
} 

これはあなたが始めなければなりません。

関連する問題