Skip to content
This repository has been archived by the owner on Jan 24, 2024. It is now read-only.

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/origin/dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
Paindar committed Mar 13, 2017
2 parents 87510ba + 7ae7969 commit c8176ea
Show file tree
Hide file tree
Showing 43 changed files with 2,135 additions and 65 deletions.
4 changes: 2 additions & 2 deletions build.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
mod_name = AcademyMonster
mod_ver = 1.0.0pr3
mod_ver = 1.0.0pr4
mod_group = cn.paindar
mc_ver = 1.7.10
forge_ver = 10.13.4.1517-1.7.10
Expand All @@ -9,6 +9,6 @@ ccl_ver = 1.1.3.136
ccc_ver = 1.0.6.43

lambdalib_ver = 1.2.3
academycraft_ver = 1.0.6
academycraft_ver = 1.0.4


Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public class AIArcGen extends BaseSkill
private float slowdown;
public AIArcGen(EntityLivingBase speller, float exp)
{
super(speller, (int)lerpf(40,20,exp), exp,ArcGen.getFullName());
super(speller, (int)lerpf(40,20,exp), exp,"electromaster.arc_gen");
damage=lerpf(5,9,exp);
range=lerpf(6,15,exp);
prob=lerpf(0,0.6f,exp);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class AIBodyIntensify extends BaseSkill
{
public AIBodyIntensify(EntityLivingBase speller, float exp)
{
super(speller, (int)lerpf(300, 100,exp), exp,BodyIntensify.getFullName());
super(speller, (int)lerpf(300, 100,exp), exp,"electromaster.body_intensify");
}


Expand All @@ -25,7 +25,7 @@ private double getProbability()
}
private int getBuffTime()
{
return (int)lerpf(3f,10f, getSkillExp());
return (int)lerpf(30f,100f, getSkillExp());
}
private int getBuffLevel()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class AIDirectedShock extends BaseSkill
private float damage;
public AIDirectedShock(EntityLivingBase speller, float exp)
{
super(speller, (int)lerpf(60, 20, exp), exp,DirectedShock.getFullName());
super(speller, (int)lerpf(60, 20, exp), exp,"vecmanip.dir_shock");
damage=lerpf(7, 15,exp);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public class AIElectronBomb extends BaseSkill
private float damage;

public AIElectronBomb(EntityLivingBase speller,float exp) {
super(speller,(int)lerpf(40,10, exp), exp,ElectronBomb.getFullName());
super(speller,(int)lerpf(40,10, exp), exp,"meltdowner.electron_bomb");
damage=lerpf(6, 12, exp);
maxDistance=lerpf(7,15,exp);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
package cn.paindar.academymonster.ability;

import cn.lambdalib.util.generic.VecUtils;
import cn.lambdalib.util.helper.Motion3D;
import cn.lambdalib.util.mc.EntitySelectors;
import cn.lambdalib.util.mc.WorldUtils;
import cn.paindar.academymonster.entity.EntityMdBallNative;
import cn.paindar.academymonster.network.NetworkManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.Vec3;

import java.util.ArrayList;
import java.util.List;

import static cn.lambdalib.util.generic.MathUtils.lerpf;

/**
* Created by Paindar on 2017/3/12.
*/
public class AIElectronMissile extends BaseSkill
{
private List<EntityMdBallNative> ballList=new ArrayList<>();
private int freq;
private int time;
private int maxTick;
private float range;
private float damage;
public AIElectronMissile(EntityLivingBase speller, float exp)
{
super(speller, (int)lerpf(800,400,exp), exp, "meltdowner.electron_missile");
freq=(int)lerpf(20,10,exp);
maxTick=(int)lerpf(100,200,exp);
range=(int)lerpf(8,12,exp);
damage=lerpf(5,12,exp);
}

@Override
public void spell()
{
if(!available())
return;
isChanting=true;
time=0;
}

@Override
public void onTick()
{
if(!isChanting)
return;

time++;
if(speller.isDead || time>=maxTick)
{
isChanting=false;
super.spell();
for(EntityMdBallNative ball:ballList)
{
ball.setDead();
}
}
if(time%freq==0)
{
EntityMdBallNative ball=new EntityMdBallNative(speller,2333333);
ballList.add(ball);
speller.worldObj.spawnEntityInWorld(ball);
}
List<Entity> list=WorldUtils.getEntities(speller,range,EntitySelectors.exclude(speller).and(EntitySelectors.living()));
if(!list.isEmpty() && !ballList.isEmpty())
{
Vec3 str= VecUtils.vec(ballList.get(0).posX, ballList.get(0).posY, ballList.get(0).posZ);
Vec3 dst=new Motion3D(list.get(0),5,true).getPosVec();
attack((EntityLivingBase) list.get(0), damage);
list= WorldUtils.getEntities(speller, 25, EntitySelectors.player());
for(Entity e:list)
{
NetworkManager.sendMdRayEffectTo(str,dst,(EntityPlayerMP)e);
}
ballList.get(0).setDead();
ballList.remove(0);
}
}

public float getMaxDistance(){return range;}
}
75 changes: 75 additions & 0 deletions src/main/java/cn/paindar/academymonster/ability/AIFlashing.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package cn.paindar.academymonster.ability;

import cn.lambdalib.util.mc.EntitySelectors;
import cn.lambdalib.util.mc.WorldUtils;
import cn.paindar.academymonster.network.NetworkManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayerMP;

import java.util.List;

import static cn.lambdalib.util.generic.MathUtils.lerpf;

/**
* Created by voidcl on 2017/3/10.
*/
public class AIFlashing extends BaseSkill{
private float maxDistance;
private int time;
private int maxtime;
private int ilCD=0;
public AIFlashing(EntityLivingBase speller, float exp) {
super(speller,(int)lerpf(200, 100, exp), exp,"teleporter.flashing");
time=0;
maxtime=60;
maxDistance=lerpf(3,10, getSkillExp());
}

public float getMaxDistance(){return maxDistance;}

@Override
public boolean available()
{
return isChanting || !isSkillInCooldown();
}

public void spell(double x, double y, double z)
{
if((!isChanting && isSkillInCooldown())||ilCD>0)
return;
if(speller.isRiding())
speller.mountEntity(null);
speller.setPositionAndUpdate(x,y,z);
if(!isChanting){
isChanting=true;
time=0;
}
speller.fallDistance = 0;
ilCD=5;
if(!speller.worldObj.isRemote)
{
List<Entity> list= WorldUtils.getEntities(speller, 25, EntitySelectors.player());
for(Entity e:list)
{
NetworkManager.sendSoundTo("tp.tp",speller,.5f,(EntityPlayerMP)e);
}
}
}
@Override
protected void onTick()
{
if(!isChanting)
{
return;
}
if(time>=maxtime)
{
isChanting=false;
super.spell();
return;
}
if(ilCD>0) ilCD--;
time ++;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class AIFleshRipping extends BaseSkill
private float damage;
public AIFleshRipping(EntityLivingBase speller, float skillExp)
{
super(speller, (int)lerpf(90, 40, skillExp), skillExp,FleshRipping.getFullName());
super(speller, (int)lerpf(90, 40, skillExp), skillExp,"teleporter.flesh_ripping");
maxDistance=lerpf(2, 5, skillExp);
damage=lerpf(5, 12, skillExp);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package cn.paindar.academymonster.ability;

import cn.academy.vanilla.meltdowner.skill.LightShield;
import cn.lambdalib.util.entityx.EntityAdvanced;

import cn.lambdalib.util.generic.MathUtils;
import cn.lambdalib.util.mc.EntitySelectors;
import cn.lambdalib.util.mc.WorldUtils;
import cn.paindar.academymonster.core.AcademyMonster;
import cn.paindar.academymonster.entity.EntityLightShield;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.entity.Entity;
Expand All @@ -15,7 +13,6 @@
import net.minecraftforge.event.entity.living.LivingHurtEvent;

import java.util.List;
import java.util.function.Predicate;

import static cn.lambdalib.util.generic.MathUtils.lerpf;

Expand All @@ -32,7 +29,7 @@ public class AILightShield extends BaseSkill

public AILightShield(EntityLivingBase speller, float exp)
{
super(speller, (int)lerpf(100,40,exp), exp, LightShield.getFullName());
super(speller, (int)lerpf(100,40,exp), exp, "meltdowner.light_shield");
maxTime=(int)lerpf(100,300,exp);
touchDamage=lerpf(2, 6, exp);
absorbDamage=lerpf(150,300,exp);
Expand All @@ -53,6 +50,7 @@ public void spell()
return;
isChanting=true;
shield = new EntityLightShield(speller);
shield.setPosition(speller.posX,speller.posY,speller.posZ);
speller.worldObj.spawnEntityInWorld(shield);
time=0;
}
Expand Down
Loading

0 comments on commit c8176ea

Please sign in to comment.