diff options
Diffstat (limited to 'src/main/java/jp/plusplus/fbs/mod')
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/mod/ForIR3.class | bin | 0 -> 3772 bytes | |||
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/mod/ForIR3.java | 78 | ||||
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/mod/ForSS2.class | bin | 0 -> 868 bytes | |||
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/mod/ForSS2.java | 21 | ||||
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/mod/ShopAuthor$1.class | bin | 0 -> 1246 bytes | |||
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/mod/ShopAuthor.class | bin | 0 -> 4082 bytes | |||
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/mod/ShopAuthor.java | 86 | ||||
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/mod/ShopWitch.class | bin | 0 -> 2941 bytes | |||
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/mod/ShopWitch.java | 62 | ||||
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/mod/TFKProductItem.class | bin | 0 -> 1313 bytes | |||
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/mod/TFKProductItem.java | 35 |
11 files changed, 282 insertions, 0 deletions
diff --git a/src/main/java/jp/plusplus/fbs/mod/ForIR3.class b/src/main/java/jp/plusplus/fbs/mod/ForIR3.class Binary files differnew file mode 100644 index 0000000..2699651 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/mod/ForIR3.class diff --git a/src/main/java/jp/plusplus/fbs/mod/ForIR3.java b/src/main/java/jp/plusplus/fbs/mod/ForIR3.java new file mode 100644 index 0000000..f3fa647 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/mod/ForIR3.java @@ -0,0 +1,78 @@ +package jp.plusplus.fbs.mod;
+
+import jp.plusplus.fbs.block.BlockCore;
+import jp.plusplus.fbs.block.BlockHerb;
+import jp.plusplus.fbs.item.ItemCore;
+import jp.plusplus.ir2.Recipes;
+import jp.plusplus.ir2.api.IR3RecipeAPI;
+import jp.plusplus.ir2.api.ItemCrystalUnit;
+import net.minecraft.item.ItemStack;
+
+/**
+ * Created by plusplus_F on 2016/02/24.
+ */
+public class ForIR3 {
+ public static void setup(){
+ for(int i=0;i<16;i++) IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.charm, 1, i), 1, 30);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.stoneInactive), 20, 20);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.stoneActive), 20, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.stoneActiveMale), 20, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.stoneActiveFemale), 20, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.membership), 5, 30);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.monocle), 15, 20);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.cloak), 80, 8);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.bookBroken), 1, 30);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.bookWhite), 10, 20);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.bookmark), 3, 30);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(BlockCore.magicCore), 5, 30);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(BlockCore.mirror), 20, 5);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(BlockCore.plank), 1, 30);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(BlockCore.workbench), 3, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(BlockCore.extractingFurnace), 3, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(BlockCore.fillingTable), 3, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.enchantScroll), 3, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staff1_1), 10, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staff1_2), 12, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staff1_3), 14, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staff1_4), 16, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staff1_5), 18, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staff2_1), 14, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staff2_2), 18, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staff2_3), 22, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staff2_4), 26, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staffHead1), 6, 25);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staffHead2), 8, 25);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staffHead3), 10, 25);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staffHead4), 12, 25);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(ItemCore.staffHead5), 14, 25);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(BlockCore.portal2), 5, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(BlockCore.alchemyCauldron), 20, 1);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_MAGIC, new ItemStack(BlockCore.tableAlchemist), 12, 1);
+
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_PLANT, new ItemStack(ItemCore.lavender), 3, 20);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_PLANT, new ItemStack(ItemCore.seedLavender), 3, 20);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_PLANT, new ItemStack(ItemCore.redLily), 3, 20);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_PLANT, new ItemStack(ItemCore.seedRedLily), 3, 20);
+ for(int i=0;i<9;i++) IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_PLANT, new ItemStack(BlockCore.harvestableHerb, 1, i), 20, 20);
+ for(int i=0;i<3;i++) IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_PLANT, new ItemStack(BlockCore.harvestableMushroom, 1, i), 20, 20);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_PLANT, new ItemStack(BlockCore.harvestableGrass), 20, 20);
+
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_TOOL, new ItemStack(ItemCore.shovel), 18, 50);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_TOOL, new ItemStack(ItemCore.foldingFan), 22, 50);
+ IR3RecipeAPI.AddComposition(IR3RecipeAPI.COMPOSITION_TOOL, new ItemStack(ItemCore.luckyDagger), 64, 30);
+ }
+
+ public static boolean isCrystalUnit(ItemStack itemStack){
+ return itemStack.getItem() instanceof ItemCrystalUnit;
+ }
+ public static void repairCrystalUnit(ItemStack itemStack, float percent){
+ ItemCrystalUnit icu=(ItemCrystalUnit)itemStack.getItem();
+ double d=icu.getDamageNBT(itemStack);
+ if(d==0) return;
+ if(percent>1) percent=1;
+ if(percent<0) percent=0;
+
+ d=Math.max(0, d-icu.maxDamageNBT*percent);
+ icu.setDamageNBT(itemStack, d);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/mod/ForSS2.class b/src/main/java/jp/plusplus/fbs/mod/ForSS2.class Binary files differnew file mode 100644 index 0000000..d282b72 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/mod/ForSS2.class diff --git a/src/main/java/jp/plusplus/fbs/mod/ForSS2.java b/src/main/java/jp/plusplus/fbs/mod/ForSS2.java new file mode 100644 index 0000000..00fd076 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/mod/ForSS2.java @@ -0,0 +1,21 @@ +package jp.plusplus.fbs.mod;
+
+import net.minecraft.item.ItemStack;
+import shift.sextiarysector.api.recipe.RecipeAPI;
+
+/**
+ * Created by plusplus_F on 2016/02/28.
+ */
+public class ForSS2 {
+ public static void setup(){
+
+ }
+
+ public static boolean canTimeTrace(ItemStack itemStack){
+ return RecipeAPI.timeMachine.getResult(itemStack)!=null;
+ }
+
+ public static ItemStack getTimeTraced(ItemStack itemStack){
+ return RecipeAPI.timeMachine.getResult(itemStack);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/mod/ShopAuthor$1.class b/src/main/java/jp/plusplus/fbs/mod/ShopAuthor$1.class Binary files differnew file mode 100644 index 0000000..b7e6a57 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/mod/ShopAuthor$1.class diff --git a/src/main/java/jp/plusplus/fbs/mod/ShopAuthor.class b/src/main/java/jp/plusplus/fbs/mod/ShopAuthor.class Binary files differnew file mode 100644 index 0000000..ff1c695 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/mod/ShopAuthor.class diff --git a/src/main/java/jp/plusplus/fbs/mod/ShopAuthor.java b/src/main/java/jp/plusplus/fbs/mod/ShopAuthor.java new file mode 100644 index 0000000..e437d60 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/mod/ShopAuthor.java @@ -0,0 +1,86 @@ +package jp.plusplus.fbs.mod;
+
+import com.ibm.icu.util.Calendar;
+import jp.plusplus.fbs.Registry;
+import jp.plusplus.fbs.exprop.FBSEntityProperties;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import shift.mceconomy2.api.shop.IProduct;
+import shift.mceconomy2.api.shop.IShop;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Random;
+
+/**
+ * Created by plusplus_F on 2016/02/24.
+ */
+public class ShopAuthor implements IShop {
+ int lastDate=-1;
+ ArrayList<IProduct> cachedProductList=null;
+ ArrayList<String> cachedBooks=null;
+
+ @Override
+ public String getShopName(World world, EntityPlayer player) {
+ return "Spell Book Author";
+ }
+
+ @Override
+ public void addProduct(IProduct product) {
+ }
+
+ @Override
+ public ArrayList<IProduct> getProductList(World world, EntityPlayer player) {
+ ArrayList<IProduct> list=new ArrayList<IProduct>();
+ ArrayList<String> books= FBSEntityProperties.get(player).getDecodedBooks();
+ int date=world.getCurrentDate().get(Calendar.DATE);
+ Random rand=new Random(date);
+
+ //日付と解読済み書物が一致する場合、商品のキャッシュを返す
+ if(lastDate==date && cachedBooks!=null && cachedBooks.equals(books) && cachedProductList!=null){
+ return cachedProductList;
+ }
+
+ //ソート用BookDataリスト生成
+ Registry.BookData[] bds=new Registry.BookData[books.size()];
+ for(int i=0;i<bds.length;i++){
+ bds[i]=Registry.GetBook(books.get(i));
+ }
+ Arrays.sort(bds, new Comparator<Registry.BookData>() {
+ @Override
+ public int compare(Registry.BookData o1, Registry.BookData o2) {
+ return o1.lv-o2.lv;
+ }
+ });
+
+ //魔法の矢は必ずリストに入る
+ list.add(new TFKProductItem(Registry.GetBookItemStack("fbs.arrow"), (int)((1800+150*3)*(0.75f+0.5f*rand.nextFloat()))));
+ //解読したこのある書物を全てリストに入れる(値段は日替わり)
+ for(Registry.BookData bd : bds){
+ if(bd.isMagic && !bd.title.equals("fbs.arrow")){
+ list.add(new TFKProductItem(Registry.GetBookItemStack(bd.title), (int)((1800+150*bd.lv)*(0.75f+0.5f*rand.nextFloat()))));
+ }
+ }
+
+ //Lvが10より高い場合、1/4でリストから除外される(日替わり)
+ for(int i=0;i<list.size();){
+ IProduct p=list.get(i);
+ ItemStack itemStack=p.getItem(null, null, null);
+
+ if(Registry.GetBookDataFromItemStack(itemStack).lv>10 && rand.nextInt(4)==0){
+ list.remove(i);
+ continue;
+ }
+ i++;
+ }
+
+ //キャッシュを取っておく
+ lastDate=date;
+ cachedBooks=new ArrayList<String>(books);
+ cachedProductList=list;
+
+ return list;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/mod/ShopWitch.class b/src/main/java/jp/plusplus/fbs/mod/ShopWitch.class Binary files differnew file mode 100644 index 0000000..2cfa22f --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/mod/ShopWitch.class diff --git a/src/main/java/jp/plusplus/fbs/mod/ShopWitch.java b/src/main/java/jp/plusplus/fbs/mod/ShopWitch.java new file mode 100644 index 0000000..c565985 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/mod/ShopWitch.java @@ -0,0 +1,62 @@ +package jp.plusplus.fbs.mod;
+
+import jp.plusplus.fbs.api.FBSEntityPropertiesAPI;
+import jp.plusplus.fbs.block.BlockCore;
+import jp.plusplus.fbs.item.ItemCore;
+import jp.plusplus.fbs.item.ItemFoldingFan;
+import jp.plusplus.fbs.item.ItemShovel;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import shift.mceconomy2.api.shop.IProduct;
+import shift.mceconomy2.api.shop.IShop;
+
+import java.util.ArrayList;
+
+/**
+ * Created by plusplus_F on 2015/11/02.
+ */
+public class ShopWitch implements IShop {
+ @Override
+ public String getShopName(World world, EntityPlayer player) {
+ return "Witch's Shop";
+ }
+
+ @Override
+ public void addProduct(IProduct product) {
+
+ }
+
+ @Override
+ public ArrayList<IProduct> getProductList(World world, EntityPlayer player) {
+ ArrayList<IProduct> list=new ArrayList<IProduct>();
+
+ int mLv= FBSEntityPropertiesAPI.GetMagicLevelRaw(player);
+
+ //レベルに合わせて商品を変える
+ list.add(new TFKProductItem(new ItemStack(ItemCore.alchemyRecipe, 1, 2), 1500));
+ list.add(new TFKProductItem(new ItemStack(ItemCore.alchemyRecipe, 1, 9), 1500));
+ list.add(new TFKProductItem(new ItemStack(ItemCore.alchemyRecipe, 1, 10), 1500));
+ list.add(new TFKProductItem(new ItemStack(ItemCore.alchemyRecipe, 1, 3), 3000));
+ list.add(new TFKProductItem(new ItemStack(ItemCore.alchemyRecipe, 1, 0), 5000));
+ if(mLv>=2) list.add(new TFKProductItem(new ItemStack(ItemCore.alchemyRecipe, 1, 4), 4000));
+ if(mLv>=2) list.add(new TFKProductItem(new ItemStack(ItemCore.alchemyRecipe, 1, 5), 5000));
+ if(mLv>=5) list.add(new TFKProductItem(new ItemStack(ItemCore.alchemyRecipe, 1, 1), 8000));
+ if(mLv>=5) list.add(new TFKProductItem(new ItemStack(ItemCore.alchemyRecipe, 1, 8), 6000));
+ if(mLv>=8) list.add(new TFKProductItem(new ItemStack(ItemCore.alchemyRecipe, 1, 6), 12000));
+ if(mLv>=12) list.add(new TFKProductItem(new ItemStack(ItemCore.alchemyRecipe, 1, 7), 20000));
+
+ //このへんは固定
+ list.add(new TFKProductItem(new ItemStack(ItemCore.stick), 250));
+ list.add(new TFKProductItem(new ItemStack(BlockCore.magicCore), 1000));
+ list.add(new TFKProductItem(new ItemStack(ItemCore.instantMana), 3000));
+ list.add(new TFKProductItem(ItemShovel.GetItemStack(), 3000));
+ list.add(new TFKProductItem(ItemFoldingFan.GetItemStack(), 3000));
+ list.add(new TFKProductItem(new ItemStack(ItemCore.potionSan), 6000));
+ list.add(new TFKProductItem(new ItemStack(ItemCore.potionOblivion), 12000));
+ list.add(new TFKProductItem(new ItemStack(ItemCore.stoneInactive), 50000));
+ for(int i=0;i<16;i++) list.add(new TFKProductItem(new ItemStack(ItemCore.charm, 1, i), 200));
+
+ return list;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/mod/TFKProductItem.class b/src/main/java/jp/plusplus/fbs/mod/TFKProductItem.class Binary files differnew file mode 100644 index 0000000..6da576b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/mod/TFKProductItem.class diff --git a/src/main/java/jp/plusplus/fbs/mod/TFKProductItem.java b/src/main/java/jp/plusplus/fbs/mod/TFKProductItem.java new file mode 100644 index 0000000..41cd8dd --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/mod/TFKProductItem.java @@ -0,0 +1,35 @@ +package jp.plusplus.fbs.mod;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import shift.mceconomy2.api.shop.IProduct;
+import shift.mceconomy2.api.shop.IShop;
+
+/**
+ * Created by plusplus_F on 2015/11/02.
+ */
+public class TFKProductItem implements IProduct {
+ protected ItemStack product;
+ protected int cost;
+
+ public TFKProductItem(ItemStack p, int c){
+ product=p;
+ cost=c;
+ }
+
+ @Override
+ public ItemStack getItem(IShop shop, World world, EntityPlayer player) {
+ return product;
+ }
+
+ @Override
+ public int getCost(IShop shop, World world, EntityPlayer player) {
+ return cost;
+ }
+
+ @Override
+ public boolean canBuy(IShop shop, World world, EntityPlayer player) {
+ return true;
+ }
+}
|
