void FirePatternAllRangeTimeRag::action(MovingObject *owner){
	if(isFire() && owner->getStatus() == VALID){
		Rect r = owner->getHitRect();
		ShootingAccessor::addEnemyBullet(new EnemyBullet(r.x,r.y,new MovePatternUniformlyAcceleratedLinearMotion(v*cos(curTheta),v*sin(curTheta),0.01),new FirePatternNone(),new GraphicPattern(graphicID)));
		curTheta+=dtheta;
		if(dtheta >= PI*2) dtheta-=PI*2;
	}
}
示例#2
0
bool isWall(cell *w) {
    if(w->wall == waNone || isAlchAny(w) ||
            w->wall == waCavefloor || w->wall == waFrozenLake || w->wall == waVineHalfA ||
            w->wall == waVineHalfB || w->wall == waDeadfloor || w->wall == waDeadfloor2 ||
            w->wall == waRubble || w->wall == waGargoyleFloor || w->wall == waGargoyleBridge ||
            w->wall == waTempFloor || w->wall == waTempBridge ||
            w->wall == waBoat || w->wall == waCIsland || w->wall == waCIsland2 ||
            w->wall == waRed1 || w->wall == waRed2 || w->wall == waRed3 ||
            w->wall == waMineUnknown || w->wall == waMineMine || w->wall == waMineOpen ||
            w->wall == waStrandedBoat || w->wall == waOpenGate || w->wall == waClosePlate ||
            w->wall == waOpenPlate || w->wall == waTrapdoor || w->wall == waGiantRug ||
            w->wall == waLadder || w->wall == waTrunk || w->wall == waSolidBranch ||
            w->wall == waWeakBranch || w->wall == waCanopy)
        return false;
    if(isWatery(w) || isChasmy(w) || isFire(w)) return false;
    return true;
}