From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../fbs/magic/resonance/FlexibleResonance.class | Bin 0 -> 2739 bytes .../fbs/magic/resonance/FlexibleResonance.java | 83 +++++++++++++++++++++ .../fbs/magic/resonance/ShapedResonance.class | Bin 0 -> 2392 bytes .../fbs/magic/resonance/ShapedResonance.java | 68 +++++++++++++++++ 4 files changed, 151 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/magic/resonance/FlexibleResonance.class create mode 100644 src/main/java/jp/plusplus/fbs/magic/resonance/FlexibleResonance.java create mode 100644 src/main/java/jp/plusplus/fbs/magic/resonance/ShapedResonance.class create mode 100644 src/main/java/jp/plusplus/fbs/magic/resonance/ShapedResonance.java (limited to 'src/main/java/jp/plusplus/fbs/magic/resonance') diff --git a/src/main/java/jp/plusplus/fbs/magic/resonance/FlexibleResonance.class b/src/main/java/jp/plusplus/fbs/magic/resonance/FlexibleResonance.class new file mode 100644 index 0000000..f7045b1 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/magic/resonance/FlexibleResonance.class differ diff --git a/src/main/java/jp/plusplus/fbs/magic/resonance/FlexibleResonance.java b/src/main/java/jp/plusplus/fbs/magic/resonance/FlexibleResonance.java new file mode 100644 index 0000000..65b89b1 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/resonance/FlexibleResonance.java @@ -0,0 +1,83 @@ +package jp.plusplus.fbs.magic.resonance; + +import jp.plusplus.fbs.Registry; +import jp.plusplus.fbs.api.IMagicEnchant; +import jp.plusplus.fbs.api.IResonance; +import net.minecraft.util.StatCollector; + +import java.util.LinkedList; + +/** + * Created by pluslus_F on 2015/06/23. + * 特定の魔導書+付与魔法1個以上による共鳴 + * 付与魔法が複数ある場合は全てに対して動作するように魔法は実装してね + */ +public class FlexibleResonance implements IResonance { + public String type; //ベースとなる魔法のタイプ + + public LinkedList enchants=new LinkedList(); + public Registry.MagicData base; + + public FlexibleResonance(String type){ + this.type=type; + } + + + @Override + public IResonance copy() { + return new FlexibleResonance(type); + } + + @Override + public boolean isMatch(Registry.MagicData[] magics) { + boolean foundBase=false; + boolean foundEnchant=false; + for(Registry.MagicData md : magics){ + + //ベースとなる魔法の判定。ベースが2つ以上あればfalse + if(md.title.equals(type)){ + if(foundBase) return false; + foundBase=true; + } + + //付与魔法ならフラグを立てる + if(IMagicEnchant.class.isAssignableFrom(md.magic)){ + foundEnchant=true; + } + } + + return foundBase && foundEnchant; + } + + @Override + public String getResonanceMagicName() { + return "resonance."+type; + } + + @Override + public String getDisplayMagicName(String[] titles){ + String sss=StatCollector.translateToLocal("magic.suffix."+type); + String ppp=null; + + for(int i=0;i list=new LinkedList(); + for(int i=0;i it=list.iterator(); + while(it.hasNext()){ + String t=it.next(); + if(t.equals(bd.title)){ + find=true; + it.remove(); + break; + } + } + + if(!find) return false; + } + + return list.isEmpty(); + } + + @Override + public String getResonanceMagicName() { + return title; + } + @Override + public String getDisplayMagicName(String[] titles){ + return Registry.GetLocalizedBookTitle(title); + } + + @Override + public int priority() { + return 100; + } +} -- cgit v1.2.3