Fixed instant-win wave missions / Fixed units clipping off screen

This commit is contained in:
Anuken
2018-11-07 19:58:53 -05:00
parent 216433aa2d
commit 56ffa7905e
7 changed files with 27 additions and 18 deletions

View File

@@ -53,14 +53,18 @@ public class Mechs implements ContentList{
@Override
public void updateAlt(Player player){
if(player.isShooting && player.timer.get(Player.timerAbility, buildTime) && getDrones(player) < maxDrones && !TutorialSector.supressDrone()){
if(!Net.client()) {
AlphaDrone drone = (AlphaDrone) UnitTypes.alphaDrone.create(player.getTeam());
drone.leader = player;
drone.set(player.x, player.y);
drone.add();
if(player.isShooting && getDrones(player) < maxDrones && !TutorialSector.supressDrone()){
player.timer.get(Player.timerAbility, buildTime);
if(player.timer.getTime(Player.timerAbility) > buildTime/2f){
if(!Net.client()){
AlphaDrone drone = (AlphaDrone) UnitTypes.alphaDrone.create(player.getTeam());
drone.leader = player;
drone.set(player.x, player.y);
drone.add();
}
Effects.effect(UnitFx.unitLand, player);
}
Effects.effect(UnitFx.unitLand, player);
}
}

View File

@@ -41,7 +41,10 @@ public class Logic extends Module{
@Override
public void init(){
EntityQuery.init();
EntityQuery.collisions().setCollider(tilesize, world::solid);
EntityQuery.collisions().setCollider(tilesize, (x, y) -> {
Tile tile = world.tile(x, y);
return tile != null && tile.solid();
});
}
public void play(){

View File

@@ -324,8 +324,8 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
if(target != null) behavior();
if(!isWave && !isFlying()){
x = Mathf.clamp(x, 0, world.width() * tilesize);
y = Mathf.clamp(y, 0, world.height() * tilesize);
x = Mathf.clamp(x, tilesize/2f, world.width() * tilesize - tilesize/2f);
y = Mathf.clamp(y, tilesize/2f, world.height() * tilesize - tilesize/2f);
}
}

View File

@@ -41,7 +41,7 @@ public class AlphaDrone extends FlyingUnit {
target = leader;
if(last == null){
circle(leader.isShooting ? 50f : 0f);
circle(leader.isShooting ? 60f : 0f);
}
target = last;

View File

@@ -1,6 +1,7 @@
package io.anuke.mindustry.io;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectSet;
import io.anuke.mindustry.content.blocks.Blocks;
import io.anuke.mindustry.content.blocks.StorageBlocks;
import io.anuke.mindustry.entities.traits.SaveTrait;
@@ -214,6 +215,7 @@ public abstract class SaveFileVersion{
}
public void readEntities(DataInputStream stream) throws IOException{
ObjectSet<EntityGroup<?>> set = new ObjectSet<>();
byte groups = stream.readByte();
for(int i = 0; i < groups; i++){
@@ -222,8 +224,13 @@ public abstract class SaveFileVersion{
byte typeid = stream.readByte();
SaveTrait trait = (SaveTrait) TypeTrait.getTypeByID(typeid).get();
trait.readSave(stream);
set.add(trait.targetGroup());
}
}
for(EntityGroup<?> group : set){
group.updateEvents();
}
}
public MappableContent[][] readContentHeader(DataInputStream stream) throws IOException{

View File

@@ -88,9 +88,7 @@ public class Sectors{
public Difficulty getDifficulty(Sector sector){
if(sector.difficulty == 0){
//yes, this means hard tutorial difficulty
//(((have fun)))
return Difficulty.hard;
return Difficulty.normal;
}else if(sector.difficulty < 4){
return Difficulty.normal;
}else if(sector.difficulty < 9){

View File

@@ -1,6 +1,5 @@
package io.anuke.mindustry.maps.missions;
import com.badlogic.gdx.math.GridPoint2;
import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.game.GameMode;
@@ -11,9 +10,7 @@ import io.anuke.mindustry.maps.Sector;
import io.anuke.mindustry.maps.generation.Generation;
import io.anuke.ucore.util.Bundles;
import static io.anuke.mindustry.Vars.state;
import static io.anuke.mindustry.Vars.waveTeam;
import static io.anuke.mindustry.Vars.world;
import static io.anuke.mindustry.Vars.*;
public class WaveMission extends MissionWithStartingCore{
private final int target;