Merge pull request #266 from AnonymusRaccoon/Upgrade_John

Upgrade John
This commit is contained in:
Zoe Roux
2021-06-26 13:28:58 +02:00
committed by GitHub

View File

@@ -26,6 +26,7 @@ Map = {}
Danger = {}
LastPos = nil
----- Map functions
function PrintMap(map, MaxX, maxZ)
log("---------")
@@ -52,29 +53,74 @@ function getPathToSafeSpace(player)
return p
end
function getClosestEnemy(player, enemies)
local dist = -1
local enemyFound = nil
for i, enemy in ipairs(enemies) do
local tmp = math.sqrt(math.pow(enemy.x - player.x, 2) + math.pow(enemy.y - player.y, 2))
if (dist == -1 or dist > tmp) then
dist = tmp
enemyFound = enemy
end
end
return enemyFound
end
function canKillTarget(player, target)
if math.sqrt(math.pow(target.x - player.x, 2) + math.pow(target.y - player.y, 2)) <= getRadius() and (target.x == player.x or target.y == player.y) then
return true
end
return false
end
LastTarget = nil
------ Update
math.randomseed(os.time())
function Update()
log("NEW FRAME")
local player = getPlayer()
local enemies = getEnemies()
local player = getPlayerRound()
local playerNotRound = getPlayer()
local enemy = getClosestEnemy(player, getEnemiesRound())
if LastTarget ~= nil then
log("last target")
log(LastTarget.x)
log(LastTarget.y)
if math.abs(LastTarget.x - player.x) <= 0.1 and math.abs(LastTarget.x - player.x) <= 0.1 then
if math.abs(LastTarget.x - playerNotRound.x) <= 0.1 and math.abs(LastTarget.x - playerNotRound.x) <= 0.1 then
LastTarget = nil
else
return (LastTarget.x - player.x), (LastTarget.y - player.y), false, false
return (LastTarget.x - playerNotRound.x), (LastTarget.y - playerNotRound.y), false, false
end
end
log("player")
log(player.x)
log(player.y)
local player = getPlayerRound();
local rnd = math.random(10)
if rnd == 10 then
local x = math.random(4)
local dirX = {-1, 0, 1, 0}
local dirY = {0, -1, 0, 1}
local target = {x = player.x + dirX[x], y = player.y + dirY[x]}
log("target")
log(target.x)
log(target.y)
if target.x < 0 or target.x > 16 or target.y < 0 or target.y > 16 then
return 0, 0, false, false
end
local blocktypetarget = getBlockType(target.x, target.y)
local dangerleveltarget = getDangerLevel(target.x, target.y)
log("blocktype")
log(blocktypetarget)
log("dangelever")
log(dangerleveltarget)
if dangerleveltarget == 0 and blocktypetarget == 0 then
log("a")
LastTarget = {x = target.x, y = target.y}
return LastTarget.x - player.x, LastTarget.y - player.y, false, false
end
end
log("player Info")
log(playerNotRound.x)
log(playerNotRound.y)
log("End player Info")
if getDangerLevelPlayer() then
log("INDANGER")
local dangerMap = getDanger()
@@ -93,25 +139,49 @@ function Update()
log("nopath found")
return 0, 0, false, false
end
local y = math.random(4)
log("y")
log(y)
if y == 1 then
log("Fnc Path")
log(enemy.x)
log(enemy.y)
log("player path fnc")
log(player.x)
log(player.y)
if player.x <= 0 then
player.x = 0
end
if player.y <= 0 then
player.y = 0
end
if enemy.x <= 0 then
enemy.x = 0
end
if enemy.y <= 0 then
enemy.y = 0
end
local path = getPath(player.x, player.y, enemy.x, enemy.y, true)
log("End Fnc Path")
log("Path")
for i, p in ipairs(path) do
log("Node")
log(p.x)
log(p.y)
end
log("End path")
if canKillTarget(player, enemy) then
LastTarget = nil
return 0, 0, true, true
end
local target = path[2]
if getBlockType(target.x, target.y) == 1 then
local canPut = canPutBombSafe()
if canPut then
LastTarget = nil
return 0, 0, true, true
else
return 0, 0, false, false
end
end
local x = math.random(4)
local dirX = {-1, 0, 1, 0}
local dirY = {0, -1, 0, 1}
local target = {x = player.x + dirX[x], y = player.y + dirY[x]}
log("target")
log(target.x)
log(target.y)
if target.x < 0 or target.x > 16 or target.y < 0 or target.y > 16 then
return 0, 0, false, false
if #path <= 1 then
return 0, 0, true, true
end
local blocktypetarget = getBlockType(target.x, target.y)
local dangerleveltarget = getDangerLevel(target.x, target.y)