##Lua, 165 Bytes
l={}i=1while(l[i-1]~="")do l[i]=io.read()o=l[i]:find"%*"x=o or x y=o and i or y i=i+1 end print(#l[i-2]:sub(1,x):gsub("%S+%s*","#")*100+(i-y-1)*10+#l[y]:match"#-%*")
Ungolfed
l={}
i=1
while(l[i-1]~="")do
l[i]=io.read()
o=l[i]:find"%*" --find "*", and record:
x=o or x --position and
y=o and i or y --current floor
i=i+1
end
print(#l[i-2]:sub(1,x):gsub("%S+%s*","#")*100 --[[Take last string of list, and then
take the substring up until the
asterisk. Substitute any substrings
that include nonspace characters
(%S+) followed by a minimum of 0 space
characters (%s*) with one character
(in this code snippet I chose # for no
particular reason.) Then take the length
of this string, with the # operator.
The %S+%s* regex and gsub do the bulk
of the magic.
]]
+(i-y-1)*10 --[[Total number of lines minus '*' floor
minus one.
]]
+#l[y]:match"#-%*") --[[Find the substring on the asterisk floor
with '#' symbols preceding an asterisk.
]]