From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- src/main/java/jp/plusplus/fbs/mod/ForIR3.class | Bin 0 -> 3772 bytes src/main/java/jp/plusplus/fbs/mod/ForIR3.java | 78 +++++++++++++++++++ src/main/java/jp/plusplus/fbs/mod/ForSS2.class | Bin 0 -> 868 bytes src/main/java/jp/plusplus/fbs/mod/ForSS2.java | 21 +++++ .../java/jp/plusplus/fbs/mod/ShopAuthor$1.class | Bin 0 -> 1246 bytes src/main/java/jp/plusplus/fbs/mod/ShopAuthor.class | Bin 0 -> 4082 bytes src/main/java/jp/plusplus/fbs/mod/ShopAuthor.java | 86 +++++++++++++++++++++ src/main/java/jp/plusplus/fbs/mod/ShopWitch.class | Bin 0 -> 2941 bytes src/main/java/jp/plusplus/fbs/mod/ShopWitch.java | 62 +++++++++++++++ .../java/jp/plusplus/fbs/mod/TFKProductItem.class | Bin 0 -> 1313 bytes .../java/jp/plusplus/fbs/mod/TFKProductItem.java | 35 +++++++++ 11 files changed, 282 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/mod/ForIR3.class create mode 100644 src/main/java/jp/plusplus/fbs/mod/ForIR3.java create mode 100644 src/main/java/jp/plusplus/fbs/mod/ForSS2.class create mode 100644 src/main/java/jp/plusplus/fbs/mod/ForSS2.java create mode 100644 src/main/java/jp/plusplus/fbs/mod/ShopAuthor$1.class create mode 100644 src/main/java/jp/plusplus/fbs/mod/ShopAuthor.class create mode 100644 src/main/java/jp/plusplus/fbs/mod/ShopAuthor.java create mode 100644 src/main/java/jp/plusplus/fbs/mod/ShopWitch.class create mode 100644 src/main/java/jp/plusplus/fbs/mod/ShopWitch.java create mode 100644 src/main/java/jp/plusplus/fbs/mod/TFKProductItem.class create mode 100644 src/main/java/jp/plusplus/fbs/mod/TFKProductItem.java (limited to 'src/main/java/jp/plusplus/fbs/mod') diff --git a/src/main/java/jp/plusplus/fbs/mod/ForIR3.class b/src/main/java/jp/plusplus/fbs/mod/ForIR3.class new file mode 100644 index 0000000..2699651 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/mod/ForIR3.class differ 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 new file mode 100644 index 0000000..d282b72 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/mod/ForSS2.class differ 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 new file mode 100644 index 0000000..b7e6a57 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/mod/ShopAuthor$1.class differ diff --git a/src/main/java/jp/plusplus/fbs/mod/ShopAuthor.class b/src/main/java/jp/plusplus/fbs/mod/ShopAuthor.class new file mode 100644 index 0000000..ff1c695 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/mod/ShopAuthor.class differ 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 cachedProductList=null; + ArrayList cachedBooks=null; + + @Override + public String getShopName(World world, EntityPlayer player) { + return "Spell Book Author"; + } + + @Override + public void addProduct(IProduct product) { + } + + @Override + public ArrayList getProductList(World world, EntityPlayer player) { + ArrayList list=new ArrayList(); + ArrayList 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() { + @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;i10 && rand.nextInt(4)==0){ + list.remove(i); + continue; + } + i++; + } + + //キャッシュを取っておく + lastDate=date; + cachedBooks=new ArrayList(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 new file mode 100644 index 0000000..2cfa22f Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/mod/ShopWitch.class differ 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 getProductList(World world, EntityPlayer player) { + ArrayList list=new ArrayList(); + + 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 new file mode 100644 index 0000000..6da576b Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/mod/TFKProductItem.class differ 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; + } +} -- cgit v1.2.3