📄 humanoid.java
字号:
// Copyright (C) 2002 Takeshi Morimoto <morimoto@takopen.cs.uec.ac.jp>// All rights reserved. /** * Edit by Omid AmirGhiasvand * 2006-4-23 * 4:05 AM * * Last Edit: * 2006-05-19 * 5:39 pm * */package yab.agent.object;import yab.agent.DisasterSpace;import yab.io.object.*;import MRL.Utilities.SimulatorsConstants;import java.util.*;import yab.agent.PlatoonAgent;public abstract class Humanoid extends MovingObject { public Humanoid(int id, BaseHumanoid object, DisasterSpace world) { super(id, object, world); } private BaseHumanoid obj() { return (BaseHumanoid) object; } public int hp() { return obj().hp(); } public int damage() { return obj().damage(); } public int buriedness() { return obj().buriedness(); } private int noOfAmbulanceThatNeededToRescueMe=-1; private int timeToDead=301; public boolean assigned=false; public HashSet ambulanceAssigned= new HashSet(); private float value=0; private boolean accessible=true; public int notAccseesibleTime=0;//saeed 85-2-3s public boolean isBuried() { return (buriedness() > 0); } //////////////////////////?????????????????????????????????????? public void updateNoOfAmbulanceThatNeededToRescueMe(int n) { if (timeToRescue(n)+5>timeToDead) { noOfAmbulanceThatNeededToRescueMe=-1; return; } else { int i = 1; while (i <= n) { if (timeToRescue(i)+5 <= timeToDead) { noOfAmbulanceThatNeededToRescueMe = i; break; } i++; } } } public int getNoOfAmbulanceThatNeededToRescueMe() { return noOfAmbulanceThatNeededToRescueMe; } public void setTimeToDead(int t) { timeToDead=t-1; } public int getTimeToDead() { return timeToDead; } public boolean needLoad() { return (hp() > 0 && buriedness() == 0 && ! (motionlessPosition() instanceof Refuge) && this instanceof Civilian && position() instanceof Building); } public int lifespan() { if(damage() < 5 ) return Integer.MAX_VALUE; else { int time =Math.max(this.hearTime(),this.time()); return (hp()-(world.time()-time)*damage())/damage(); } } public boolean needRescue() { return (hp() > 0 && buriedness() > 0 && !(motionlessPosition() instanceof Refuge )); } public void updateDistance(RealObject amPositoion, List fires) { distanceToMe = (float) amPositoion.distance(this.motionlessPosition()); calDistanceToNearestFire(fires); } public void calDistanceToNearestFire(List fires) { if (fires.isEmpty()) { distanceToNearestFireSite = Integer.MAX_VALUE; return; } distanceToNearestFireSite = motionlessPosition().getMinDist(fires); } public float distanceToNearestFireSite; public float distanceToMe; // distance to Ambulance that add this civilian to his set private int timeToRescue(int numofAmb) { return (int) (java.lang.Math.ceil(buriedness() / numofAmb)); } private int m_aliveTime = 0; public int getAliveTime() { return m_aliveTime; } public void setAliveTime(int value) { m_aliveTime = value; } public Collection validRouteBldgs = new HashSet();///////////////////////////////////////////////////////////////////////////////// public void updateValue() { if (timeToDead>buriedness()/2) value = 100000; value = (timeToDead+ distanceToMe/500) + 3*buriedness(); if (this instanceof PoliceForce) value=3; else if (this instanceof FireBrigade) value=2; else if (this instanceof AmbulanceTeam) value =1; } public float getvalue() { return value; } public boolean isAccessible() { return accessible; } public void setAccesible(boolean b ) { accessible = b; } public boolean isRescueAble(int numOfAT) { if (lifespan()-(buriedness()/numOfAT)>0 ) return true ; else return false; } private boolean m_reportedDead = false; public boolean isReportedAsDead(){ return m_reportedDead; } public void setReportedAsDead(){ m_reportedDead= true; } private boolean m_reportedRescued = false; public boolean isReportedAsRescued(){ return m_reportedRescued; } public void setReportedAsRescued(){ m_reportedRescued = true; } private int m_lastHp = 10000; public int lastHp(){ return m_lastHp; } public void setLastHp(int value){ m_lastHp = value; } private int m_lastDamage = 0; public int lastDamage() { return m_lastDamage; } public void setLastDamage(int value) { m_lastDamage = value; } private int m_lastUpdateTime = 2; public int lastUpdateTime(){ return m_lastUpdateTime; } public void setLastUpdateTime(int value){ m_lastUpdateTime = value; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -